【发布时间】:2020-08-31 10:37:35
【问题描述】:
我使用以下脚本在 Clickhouse 上创建了一个字典:
CREATE DICTIONARY IF NOT EXISTS default.testDICT
(
-- attributes
)
PRIMARY KEY DATETIME, SOMEID, SOMEID2
SOURCE(CLICKHOUSE(HOST 'localhost' PORT 9000 USER 'default' PASSWORD '' DB 'default' TABLE 'test'))
LIFETIME(MIN 0 MAX 300)
LAYOUT(COMPLEX_KEY_HASHED())
表测试有大约 19 000 000 行。
当我尝试执行选择时
SELECT * FROM testDICT
,如果我理解得很好,它也会加载字典,它会向我发送以下错误:
Exception on client:
Code: 32. DB::Exception: Attempt to read after eof: while receiving packet from clickhouse-server:9000
Connecting to clickhouse-server:9000 as user default.
Code: 210. DB::NetException: Connection refused (clickhouse-server:9000)
你知道它是什么意思吗?我该如何纠正它?
【问题讨论】:
-
我认为这是使用字典的错误方法,因为行数很大。我怀疑即使使用cached layout(正如@Denis Zhuravlev 所建议的那样)也无济于事,因为hit rate 会很小,不会很有效。
标签: sql database dictionary clickhouse