跳至正文
浏览文档
执行引擎

选择执行引擎

决定数据在哪里加载、查询用什么语言、代码在哪里执行。

选择引擎

在 AVA 构造函数中设置引擎。JavaScript API 省略该配置时始终选择 DuckDB,不会根据数据源类型自动切换。

引擎支持的数据源运行环境
DuckDB内存数据、文件、MySQL、PostgreSQL、SQLite、MongoDBNode.js
JavaScript内存 CSV、JSON、文本Node.js 和浏览器
Python内存 CSV / JSON;CSV / JSON / Parquet / Excel 文件Node.js + Python 执行器
SupabaseSupabase 项目Node.js,远程 PostgreSQL
ClickHouseClickHouse 数据库Node.js,远程 ClickHouse

引擎配置

字段类型必填默认值与行为
engine.type'duckdb' / 'javascript' / 'python' / 'supabase' / 'clickhouse' / 已注册的名称提供 engine 时必填省略 engine 时选择 DuckDB。

其他字段取决于 type,详见 DuckDB 选项和 Python 选项。JavaScript、Supabase、ClickHouse 没有额外的构造函数引擎字段;数据库凭证放在数据源参数中。

希望在自己的服务中执行 Python,参见提供 Python 执行器。希望在应用中提供自己的引擎,参见自定义引擎。

共同约定

引擎负责加载数据、发现结构、计算统计、根据传入上下文生成查询、执行查询和释放资源。AVA 管理 schema 与 profile 缓存,并决定何时需要发现结构或计算统计信息。

应用通常直接使用 AVA API。引擎实现者应遵循引擎接口约定,分别实现 load() 和 schema()。

注册

Node.js 入口注册全部五种引擎,浏览器入口只注册 JavaScript。注册表让核心 AVA 类无需直接依赖各平台专用模块。

扩展 SDK 时,先调用 registerEngine('sales', SalesEngine),再设置 engine: { type: 'sales' }。接口约定和完整示例见自定义引擎。CLI 仅接受内置引擎名。