0
点赞
收藏
分享

微信扫一扫

Hive Read & Write Flink

向上的萝卜白菜 2021-09-21 阅读 87

通过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表中,并提交分区,然后运行一个批量查询将数据读出来。

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

举报

相关推荐

0 条评论