- Python 3.8 或更高版本
- 一个虚拟环境
- 一个可用的 ClickHouse Cloud 服务,以及你的连接信息
- 使用 chDB 从 Marimo 笔记本 连接到 ClickHouse Cloud
- 查询远程数据集并将结果转换为 Pandas DataFrame
- 在 Marimo 中使用 Plotly 进行数据可视化
- 利用 Marimo 的响应式执行模型进行交互式数据探索
配置
加载数据集
Data sources。然后点击 Predefined sample data:
在 UK property price paid data (4GB) 卡片中选择 Get started:
然后点击 Import dataset:
ClickHouse 将自动在 default 数据库中创建 pp_complete 表,并向该表导入 2892 万行价格数据。
为降低凭据泄露的风险,建议您在本地计算机上将 Cloud 用户名和密码设置为环境变量。
请在终端中运行以下命令,将您的用户名和密码添加为环境变量:
配置凭据
上述环境变量仅在当前终端会话期间有效。
若要永久生效,请将其添加到 shell 配置文件中。
安装 Marimo
安装依赖项
探索数据
remoteSecure 函数可让你轻松从 ClickHouse Cloud 获取数据。
你可以让 chDB 在进程内将这些数据作为 Pandas 数据框返回——这是一种方便且熟悉的数据处理方式。
查询 ClickHouse Cloud 数据
pandas.DataFrame:
chdb.query(query, "DataFrame") 会运行指定的查询,并将结果输出为 Pandas DataFrame。
在该查询中,我们使用 remoteSecure 函数连接到 ClickHouse Cloud。
remoteSecure 函数接受以下参数:
- 连接字符串
- 要使用的数据库和表名称
- 你的用户名
- 你的密码
remoteSecure 函数会连接到远程 ClickHouse Cloud 服务,运行查询并返回结果。
具体耗时取决于数据量,可能需要几秒钟。
在此示例中,我们返回每年的平均价格,并按 town='LONDON' 进行过滤。
结果随后会作为 DataFrame 存储在名为 df 的变量中。
数据可视化
交互式城镇选择
使用交互式箱线图探索价格分布
总结
remoteSecure() 函数查询远程 ClickHouse Cloud 数据,并将结果直接转换为 Pandas DataFrame,以便进行分析和可视化。
借助 chDB 和 Marimo 的响应式执行模型,数据科学家可以将 ClickHouse 强大的 SQL 能力与 Pandas、Plotly 等熟悉的 Python 工具结合使用;再加上交互式小部件和自动依赖跟踪,这让探索性分析更加高效且可复现。