Skip to main content
全球有大量数据存储在亚马逊 S3 存储桶中。 在本指南中,我们将学习如何使用 chDB 查询这些数据。

环境准备

先创建一个虚拟环境:
现在我们来安装 chDB。 请确保版本为 2.0.2 或更高:
接下来,我们来安装 IPython:
我们将使用 ipython 运行本指南后续部分中的命令,你可以通过运行以下命令启动它:
你也可以在 Python 脚本或你常用的 notebook 中使用这段代码。

列出 S3 存储桶中的文件

我们先列出包含亚马逊评论的 S3 存储桶中的所有文件。 为此,我们可以使用 s3 表函数,并传入文件路径或一组文件的通配符。
如果只传入 bucket 名称,就会抛出异常。
我们还会使用 One 输入格式,这样就不会解析文件;而是每个文件返回一行,我们可以通过 _file 虚拟列访问文件,并通过 _path 虚拟列访问路径。
该存储桶中只有 Parquet 文件。

查询 S3 存储桶中的文件

接下来,我们来看看如何查询这些文件。 如果想统计这些文件中各个文件的行数,可以运行以下查询:
我们也可以传入 S3 存储桶的 HTTP URI,得到相同的结果:
让我们使用 DESCRIBE 子句来看一下这些 Parquet 文件的 schema:
现在我们来根据评论数量统计最热门的产品类别,并计算平均星级评分:

查询私有 S3 存储桶中的文件

如果要查询私有 S3 存储桶中的文件,则需要传入访问密钥和密钥。 我们可以将这些凭证传递给 s3 表函数:
此查询无法执行,因为这是一个公共 bucket!
另一种方法是使用命名集合,但 chDB 目前尚不支持这种方式。
最后修改于 2026年7月23日