Apache kafka Clickhouse中的实体化视图未填充
我目前正在从事一个项目,该项目需要从卡夫卡主题JSON格式获取数据,并将其直接写入Clickhouse。我遵循了以下建议的方法: 步骤1:创建一个clickhouse消费者,它将数据写入一个表中,比如level1 第2步:我在“level1”上执行了一个select查询,它给了我一组结果,但不是特别有用,因为它只能读取一次 步骤3:我创建了一个实体化视图,该视图转换EngineLevel 1中的数据,并将其放入先前创建的表中,比如level2。在写入“level2”时,通过将level1中的时间戳转换为datetime,聚合在一天级别上完成 因此,“level2”中的数据为-day+level1中的所有列 我打算使用这个视图level2作为将来任何聚合的基础,比如level3 问题1:正在创建“level2”,但其中未填充数据,即,当我在视图上执行基本的select查询select*from level2 limit 10时,输出为集合中的0行 这是因为日级聚合,并且它可能在一天结束时填充?我可以实时接收来自“level2”的数据吗 问题2:是否有办法多次从我的引擎“level1”读取相同的数据 问题3:在阅读卡夫卡主题时,有没有办法将Avro转换为JSON?或者Clickhouse是否可以将Avro格式的数据直接写入“level1”,而不进行任何转换 编辑:从卡夫卡检索数据时,Clickhouse中存在延迟。必须在我的Clickhouse服务器的user.xml文件中更改最大块大小 问题1:正在创建“level2”,但其中未填充数据,即,当我在视图上执行基本的select查询select*from level2 limit 10时,输出为集合中的0行 这可能与卡夫卡存储的默认设置有关,卡夫卡存储总是从最新偏移量开始使用数据。您可以通过添加以下内容来更改行为Apache kafka Clickhouse中的实体化视图未填充,apache-kafka,clickhouse,Apache Kafka,Clickhouse,我目前正在从事一个项目,该项目需要从卡夫卡主题JSON格式获取数据,并将其直接写入Clickhouse。我遵循了以下建议的方法: 步骤1:创建一个clickhouse消费者,它将数据写入一个表中,比如level1 第2步:我在“level1”上执行了一个select查询,它给了我一组结果,但不是特别有用,因为它只能读取一次 步骤3:我创建了一个实体化视图,该视图转换EngineLevel 1中的数据,并将其放入先前创建的表中,比如level2。在写入“level2”时,通过将level1中的时间
<kafka>
<auto_offset_reset>earliest</auto_offset_reset>
</kafka>
到config.xml
问题2:是否有办法多次从我的引擎“level1”读取相同的数据
你最好避免直接从卡夫卡存储器中读取。您可以为“level1”设置专用物化视图M1,并使用该视图填充“level2”。那么M1的读数是可重复的
问题3:在阅读卡夫卡主题时,有没有办法将Avro转换为JSON?或者Clickhouse是否可以将Avro格式的数据直接写入“level1”,而不进行任何转换
不,尽管您可以尝试使用Cap'n Proto,它应该提供与Avro类似的性能,并且ClickHouse直接支持它