前置条件
完成本教程,您需要准备:- 一个 ClickHouse Cloud 账户 (注册即可获得 300 美元免费额度)
- 一个 ClickHouse Cloud 服务
创建表
预处理并插入数据
你可以使用 等待数据插入完成,视网络速度而定,大约需要一到两分钟。
url 函数将数据流式写入 ClickHouse。在此之前,需要先对数据做一些预处理。
下面的查询会向 uk_price_paid 表中插入超过 2500 万行数据,并执行以下预处理步骤:- 将
postcode拆分为postcode1和postcode2两列,更有利于存储和查询 - 将
time字段转换为日期类型,因为其中的时间部分均为00:00 - 忽略 UUID 字段,因为分析时用不到它
- 使用 transform 函数将
type和duration转换为可读性更好的Enum字段 - 将
is_new字段从单字符字符串 (Y/N) 转换为取值为 0 或 1 的 UInt8 字段 - 删除最后两列,因为这两列的值全部相同 (均为 0)
验证数据
下面查看插入了多少行,以验证操作是否成功:运行此查询时,该数据集共有 27,450,499 行。下面来看一下该表在 ClickHouse 中的存储大小:请注意,该表的大小仅为 221.43 MiB,而原始数据集未压缩时约为 4 GiB。
ClickHouse 开箱即用,即可提供出色的数据压缩效果;如有需要,你还可以针对每一列进一步调优压缩。