Repolode
xqlsystems

xqlsystems/xarray-sql

一个 Python 库,把 Xarray 数组数据转换为表,从而用 SQL 直接查询,可对接 DuckDB、Polars 等引擎。

Star
153
Fork
23
未关闭 Issue
104
最近提交
5天前

这是什么?

xarray-sql 是一个面向数组数据集的 SQL 接口。它把 Xarray Dataset 转换成表结构,让你可以在自己选择的查询引擎上用 SQL 查询这些数据,查询结果也能再转回 Xarray Dataset,方便绘图或继续分析。

同一份数据可以注册到多个引擎中,包括通过 PyArrow 数据集接口接入的 DuckDB、Polars 和 DataFusion。任何带 ADBC 驱动的数据库,如 PostgreSQL、SQLite、Snowflake、BigQuery,都可以把数据写入表中。xql.serve 还能把数据集作为 Arrow Flight SQL 服务暴露出去,供 ADBC、JDBC、ODBC 客户端查询。对于云原生的 Zarr 数据,库支持列投影和基于维度的谓词下推,查询大型数据集(如 ARCO-ERA5)时只读取所需变量和分块。

该项目目前仍处于实验阶段,各引擎的已知限制都有单独记录。可选的 geo 扩展提供 proj 地理投影 UDF。

核心功能

  • 01通过 from_dataset 或 xql.register 将 Xarray 数据集注册为 SQL 表。
  • 02用 to_dataset 把查询结果转换回 Xarray 数据集。
  • 03支持 DuckDB、Polars、DataFusion 以及所有 ADBC 兼容数据库。
  • 04将列选择和维度过滤下推到 Zarr 读取层,并裁剪无关分区。
  • 05通过 Arrow Flight SQL 对外提供数据集查询服务。

适用场景

  • 对气象或气候网格数据做 SQL 聚合,例如计算逐月气候态。
  • 用 SQL 将表格数据与栅格或网格数据关联。
  • 在不一次性加载全部数据的情况下查询云端托管的大型 Zarr 数据集。
  • 让熟悉 SQL 的用户通过常用数据库工具访问科学数组数据。

快速上手

  1. 1

    从 PyPI 安装该库

    pip install xarray-sql
  2. 2

    安装教程示例的可选依赖(pooch、netCDF4、matplotlib)

    pip install pooch netCDF4 matplotlib

使用前须知

  • 项目处于早期阶段,维护者正在寻找早期用户,接口可能会变化。
  • 部分引擎相关及基础性的已知问题单独记录,使用前请先查看。
  • 稠密张量运算用 SQL 实现比原生 Xarray 慢。

收录于专题

标签

常见问题

xarray-sql 是什么?
一个 Python 库,把 Xarray 数组数据转换为表,从而用 SQL 直接查询,可对接 DuckDB、Polars 等引擎。 xarray-sql 是一个面向数组数据集的 SQL 接口。它把 Xarray Dataset 转换成表结构,让你可以在自己选择的查询引擎上用 SQL 查询这些数据,查询结果也能再转回 Xarray Dataset,方便绘图或继续分析。
xarray-sql 可以免费使用吗?用的什么许可证?
xarray-sql 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
xarray-sql 还在维护吗?
活跃维护中。xarray-sql 最近一次提交是在 2026年11月2日。
xarray-sql 适合用来做什么?
对气象或气候网格数据做 SQL 聚合,例如计算逐月气候态。 用 SQL 将表格数据与栅格或网格数据关联。 在不一次性加载全部数据的情况下查询云端托管的大型 Zarr 数据集。 让熟悉 SQL 的用户通过常用数据库工具访问科学数组数据。
xarray-sql 怎么安装和运行?
从 PyPI 安装该库: pip install xarray-sql 安装教程示例的可选依赖(pooch、netCDF4、matplotlib): pip install pooch netCDF4 matplotlib
在哪里获取 xarray-sql?
源代码和安装说明在 GitHub 上:https://github.com/xqlsystems/xarray-sql

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目