数据库

支持的数据库

十二个原生数据库适配器,从嵌入式的 SQLite、DuckDB,到云数仓(Snowflake、StarRocks、Apache Doris、ClickZetta),再到湖上引擎(Hive、Spark、Trino、ClickHouse)。全部通过 Python entry points 接入——你这边不用写任何适配器代码。

内置

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
特点湖仓一体、物化视图与混合检索。
v0.2.6

ClickHouse

类型clickhouse
安装包datus-clickhouse
特点HTTP 协议;database 等同 schema,支持轻量 DELETE。

ClickZetta

类型clickzetta
安装包datus-clickzetta
特点工作空间 + Volume/Stage 操作;湖仓生态伙伴。
v0.2.6

Hive

类型hive
安装包datus-hive
特点HiveServer2 / Thrift,支持 LDAP 与 Kerberos 认证。
v0.2.6

Spark

类型spark
安装包datus-spark
特点Spark Thrift Server;支持 NONE / PLAIN / Kerberos 认证。
v0.2.6

Trino

类型trino
安装包datus-trino
特点通过 HTTP/HTTPS SSL 做跨 catalog 查询。
统一接口

四类引擎,一套接口

每个适配器都实现同一套 CRUD、DDL、元数据与采样契约——所以子代理在你的 OLTP、数仓和湖上引擎之间表现完全一致。

关系型

PostgreSQL、MySQL——经典 OLTP 组合,元数据接口丰富。

云数仓

Snowflake、StarRocks、Apache Doris、ClickZetta——带 catalog 与工作空间模型的 MPP 引擎。

湖与分布式

Hive、Spark、Trino——架在数据湖之上的 Thrift 与 HTTP 引擎。

分析型与嵌入式

DuckDB、ClickHouse、SQLite——从本地文件到列式 OLAP。
databases.ymlyaml
数据库类型安装包特点
SQLitesqlite 内置零配置的文件型存储——做演示和测试再合适不过。
DuckDBduckdb 内置嵌入式 OLAP,在本地直接分析 Parquet / CSV。
PostgreSQLpostgresqldatus-postgresql六种 SSL 模式,支持多 schema 与物化视图。
MySQLmysqldatus-mysql通过 INFORMATION_SCHEMA + SHOW CREATE 获取丰富元数据。
Snowflakesnowflakedatus-snowflake原生 SDK 配合 Arrow 传输,读取更快。
StarRocksstarrocksdatus-starrocks多 catalog + 物化视图,走 MySQL 协议。
Apache Dorisdorisdatus-doris湖仓一体、物化视图与混合检索。
ClickHouseclickhousedatus-clickhouseHTTP 协议;database 等同 schema,支持轻量 DELETE。
ClickZettaclickzettadatus-clickzetta工作空间 + Volume/Stage 操作;湖仓生态伙伴。
Hivehivedatus-hiveHiveServer2 / Thrift,支持 LDAP 与 Kerberos 认证。
Sparksparkdatus-sparkSpark Thrift Server;支持 NONE / PLAIN / Kerberos 认证。
Trinotrinodatus-trino通过 HTTP/HTTPS SSL 做跨 catalog 查询。

配置方式、连接串与高级选项,详见Database Adapters 文档

迁移

跨数据库迁移提示

每个适配器都实现了 MigrationTargetMixin,因此子代理可以为目标方言生成 DDL、给出对 OLAP 友好的表结构建议,并用 dry-run 校验结果。

get_migration_capabilities()suggest_table_layout()validate_ddl()
layout-suggestions.sqlsql
# 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.ymlyaml
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 就能基于你真实的表结构开始推理。