在ClickHouseIO
的示例中,Apache Beam
的输出表名称是硬编码的:
pipeline
.apply(...)
.apply(
ClickHouseIO.<POJO>write("jdbc:clickhouse:localhost:8123/default", "my_table"));
是否有一种基于记录内容将记录动态路由到表的方法?
即如果记录包含table=1
,则将其路由到my_table_1
,将table=2
路由到my_table_2
,等等。
答案 0 :(得分:2)
不幸的是,ClickHouseIO仍为in development不支持此功能。 BigQueryIO确实支持Dynamic Destinations,因此Beam可以实现。
当前ClickHouseIO中的限制是围绕转换数据以匹配目标表架构。解决方法是,如果在创建管道时知道目标表,则可以为每个表创建一个ClickHouseIO,然后使用数据将其路由到IO的正确实例。
您可能要为此在Beam bug tracker中提出功能请求。