我有两个(以及更多) Kafka主题,我需要加入他们。我的问题来自我在博客/StackOverflow上读到的内容...有两个选项:
1)将它们都流式传输,Clickhouse Kafka引擎/spark流,然后运行join,这在Clickhouse中是不推荐的?
2)构建一个包含所有列的表,并使用Clickhouse引擎/spark streaming更新相同的入口?
任何建议
发布于 2019-03-07 23:44:19
一如既往,这真的取决于你导入的是什么类型的数据,以及你将如何使用它,但我想说的是,在大多数情况下,最好将这两个主题导入到一个表中(所以选择2)。从那里,您将能够快速过滤和聚合记录。根据您要执行的查询,您应该使用适当的ORDER BY列导入数据,这将使您的查询速度更快。
如果您提供有关要连接的数据的模式的更多详细信息,我可以提供更具体的答案。
发布于 2019-03-15 00:21:30
在ClickHouse中,从Kafka中获取数据的标准方法是使用Engine=Kafka和物化视图创建“源”表,并使用ReplicatedMergeTree引擎将数据复制到最终表中。
您可以创建多个实体化视图,这些实体化视图将写入相同的目标表,就像这样。
CREATE TABLE kafka_topic1 ( ... ) Engine=Kafka ...;
CREATE TABLE kafka_topic2 ( ... ) Engine=Kafka ...;
CREATE TABLE clickhouse_table ( ... ) Engine=MergeTree ...;
CREATE MATERIALIZED VIEW kafka_topic1_reader
TO clickhouse_table
AS SELECT * FROM kafka_topic1;
CREATE MATERIALIZED VIEW kafka_topic2_reader
TO clickhouse_table
AS SELECT * FROM kafka_topic2;https://stackoverflow.com/questions/55020370
复制相似问题