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
从 PyPI 安装该库
pip install xarray-sql - 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 数据每日更新。
相关项目
GPU 加速的 DataFrame 库,API 接近 pandas,并可零改动加速现有 pandas 代码。
一款轻量级云原生 GIS 平台,可在浏览器、桌面、移动端和 Jupyter 中可视化与分析地理空间数据。
用 Rust 编写的 Apache Spark 直接替代品,无需改写代码即可运行现有 PySpark 程序。
基于 AI 智能体的数据探索工具,可连接文件和数据库,把自然语言问题转为可编辑的可视化图表。
面向多模态 AI 的开放 lakehouse 表格式与文件格式,支持向量检索、全文检索和快速随机访问。