问题标签 [clickhouse]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4916 浏览

docker - 如何通过 Docker 容器 clickhouse-client 将 CSV 数据导入表

我正在为 Windows 使用 Docker:

  • Docker 版本 18.03.1-ce-win64
  • Docker 引擎 18.03.1-ce
  • ClickHouse 客户端版本 1.1.54380
  • ClickHouse 服务器版本 1.1.54380

为了将表中的数据导出为 CSV 格式,我使用以下命令:

  1. 现在运行clickhouse-client容器进行导出

    注意:上述命令完美运行。

  2. 现在运行clickhouse-client容器进行导入

你能告诉我我在导入时做错了什么吗?

提前致谢。

0 投票
4 回答
9175 浏览

sql - 如何在 ClickHouse 中按时间段分组并用空值/0 填充缺失的数据

假设我有一个给定的时间范围。为了解释,让我们考虑一些简单的事情,比如 2018 年全年。我想从 ClickHouse 查询数据作为每个季度的总和聚合,因此结果应该是 4 行。

问题是我只有两个季度的数据,所以在使用时GROUP BY quarter,只返回两行。

15147612002018-01-01
15462108002018-12-31

这将返回:

我需要:

这是简化的示例,但在实际用例中,聚合将是例如。5 分钟而不是宿舍,并且 GROUP BY 至少还有一个属性,就像GROUP BY attribute1, time这样期望的结果是

有没有办法以某种方式填充整个给定的间隔?就像 InfluxDBfill对 group 或 TimescaleDb 的time_bucket()函数有参数一样,generate_series() 我尝试搜索 ClickHouse 文档和 github 问题,似乎这还没有实现,所以问题可能是是否有任何解决方法。

0 投票
1 回答
1389 浏览

database - clickhouse 架构设计,预定义的列集

我有多个不同模式的输入源。为了使用 Clickhouse 进行一些分析,我想到了两种处理分析工作负载的方法,使用joinaggregation操作:

  1. 使用连接涉及定义与每个输入对应的表。

  2. 使用聚合函数需要一个表,其中包含一组预定义的列,列的数量和列的类型将基于我的近似值,并且将来可能会改变。

我的问题是:如果我采用第二种方法,定义很多列,比如说数百列。它如何影响性能、存储成本……等?

0 投票
0 回答
1725 浏览

database - 使用 ClickHouse 分布式表上的 where 过滤器进行不同的选择失败

我在分布式表上测试查询时遇到了问题。

SQL是这样的:

'on_time.ontime_all' 是一个分布式表,包含 OriginCityName、OriginStateName 等列。和错误:

但是,如果我对 SQL 执行以下操作之一,错误就会消失:

  • 删除不同的
  • 删除 where 子句
  • 用 prewhere 替换 where
  • 将 where 子句中的“OriginStateName”列也添加到选择部分
  • 将选择部分更改为select distinct *

这种 SQL 对我的应用程序很重要,所以有人可以帮我解决这个问题吗?这是一个错误还是 ClickHouse 的限制?非常感谢。

0 投票
2 回答
1793 浏览

clickhouse - 有没有办法在 ClickHouse 中附加物化视图?

当我们为 ClickHouse 数据库交换磁盘时出现故障。当 ClickHouse 启动时,我必须附加所有表格,因为它们不存在通过ATTACH TABLE IF NOT EXISTS ....

有没有办法对物化视图做同样的事情?我找不到如何做到这一点的方法,当我尝试从头开始创建它时(CREATE MATERIALIZED VIEW IF NOT EXISTS ...,ClickHouse 说:

表的数据目录已经包含数据部分 - 可能是不干净的 DROP 表或手动干预。如果需要使用该部分,则必须手动清除目录或使用 ATTACH TABLE 而不是 CREATE TABLE。

所以文件仍然存在,但不知道如何附加视图。

0 投票
1 回答
6746 浏览

sql - Clickhouse,列值到数组

我想进行查询,然后将每个列的值转换为数组,我尝试找到一种方法来做到这一点,但直到现在它已经暗示了我。

查询是一个简单的选择:

从 X 中选择 a、b、c

而不是 say 的通常结果(默认格式):

我想为每一列获取一个数组,即:

这是可能吗 ?

0 投票
2 回答
5613 浏览

clickhouse - 来自服务器 localhost:9000, ::1 的意外数据包

我已经按照https://github.com/Altinity/clickhouse-rpm-install此处的说明安装了 clickhouse 。

我还在 /etc/clickhouse-server/config.xml 中启用了 ::。

它开始很好,如下所示:

sudo /etc/init.d/clickhouse-server restart 启动 clickhouse-server 服务:/etc/clickhouse-server/config.xml 中数据目录的路径:/var/lib/clickhouse/ DONE

但是,当我启动客户端时,它失败如下:

sudo clickhouse-client ClickHouse 客户端版本 1.1.54383。连接到 localhost:9000。代码:102. DB::NetException:来自服务器 localhost:9000 的意外数据包,::1(预期的 Hello 或异常,得到未知数据包)

0 投票
1 回答
936 浏览

database - 无法启动 clickhouse 服务,../data/default/ 中的文件太多

我的独立 clickhouse-server 安装有一个奇怪的问题。服务器以几乎默认的配置运行了一段时间,除了 data 和 tmp 目录被替换为单独的磁盘:

今天服务器停止响应连接被拒绝错误。它已重新启动,之后服务无法完全启动:

真的,我在 57% 上停止了进程,因为它开始时间太长(也许它可能在一两个小时内开始,我没有尝试)。

默认情况下日志级别是“跟踪”,但我没有说明这种行为的任何原因。

我认为问题在于 /data/clickhouse/data/default/event_5156 中的文件计数。现在它是 626023 目录,并且 ls -la 命令在此目录中无法正常工作,我必须使用 find 来计算文件:

我有两个问题:

1)为什么 Clickhouse-Server 生成了这么多文件和目录,默认配置?

2)如何在足够的时间内启动服务而不丢失数据?

0 投票
2 回答
5779 浏览

clickhouse - Clickhouse 改变物化视图的选择

我有以下设置:

我想添加新列,例如。ipmy request_income餐桌。根据文档,为了这样做,我需要执行以下步骤:

  1. 分离视图以停止接收来自 Kafka 的消息。

    DETACH TABLE request_income;

  2. 删除从 Kafka 流式传输数据的表,因为 Kafka 引擎不支持ALTER查询。

    DROP TABLE request_income_buffer

  3. 使用新字段重新创建从 Kafka 流式传输数据的表。

    如果不存在则创建表 request_income_buffer (timestamp UInt64, timestamp_micro Float32, traceId Int64, host String, ip String, type String, service String, message String, caller String, context String) ENGINE = Kafka('kafka:9092', 'request_income' , '组', 'JSONEachRow');

  4. 根据this post更新分离物化视图的.inner表

    ALTER TABLE `.inner.request_income` 在主机之后添加列 ip 字符串;

  5. 根据上面更新视图的选择查询的帖子

  6. 附加视图

    附加表 request_income

问题是如何更新视图的选择查询?

0 投票
1 回答
362 浏览

yandex - 多个 x 值的 RunningDifference(x)

我的表 tbl_data(event_time, monitor_id,type,event_date,status)

结果将是

这个查询结果给了我单个monitor_id的正确答案,现在我需要多个monitor_id,

如何在单个/相同查询中实现它?