Skip to main content
在本教程中,您将使用 来探索 ClickHouse。该数据集收录了自 1995 年以来英格兰和威尔士的房地产成交价格数据。

前置条件

完成本教程,您需要准备:
1

创建表

  1. 从左侧菜单中选择 SQL 控制台
  2. 点击主页图标旁边的 + 选项卡,新建一个查询
  3. 在 SQL 编辑器中输入以下查询,然后点击 运行:
请注意 ORDER BY (postcode1, postcode2, addr1, addr2),它决定了 ClickHouse 在磁盘上对数据的排序方式。在 ClickHouse 中,选择与访问模式相匹配的主键对查询性能和存储效率至关重要。 更多详情请参阅 “选择主键”。
有关各字段的说明,请参阅 https://www.gov.uk。
2

预处理并插入数据

你可以使用 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)
等待数据插入完成,视网络速度而定,大约需要一到两分钟。
3

验证数据

下面查看插入了多少行,以验证操作是否成功:
运行此查询时,该数据集共有 27,450,499 行。下面来看一下该表在 ClickHouse 中的存储大小:
请注意,该表的大小仅为 221.43 MiB,而原始数据集未压缩时约为 4 GiB。 ClickHouse 开箱即用,即可提供出色的数据压缩效果;如有需要,你还可以针对每一列进一步调优压缩。
4

执行几条查询

数据加载完成后,可以运行以下查询,直观感受分析型查询返回结果的速度。 下面的查询会基于全部数据计算每年的平均价格:
以下查询通过应用过滤器,计算伦敦每年的平均价格:
看起来 2020 年的房价出了些状况!不过这大概也不足为奇……下面的查询可找出房价最高的社区:

后续步骤

在本教程中,您创建了一张表,对英国房产价格数据进行了预处理并将其加载到 ClickHouse 中,然后 对这些数据运行了一些分析查询。 接下来,您可以:
最后修改于 2026年9月26日