Hive Read & Write Flink

举报
bigdata张凯翔 发表于 2021/03/29 03:38:13 2021/03/29
【摘要】 通过HiveCatalog,可以使用Apache Flink对Apache Hive表进行统一的批处理和流处理。这意味着Flink可以作为Hive的批处理引擎的一个性能更好的替代,或者可以持续地在Hive表中读写数据,从而为实时数据仓库应用程序提供动力。 Flink支持在批处理和流模式下从Hive写入数据。当作为批处理应用程序运行时,Flink将只在作业完成时才将这些记录写入H...

通过HiveCatalog,可以使用Apache Flink对Apache Hive表进行统一的批处理和流处理。这意味着Flink可以作为Hive的批处理引擎的一个性能更好的替代,或者可以持续地在Hive表中读写数据,从而为实时数据仓库应用程序提供动力。

Flink支持在批处理和流模式下从Hive写入数据。当作为批处理应用程序运行时,Flink将只在作业完成时才将这些记录写入Hive表。批写既支持追加现有表,也支持重写现有表。

# ------ INSERT INTO将追加到表或分区上,保持现有数据不变------ 
Flink SQL> INSERT INTO mytable SELECT 'Tom', 25;

# ------ INSERT OVERWRITE将覆盖表或分区中的任何现有数据------ 
Flink SQL> INSERT OVERWRITE mytable SELECT 'Tom', 25;

数据也可以插入到特定的分区

# ------ 插入静态分区------ 
Flink SQL> INSERT OVERWRITE myparttable PARTITION (my_type='type_1', my_date='2019-08-08') SELECT 'Tom', 25;

# ------ 使用动态分区插入 ------ 
Flink SQL> INSERT OVERWRITE myparttable SELECT 'Tom', 25, 'type_1', '2019-08-08';

# ------使用静态(my_type)和动态(my_date)分区插入 ------ 
Flink SQL> INSERT OVERWRITE myparttable PARTITION (my_type='type_1') SELECT 'Tom', 25, '2019-08-08';

流写不断地向Hive添加新数据,以增量的方式提交记录——使其可见。用户通过几个属性控制何时/如何触发提交。流写不支持插入覆盖。

下面展示了如何使用流接收器写一个流查询,将数据从Kafka写入到Hive表中,并提交分区,然后运行一个批量查询将数据读出来。

有关可用配置的完整列表,请参阅流接收器。

文章来源: www.jianshu.com,作者:百忍成金的虚竹,版权归原作者所有,如需转载,请联系作者。

原文链接:www.jianshu.com/p/eaa2ae0aef12

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。