概要
由于flink可以接入非常多的数据源,1.11版本后基于catalog也能连接hive了,那么实时数仓以flink作为数据采集工具,将是一个方便可行的方案。实时数仓的数据载体一般是kafka,但是数据采集实时离线可以沿用一套flink的数据采集,在同步到kafka的时候,顺便写一份数据到hive上,就不需要t+1天才能看到hive的源数据。
配置json文件
参考alibaba开发的datax数据同步工具,及目前的flinkx数据同步工具,以json文件作为配置文件,主要分为reader模块,writer模块。这里也给一个我的demo
{
"reader":{
"name":"kafkareader",
"bootstrapServers":"hadoop-01:6667",
"topic":"MicsDataPointForCop",
"group":"test0420-02"
},
"writer":{
"name":"printwriter"
}
}
连接数据源
- hive
hive数据源和其他数据源不一样,它基于catalog连接,HiveCatalog通过读取hive-site.xml文件,连接hive,
//创建HiveCatalog,指定hive配置文件路径
HiveCatalog hive = new HiveCatalog(catalogName, database, hiveConfDir,version);
streamTableEnvironment.registerCatalog(catalogName, hive);
//指定catalog name,hive数据库
streamTableEnvironment.useCatalog(catalogName);
streamTableEnvi

本文介绍了如何利用Flink 1.11版本后的HiveCatalog功能,结合Kafka,构建实时数仓。通过配置JSON文件,实现了从Kafka读取数据并同步到Hive的流程。在实施过程中,提到了Hive写入分区需要注意的元数据刷新问题,并给出了解决方案。此外,还展示了Flink读取txt文件和Kafka数据的示例。
最低0.47元/天 解锁文章
1147

被折叠的 条评论
为什么被折叠?



