章节 · 连接你的数据

每一个数据源。
统一入口。

一次调用即可注册数据源、推断类型化 schema,并将其版本固定至每个涉及它的计划中。文件与 SQLite 在进程内运行——无需密钥,数据不离境。实时数据库通过引擎直连——采用各数据库原生协议,凭据加密,数据不被复制。

const sales = await sqai.connect("./data/sales.csv", { name: "sales" })

→ row_count 12 · schema_revision e4938027… · status ready

类型化 · 哈希固定 · 只读

II类型分类

两类托盘,二十六个抽屉。

每个抽屉遵循同一契约:连接方式、所需条件、数据去向。任取其一。

进程内无需密钥 · 无守护进程 · 无网络

CSV
类型
文件
连接
"./data/sales.csv"
认证
无。SQAI 在您的进程内直接读取字节。
密钥
无需密钥——无账户、无卡,完整只读接口全部开放。
数据
数据不离开进程。
TSV
类型
文件
连接
"./data/orders.tsv"
认证
无。SQAI 在您的进程内直接读取字节。
密钥
无需密钥——无账户、无卡,完整只读接口全部开放。
数据
数据不离开进程。
JSON
类型
文件
连接
"./data/sales.json"
认证
无。SQAI 在您的进程内直接读取字节。
密钥
无需密钥——无账户、无卡,完整只读接口全部开放。
数据
数据不离开进程。
备注
路径或对象均可。
rows
类型
内存
连接
[{ region: "east", revenue: 512 }, …]
认证
无。SQAI 在您的进程内直接读取字节。
密钥
无需密钥——无账户、无卡,完整只读接口全部开放。
数据
数据不离开进程。
{ records }
类型
内存
连接
{ records: [ … ] }
认证
无。SQAI 在您的进程内直接读取字节。
密钥
无需密钥——无账户、无卡,完整只读接口全部开放。
数据
数据不离开进程。
SQLite
类型
嵌入式数据库
连接
{ provider: "sqlite", path, table | query }
认证
无。SQAI 在您的进程内直接读取字节。
密钥
无需密钥——无账户、无卡,完整只读接口全部开放。
数据
数据不离开进程。
备注
完整数据库,仍在进程内运行。可指定表名或只读查询。
Excel
类型
文件
连接
"./data/sales.xlsx"
认证
无。SQAI 在您的进程内直接读取字节。
密钥
无需密钥——无账户、无卡,完整只读接口全部开放。
数据
数据不离开进程。
备注
仅限 Python。
Parquet
类型
文件
连接
"./data/sales.parquet"
认证
无。SQAI 在您的进程内直接读取字节。
密钥
无需密钥——无账户、无卡,完整只读接口全部开放。
数据
数据不离开进程。
备注
仅限 Python。

通过引擎凭据加密 · 数据不被复制

