Hi Leonard. > 除了多个sql作业的方式,如果需要在一个SQL作业中可以试试在一个作业里把所有表的binlog 格式统一用一个字段(如string) 接入,然后写针对每个表的schema写一个udtf解析对应的数据,最后多路输出到hive的不同表。 如果不限定SQL作业的话,用DataSteam API的话是不是可以实现这样的功能。
多路输出是个动态的,因为是整库的binlog ,不确定库中是否有新增表,作业要触发hive里面去创建表的动作。hive catalog create table 是否可以在运行中来调用吗? 程序启动之后生成的jobgraph运行中是不是不可以调整的?如果可以的话,是否有类似的案例可以参考。 Leonard Xu <[email protected]> 于2020年8月28日周五 上午9:30写道: > Hi, qishang > > > 1. 好像 Flink SQL 里面只能一个数据源 kafka 到一张Hive表,一个Topic是否可以根据解析的表不同插入到不同的Hive表吗 > ? > > 我看了一些邮件好像说不可以的,在问一下。 > 在一个SQL作业中是不行的,因为SQL是强依赖Schema的,schema需要事先声明。 > > > 2. 或者有什么好的解决方式吗?因为数据量都不是很大,表比较多,每个表都要维护一个任务的话,代价比较大。 > > 除了多个sql作业的方式,如果需要在一个SQL作业中可以试试在一个作业里把所有表的binlog 格式统一用一个字段(如string) > 接入,然后写针对每个表的schema写一个udtf解析对应的数据,最后多路输出到hive的不同表。 > > 祝好 > Leonard
