支持的数据库
十二个原生数据库适配器,从嵌入式的 SQLite、DuckDB,到云数仓(Snowflake、StarRocks、Apache Doris、ClickZetta),再到湖上引擎(Hive、Spark、Trino、ClickHouse)。全部通过 Python entry points 接入——你这边不用写任何适配器代码。
SQLite
sqlite内置DuckDB
duckdb内置PostgreSQL
postgresqldatus-postgresqlMySQL
mysqldatus-mysqlSnowflake
snowflakedatus-snowflakeStarRocks
starrocksdatus-starrocksApache Doris
dorisdatus-dorisClickHouse
clickhousedatus-clickhouseClickZetta
clickzettadatus-clickzettaHive
hivedatus-hiveSpark
sparkdatus-sparkTrino
trinodatus-trino四类引擎,一套接口
每个适配器都实现同一套 CRUD、DDL、元数据与采样契约——所以子代理在你的 OLTP、数仓和湖上引擎之间表现完全一致。
关系型
云数仓
湖与分布式
分析型与嵌入式
| 数据库 | 类型 | 安装包 | 特点 |
|---|---|---|---|
| SQLite | sqlite | 内置 | 零配置的文件型存储——做演示和测试再合适不过。 |
| DuckDB | duckdb | 内置 | 嵌入式 OLAP,在本地直接分析 Parquet / CSV。 |
| PostgreSQL | postgresql | datus-postgresql | 六种 SSL 模式,支持多 schema 与物化视图。 |
| MySQL | mysql | datus-mysql | 通过 INFORMATION_SCHEMA + SHOW CREATE 获取丰富元数据。 |
| Snowflake | snowflake | datus-snowflake | 原生 SDK 配合 Arrow 传输,读取更快。 |
| StarRocks | starrocks | datus-starrocks | 多 catalog + 物化视图,走 MySQL 协议。 |
| Apache Doris | doris | datus-doris | 湖仓一体、物化视图与混合检索。 |
| ClickHouse | clickhouse | datus-clickhouse | HTTP 协议;database 等同 schema,支持轻量 DELETE。 |
| ClickZetta | clickzetta | datus-clickzetta | 工作空间 + Volume/Stage 操作;湖仓生态伙伴。 |
| Hive | hive | datus-hive | HiveServer2 / Thrift,支持 LDAP 与 Kerberos 认证。 |
| Spark | spark | datus-spark | Spark Thrift Server;支持 NONE / PLAIN / Kerberos 认证。 |
| Trino | trino | datus-trino | 通过 HTTP/HTTPS SSL 做跨 catalog 查询。 |
配置方式、连接串与高级选项,详见Database Adapters 文档。
跨数据库迁移提示
每个适配器都实现了 MigrationTargetMixin,因此子代理可以为目标方言生成 DDL、给出对 OLAP 友好的表结构建议,并用 dry-run 校验结果。
# datus-agent generates layout hints per target:
# StarRocks
CREATE TABLE orders_agg (
user_id BIGINT,
order_day DATE,
gmv DECIMAL(18,2)
)
DUPLICATE KEY(user_id, order_day)
DISTRIBUTED BY HASH(user_id) BUCKETS 16;
# ClickHouse
CREATE TABLE orders_agg (
user_id UInt64,
order_day Date,
gmv Decimal(18,2)
)
ENGINE = MergeTree
ORDER BY (user_id, order_day);开箱即用的数据源配置
一份 YAML 接上所有数仓。用环境变量把凭据挡在代码仓库之外。
agent:
service:
databases:
production: # Snowflake
type: snowflake
account: ${SNOWFLAKE_ACCOUNT}
username: ${SNOWFLAKE_USER}
password: ${SNOWFLAKE_PASSWORD}
warehouse: ${SNOWFLAKE_WAREHOUSE}
database: ${SNOWFLAKE_DATABASE}
analytics: # PostgreSQL
type: postgresql
host: ${PG_HOST}
port: 5432
username: ${PG_USER}
password: ${PG_PASSWORD}
database: mydb
schema: public
local_demo: # DuckDB
type: duckdb
uri: ./data/demo.duckdb
default: true
bird_benchmark: # SQLite (glob multi-file)
type: sqlite
path_pattern: benchmark/bird/**/*.sqlite常见问题
支持的数据库、适配器安装、自定义驱动,以及权限要求。
Datus 开箱支持哪些数据库?
Datus 支持 12 种以上数据库:SQLite、DuckDB、PostgreSQL、MySQL、Snowflake、StarRocks、Apache Doris、ClickHouse、ClickZetta、Hive、Spark 和 Trino。其中 SQLite 与 DuckDB 是内置的,其余以可安装适配器的形式提供(datus-postgresql、datus-snowflake 等)。
怎么安装数据库适配器?
在装好 Datus CLI 之后再安装对应的适配器包——例如 pip install datus-snowflake——然后在配置里加一个带连接信息的 datasource 块。所有可选项和连接串写法都在 Database Adapters 文档里。
能连列表之外的数据库吗?
可以。适配器接口是开放的,任何有 Python 驱动的数据库都能包装成 Datus 适配器。你可以在 GitHub 上提 issue,也可以照着 datus-postgresql 的模式贡献一个新适配器。
Agent 需要对我的数仓有读写权限吗?
不需要。分析类场景下,Datus 用只读凭据就能工作。只有需要物化表或模型的管道部署 Agent 才需要写权限。
v0.2.6 新增了哪些适配器?
v0.2.6 新增了 Hive、Spark、ClickHouse 与 Trino,在原有的关系型和云数仓适配器之外,补齐了对湖 / 分布式以及列式 OLAP 这两层的原生支持。
几分钟接上你的数仓
Snowflake、Postgres、MySQL 等都有原生适配器——填上凭据,Agent 就能基于你真实的表结构开始推理。