PostgreSQL
类型
关系型
连接
{ type: "postgres", host, port, database, user, password, table | query }
认证
托管引擎使用 SQAI_API_KEY,自托管引擎使用 SQAI_ENGINE_URL。
密钥
一个密钥,或您自己的引擎 URL。
数据
凭据在引擎端加密。数据行按需读取,从不复制。
MySQL
类型
关系型
连接
{ type: "mysql", host, port, database, user, password, table | query }
认证
托管引擎使用 SQAI_API_KEY,自托管引擎使用 SQAI_ENGINE_URL。
密钥
一个密钥,或您自己的引擎 URL。
数据
凭据在引擎端加密。数据行按需读取,从不复制。
Oracle
类型
关系型
连接
{ type: "oracle", host, port, database, user, password, table | query }
认证
托管引擎使用 SQAI_API_KEY,自托管引擎使用 SQAI_ENGINE_URL。
密钥
一个密钥,或您自己的引擎 URL。
数据
凭据在引擎端加密。数据行按需读取,从不复制。
备注
内置 Thin 模式驱动——无需安装 Oracle 客户端。
SQL Server
类型
关系型
连接
{ type: "mssql", host, port, database, user, password, table | query }
认证
托管引擎使用 SQAI_API_KEY,自托管引擎使用 SQAI_ENGINE_URL。
密钥
一个密钥,或您自己的引擎 URL。
数据
凭据在引擎端加密。数据行按需读取,从不复制。
Snowflake
类型
数据仓库
连接
{ type: "snowflake", connection_string, query }
认证
托管引擎使用 SQAI_API_KEY,自托管引擎使用 SQAI_ENGINE_URL。
密钥
一个密钥,或您自己的引擎 URL。
数据
凭据在引擎端加密。数据行按需读取,从不复制。
BigQuery
类型
数据仓库
连接
{ type: "bigquery", connection_string, query }
认证
托管引擎使用 SQAI_API_KEY,自托管引擎使用 SQAI_ENGINE_URL。
密钥
一个密钥,或您自己的引擎 URL。
数据
凭据在引擎端加密。数据行按需读取,从不复制。
ClickHouse
类型
数据仓库
连接
{ type: "clickhouse", connection_string, query }
认证
托管引擎使用 SQAI_API_KEY,自托管引擎使用 SQAI_ENGINE_URL。
密钥
一个密钥,或您自己的引擎 URL。
数据
凭据在引擎端加密。数据行按需读取,从不复制。
Redshift
类型
数据仓库
连接
{ type: "redshift", connection_string, query }
认证
托管引擎使用 SQAI_API_KEY,自托管引擎使用 SQAI_ENGINE_URL。
密钥
一个密钥,或您自己的引擎 URL。
数据
凭据在引擎端加密。数据行按需读取,从不复制。
S3
类型
对象存储
连接
{ type: "s3", … }
认证
托管引擎使用 SQAI_API_KEY,自托管引擎使用 SQAI_ENGINE_URL。
密钥
一个密钥,或您自己的引擎 URL。
数据
凭据在引擎端加密。数据行按需读取,从不复制。
GCS
类型
对象存储
连接
{ type: "gcs", … }
认证
托管引擎使用 SQAI_API_KEY,自托管引擎使用 SQAI_ENGINE_URL。
密钥
一个密钥,或您自己的引擎 URL。
数据
凭据在引擎端加密。数据行按需读取,从不复制。
Azure Blob
类型
对象存储
连接
{ type: "azure_blob", … }
认证
托管引擎使用 SQAI_API_KEY,自托管引擎使用 SQAI_ENGINE_URL。
密钥
一个密钥,或您自己的引擎 URL。
数据
凭据在引擎端加密。数据行按需读取,从不复制。
Redis
类型
NoSQL · 图 · 搜索
连接
{ type: "redis", … }
认证
托管引擎使用 SQAI_API_KEY,自托管引擎使用 SQAI_ENGINE_URL。
密钥
一个密钥,或您自己的引擎 URL。
数据
凭据在引擎端加密。数据行按需读取,从不复制。
Neo4j
类型
NoSQL · 图 · 搜索
连接
{ type: "neo4j", … }
认证
托管引擎使用 SQAI_API_KEY,自托管引擎使用 SQAI_ENGINE_URL。
密钥
一个密钥,或您自己的引擎 URL。
数据
凭据在引擎端加密。数据行按需读取,从不复制。
Elasticsearch
类型
NoSQL · 图 · 搜索
连接
{ type: "elasticsearch", … }
认证
托管引擎使用 SQAI_API_KEY,自托管引擎使用 SQAI_ENGINE_URL。
密钥
一个密钥,或您自己的引擎 URL。
数据
凭据在引擎端加密。数据行按需读取,从不复制。
REST
类型
API
连接
{ type: "rest", … }
认证
托管引擎使用 SQAI_API_KEY,自托管引擎使用 SQAI_ENGINE_URL。
密钥
一个密钥,或您自己的引擎 URL。
数据
凭据在引擎端加密。数据行按需读取,从不复制。
GitHub
类型
代码仓库
连接
{ type: "github", … }
认证
托管引擎使用 SQAI_API_KEY,自托管引擎使用 SQAI_ENGINE_URL。
密钥
一个密钥,或您自己的引擎 URL。
数据
凭据在引擎端加密。数据行按需读取,从不复制。
GitLab
类型
代码仓库
连接
{ type: "gitlab", … }
认证
托管引擎使用 SQAI_API_KEY,自托管引擎使用 SQAI_ENGINE_URL。
密钥
一个密钥,或您自己的引擎 URL。
数据
凭据在引擎端加密。数据行按需读取,从不复制。
Bitbucket
类型
代码仓库
连接
{ type: "bitbucket", … }
认证
托管引擎使用 SQAI_API_KEY,自托管引擎使用 SQAI_ENGINE_URL。
密钥
一个密钥,或您自己的引擎 URL。
数据
凭据在引擎端加密。数据行按需读取,从不复制。

模式由环境自动推断

SQAI_ENGINE_URLself_hosted

您的引擎,您的网络。

SQAI_API_KEYapi

托管引擎。

均未设置local

仅限进程内。

文件与 SQLite 在所有模式下均可使用。实时数据库需要 api 或 self_hosted 模式。引擎一次性建立连接后保持常驻——作为后台守护进程运行,无每次查询的冷启动开销。

不是同步,不是导出。
不经任何第三方桥接。

通过数据库原生线路协议直接连接

III线路

直连,深至协议层。

引擎直接连接,使用各数据库的原生线路协议通信。查询就地执行,限定在您的组织范围内——您的数据库从不被复制。

图示 — 线路
您的数据库数据行就地保留
原生线路协议——由引擎直接使用
引擎只读查询

就地执行,限定范围。

