Clickhouse - 100亿数据是不是需要单独的数据库和表格
Posted
技术标签:
【中文标题】Clickhouse - 100亿数据是不是需要单独的数据库和表格【英文标题】:Clickhouse - Does 10 billion data need separate databases and tablesClickhouse - 100亿数据是否需要单独的数据库和表格 【发布时间】:2021-04-28 06:55:29 【问题描述】:我有100亿详细数据查询的需求。 100 亿条数据存储在Clickhouse
中。我需要分离数据库和表吗?
我使用的表引擎是ReplicatedReplacingMergeTree
查询语句如下:
select * from table_a where name = 'akkj';
select * from table_b where name = 'bttc';
【问题讨论】:
【参考方案1】:不,您可以在一个表中存储任意数量的行。
我的作品:
SELECT count()
FROM fact_event_shard
┌───────count()─┐
│ 1415809324034 │
└───────────────┘
select * from table_a where name = 'akkj'; select * from table_b where name = 'bttc';
非常糟糕的主意。 Clickhouse 不喜欢这样的查询。您应该使用 Cassandra,而不是 Clichkouse。
【讨论】:
非常感谢。当我导入100g文件,使用-- query = "insert into...
"时,总是发现一段时间后命令被kill。根据日志,超时可能是300秒,但不确定是不是这个问题。你有没有遇到过?或者大量数据导入的方法是什么?
这有 300 个可能的原因。需要查看 CH 日志。文件的大小应该无关紧要。 Insert 以流式方式工作,并按 100 万行批量处理。
@datagic 你可以使用clickhouse-client --progress --receive_timeout=3600 --query="INSERT ... "
@Slach 好的,谢谢,我试试
@DennyCrane 我的 Clickhouse 只有 50 亿条数据,但是查询性能很低,几十秒才能找到结果。我的 CREATE TABLE 语句是 create table tablename (... ) engine=ReplicatedReplacingMergeTree(...) order by (a,b,c,d,e...) 我的查询是select * from table where c='ijkk'
我的order by setting有问题吗?以上是关于Clickhouse - 100亿数据是不是需要单独的数据库和表格的主要内容,如果未能解决你的问题,请参考以下文章