如何查询 S3 桶中的数据
世界上很多数据存储在 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。