- 一个虚拟环境
- 一个可用的 ClickHouse Cloud 服务,以及你的连接信息
- 使用 chDB 在 Jupyter 笔记本中连接到 ClickHouse Cloud
- 查询远程数据集并将结果转换为 Pandas DataFrame
- 将云端数据与本地 CSV 文件结合起来进行分析
- 使用 matplotlib 进行数据可视化
设置
Data sources。然后点击 Predefined sample data:
在英国房产成交价格数据 (4GB) 卡片中点击 Get started:
然后点击 Import dataset:
ClickHouse 将自动在 default 数据库中创建 pp_complete 表,并向该表填充 2892 万行价格点数据。
为降低凭据泄露的风险,我们建议你将 Cloud 用户名和密码添加为本地计算机上的环境变量。
在终端中运行以下命令,将你的用户名和密码添加为环境变量:
上述环境变量仅在当前终端会话期间有效。
如需永久生效,请将其添加到 shell 配置文件中。
localhost:8888 上的 Jupyter 界面。
点击 File > New > Notebook,创建一个新的笔记本。
系统会提示你选择一个内核。
选择任意一个可用的 Python 内核,本示例中我们选择 ipykernel:
在空白单元格中,输入以下命令安装 chDB,我们将使用它连接到远程 ClickHouse Cloud 实例:
探索数据
remoteSecure 函数可让你轻松从 ClickHouse Cloud 获取数据。
你可以让 chDB 以进程内 Pandas DataFrame 的形式返回这些数据——这是一种方便且熟悉的数据处理方式。
编写以下查询,从你的 ClickHouse Cloud 服务中拉取 UK price paid 数据,并将其转换为 pandas.DataFrame:
chdb.query(query, "DataFrame") 会运行指定的查询,并将结果以 Pandas DataFrame 的形式输出到终端。
在这个查询中,我们使用 remoteSecure 函数连接到 ClickHouse Cloud。
remoteSecure 函数接受以下参数:
- 连接字符串
- 要使用的数据库和表名称
- 你的用户名
- 你的密码
remoteSecure 函数会连接到远程 ClickHouse Cloud 服务,运行查询并返回结果。
具体耗时取决于数据量,可能需要几秒钟。
在这个示例中,我们返回每年的平均价格,并通过 town='LONDON' 进行过滤。
结果随后会以 Pandas DataFrame 的形式存储在名为 df 的变量中。
df.head 仅显示返回数据的前几行:
在新单元格中运行以下命令,以检查各列的数据类型:
date 的类型是 Date,但在生成的 Pandas DataFrame 中,它的类型是 uint16。
chDB 会在返回 Pandas DataFrame 时自动推断出最合适的类型。
现在数据已经以一种熟悉的形式呈现出来,让我们看看伦敦房产价格如何随时间变化。
在新的单元中,运行以下命令,使用 matplotlib 为伦敦绘制一个简单的时间与价格关系图表:
file File 表引擎直接读取本地机器上的文件。
在一个新单元中,运行以下命令,根据本地 .csv 文件创建一个新的 Pandas DataFrame。
在一步中从多个源读取
在一步中从多个源读取
也可以在一步中从多个源读取。你可以使用下面这个带有
JOIN 的查询来实现:总结
remoteSecure() 函数查询远程 ClickHouse Cloud 数据,如何使用 file() 表引擎读取本地 CSV 文件,以及如何将结果直接转换为 Pandas DataFrame 以便进行分析和可视化。
借助 chDB,数据科学家可以将 ClickHouse 强大的 SQL 能力与 Pandas、matplotlib 等熟悉的 Python 工具结合起来,轻松整合多个数据源,开展更全面的分析。
虽然许多身处伦敦的数据科学家短期内可能还买不起自己的房子或公寓,但至少他们还能分析这个让自己望房兴叹的市场!