Spl*_*Xor 5 apache-kafka clickhouse
遵循文档中的示例:https : //clickhouse.yandex/docs/en/table_engines/kafka/
我使用Kafka Engine和一个实例化视图创建了一个表,该视图将数据推送到MergeTree表。
这是我的表格结构:
CREATE TABLE games (
UserId UInt32,
ActivityType UInt8,
Amount Float32,
CurrencyId UInt8,
Date String
) ENGINE = Kafka('XXXX.eu-west-1.compute.amazonaws.com:9092,XXXX.eu-west-1.compute.amazonaws.com:9092,XXXX.eu-west-1.compute.amazonaws.com:9092', 'games', 'click-1', 'JSONEachRow', '3');
CREATE TABLE tests.games_transactions (
day Date,
UserId UInt32,
Amount Float32,
CurrencyId UInt8,
timevalue DateTime,
ActivityType UInt8
) ENGINE = MergeTree(day, (day, UserId), 8192);
CREATE MATERIALIZED VIEW tests.games_consumer TO tests.games_transactions
AS SELECT toDate(replaceRegexpOne(Date,'\\..*','')) as day, UserId, Amount, CurrencyId, toDateTime(replaceRegexpOne(Date,'\\..*','')) as timevalue, ActivityType
FROM default.games;
Run Code Online (Sandbox Code Playgroud)
在Kafka主题中,我每秒收到约150条消息。
一切都很好,部分原因是表中的数据更新有很大的延迟,这绝对不是实时的。
似乎只有当我到达65536个准备在Kafka中使用的新消息时,数据才从Kafka发送到表
我应该设置一些特定的配置吗?
我试图从cli更改配置:
SET max_insert_block_size=1048
SET max_block_size=655
SET stream_flush_interval_ms=750
Run Code Online (Sandbox Code Playgroud)
但是没有改善
我应该更改任何特定配置吗?
在创建表之前,是否应该更改上述配置?
小智 5
ClickHouse github上存在此问题-https: //github.com/yandex/ClickHouse/issues/2169。
基本上,您需要在创建表格之前设置max_block_size(http://clickhouse-docs.readthedocs.io/en/latest/settings/settings.html#max-block-size),否则它将无法正常工作。
我将解决方案与重载users.xml一起使用:
<yandex>
<profiles>
<default>
<max_block_size>100</max_block_size>
</default>
</profiles>
</yandex>
Run Code Online (Sandbox Code Playgroud)
我删除了表和数据库,然后重新创建了它们。它为我工作。现在可能表每100条记录更新一次。
归档时间: |
|
查看次数: |
2377 次 |
最近记录: |