跳到主要内容
跳到主要内容

如何在 S3 bucket 中查询数据

世界上很多数据存储在 Amazon S3 存储桶中。 在本指南中,我们将学习如何使用 chDB 查询这些数据。

设置

我们首先创建一个虚拟环境:

现在我们将安装 chDB。 确保您有版本 2.0.2 或更高版本:

接下来我们要安装 IPython:

我们将使用 ipython 来运行本指南余下部分的命令,您可以通过运行以下命令启动它:

您也可以在 Python 脚本或您喜欢的笔记本中使用这些代码。

列出 S3 存储桶中的文件

让我们开始列出 包含亚马逊评论的 S3 存储桶 中的所有文件。 为此,我们可以使用 s3 表函数,并传入文件的路径或文件集的通配符。

提示

如果您仅传入存储桶名称,将会抛出异常。

我们还将使用 One 输入格式,这样文件就不会被解析,而是每个文件返回一行,我们可以通过 _file 虚拟列访问文件,通过 _path 虚拟列访问路径。

这个存储桶只包含 Parquet 文件。

查询 S3 存储桶中的文件

接下来,让我们学习如何查询这些文件。 如果我们想计算每个文件中的行数,可以运行以下查询:

我们也可以传入 S3 存储桶的 HTTP URI,并获得相同的结果:

让我们使用 DESCRIBE 子句查看这些 Parquet 文件的模式:

现在让我们根据评论数量计算顶级产品类别,并计算平均星级评分:

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

如果我们在私有 S3 存储桶中查询文件,则需要传入访问密钥和密钥。 我们可以将这些凭证传递给 s3 表函数:

备注

此查询将无法工作,因为这是一个公共存储桶!

另一种方法是使用 命名集合,但该方法尚未被 chDB 支持。