引擎在数据所在位置直接查询,限定在您的组织范围内,从不超出您所配置的边界。

凭据严密封存。

静态加密,限定组织范围,仅用于服务本组织的查询。连接器从不返回其配置内容——仅返回名称、类型、状态及最近一次测试结果。

从不复制

引擎从不复制您的数据库——数据行在原处读取。

SELECT 1ok · connector: live

每次测试均建立真实连接——SQL 数据源执行 SELECT 1,对象存储发送 HEAD 请求,REST 接口执行样本拉取。连接器仅在真实连接成功后方为活跃状态;编辑配置后将回退至未测试状态。

旗舰线路 · Oracle

Thin 模式,无需任何安装。

引擎内置 Thin 模式的 python-oracledb 并直接连接——无需 Instant Client,无额外运行时进程,无需额外 Python 包。引擎端到端掌控线路:驱动程序、有界连接池、凭据验证、模式浏览,以及兼容 Arrow 的批量拉取路径——从不存在隐藏的非池化备用连接。

  • 仅限 SELECT / WITH 根语句
  • 绑定 ROWNUM 限制
  • 持久化探针 · 0 ms 复用

Redshift 以 PostgreSQL 协议响应。

数据表通过 PostgreSQL 线路协议就地读取,集群从不被复制。即便是测试成功的提示信息,也会显示 PostgreSQL 的名称。

同一入口,所有路径。

对象存储与上传文件共用同一套解析器——S3 中的 Parquet 对象与上传的 Parquet 文件,在引擎中的处理方式完全一致。

相同请求 → 相同行,相同顺序 · 每次访问均可审计 · 出口流量受每部署失败关闭白名单管控

IV一致性

下游无从区分 CSV 与 Snowflake。

每个数据源均返回相同类型的 SqaiSource——字段相同、pin 相同、保证相同。将数据仓库替换为文件,下游无需任何改动。

进程内"./data/sales.csv"
经由引擎{ type: "snowflake", connection_string, query }

SqaiSource

结构一致 · 适用所有数据源
name"sales"
source_ide135c6f7eec0e846c01c4ef8
fieldsregion · product · revenue · cost · units · order_date
typed_fields2 string · 3 number · 1 date
row_count12
schema_revisione4938027ddf0d2210f019770403efd45d350eac28100902ddd7c5191c9b8cfbe
statusready

无论数据源为何,凭证始终如一。下游代码从不知晓数据的实际位置。

注册一次。
永不重定义。

重新绑定名称将抛出异常 source_already_registered

V固定点

数据已变更,回放如实呈现。

connect() 将 schema 版本固定到每个涉及该数据源的计划与计算中。对已变更数据回放存储计划,变更将被显式呈现——而非悄然产生不同的数字。

schema_revision
在 connect 时固定,写入每个涉及该数据源的计划与计算。
schema_revision_mismatch
当底层数据在回放期间发生变更时,回放所返回的结果。
source_already_registered
数据源不可变——名称永远不能被悄然重新指向不同的数据。

provenance.bindings[0]

source_name"sales"
fields["revenue"]
schema_revisione4938027…c9b8cfbe
row_count12
input_hash2ea5ede7…478e3212

每个绑定字段均携带其溯源信息。

VI常见问题

LLM 数据库访问,逐一解答。

如何为 LLM 授予数据库访问权限?

在代码中通过 connect() 注册数据源。模型不会看到连接字符串——它通过三个只读工具访问类型化数据源,由策略决定其可访问的数据源与字段。

连接数据源会将我的数据复制到其他地方吗?

不会。进程内数据源不会离开您的机器。引擎数据源对凭证加密存储;数据行按需读取,从不复制。

SQAI 是同步工具、导出工具,还是数据库的第三方桥接服务?

都不是。连接通过数据库自身的线路协议直接建立——引擎在原位查询您的数据,限定在您的组织范围内,从不复制您的数据库。

连接数据源需要 API 密钥吗?

文件、内存数据或 SQLite 无需密钥,完全在进程内运行。线上数据库和数据仓库需要 SQAI_API_KEY(托管引擎)或 SQAI_ENGINE_URL(自托管引擎)。

模型能看到我的凭证吗?

不能。凭证在代码中于 connect() 时提供,并在引擎端加密。模型的工具输入仅携带类型化意图——不含连接详情,不含策略字段。

Oracle 是否无需安装客户端即可使用?

是的。引擎内置 Thin 模式驱动,无需安装任何 Oracle 客户端。

底层数据发生变更时会怎样?

connect 时固定的 schema_revision 将不再匹配,回放会显式返回 schema_revision_mismatch,而非悄然产生不同的数字。对已注册名称重新绑定将抛出 source_already_registered。

连接数据源。

Node ≥ 20 · Python ≥ 3.10 · 文件与 SQLite 无需密钥