> ## Documentation Index
> Fetch the complete documentation index at: https://docs.memorylake.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# 创建数据源

> 在工作空间中基于已保存连接的一个 schema 创建数据源

```
POST /openapi/memorylake/api/v3/workspaces/{workspaceId}/db-datasources
```

在工作空间中，基于一个已有[数据库连接](https://docs.memorylake.cn/features/memorylake/api-reference/database/connections/get-database-connection.md)的某个 schema 创建数据源。分析模型和数据库记忆都建立在数据源之上。

数据源创建后，其连接和 schema 都不能再更改。如需覆盖另一个 schema，请另建一个数据源。

数据源需要先构建好索引才能使用。如果响应中的 `building_version` 非空，说明构建已经开始：请轮询[获取数据源](https://docs.memorylake.cn/features/memorylake/api-reference/database/datasources/get-datasource.md)，直到它重新变为空。否则，请调用[构建数据源索引](https://docs.memorylake.cn/features/memorylake/api-reference/database/datasources/build-datasource-index.md)开始构建。

> [!NOTE]
>
> **所需权限：** 对工作空间有 `db_datasource:add`，并对连接有 `dbconn:read`

### 路径参数

**workspaceId** `string` *required*

工作空间 ID

### 请求体

**name** `string` *required*

显示名称

**db\_connection\_id** `string` *required*

这个数据源读取数据所用的连接 ID。您需要对该连接有 `dbconn:read` 权限。

**schemas** `array` *required*

这个数据源覆盖的 schema，以只含一项的列表传入，例如 `["sales"]`。它必须是该连接能读取的 schema；可调用[列出连接可读的 Schema](https://docs.memorylake.cn/features/memorylake/api-reference/database/connections/list-connection-schemas.md) 查看可选项。创建后不能修改。

**description** `string`

自由格式的描述

**table\_filter\_rule** `string` (default: .\*)

正则表达式，决定 schema 中哪些数据表进入索引。默认值 `.*` 表示全部数据表。

**custom\_id** `string`

这个数据源在您自己系统里的标识符，最长 255 个字符。在您的租户内必须唯一，设置后不能修改，且不能以 `_sys_` 开头。调用[获取数据源](https://docs.memorylake.cn/features/memorylake/api-reference/database/datasources/get-datasource.md)时带上 `by_custom_id=true`，即可用它查找数据源。参见[您自己的标识符](https://docs.memorylake.cn/features/memorylake/api-reference/overview.md#您自己的标识符)。

```bash cURL theme={null}
curl -X POST 'https://app.memorylake.cn/openapi/memorylake/api/v3/workspaces/ws-8001856949ad4f6a5b6226f415ffa877/db-datasources' \
  -H 'Authorization: Bearer sk_xxxxxx' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Sales warehouse · sales",
    "description": "Orders and customers from the sales schema",
    "db_connection_id": "dbconn-7c1e9a4b2d6f4a8e9b3c5d7f1a2b4c6d",
    "schemas": ["sales"],
    "table_filter_rule": ".*",
    "custom_id": "sales-ds"
  }'
```

### 响应

**data** `object`

**数据源对象**

**id** `string`

数据源标识符，请把它当作不透明字符串处理。

**name** `string`

显示名称

**description** `string`

自由格式的描述

**schemas** `array`

这个数据源覆盖的 schema。目前只包含一项，且不能修改。

**workspace\_id** `string`

这个数据源所属的工作空间

**db\_connection\_id** `string`

这个数据源读取数据所用的连接

**custom\_id** `string`

您为这个数据源设置的自定义标识符（如果设置过）

**table\_filter\_rule** `string`

正则表达式，决定 schema 中哪些数据表进入索引。`.*` 表示全部数据表。

**database\_count** `integer`

当前使用这个数据源的数据库记忆数量

**build\_version** `string`

最近一次构建完成的索引版本。首次构建完成之前为空。

**building\_version** `string`

正在构建的索引版本。没有构建在进行时为空。

**data\_version** `string`

数据版本，用于判断索引是否最新。当它非空且与 `build_version` 不同时，说明索引落后于数据，需要重新构建。

**created\_at** `string`

创建时间戳

**updated\_at** `string`

最后更新时间戳

```json Success (200) theme={null}
{
  "success": true,
  "data": {
    "id": "dbds-4b8e2f6a1c9d4e7b8a3f5c2d6e9b1a7c",
    "name": "Sales warehouse · sales",
    "description": "Orders and customers from the sales schema",
    "schemas": ["sales"],
    "workspace_id": "ws-8001856949ad4f6a5b6226f415ffa877",
    "db_connection_id": "dbconn-7c1e9a4b2d6f4a8e9b3c5d7f1a2b4c6d",
    "custom_id": "sales-ds",
    "table_filter_rule": ".*",
    "database_count": 0,
    "build_version": "",
    "building_version": "20260918074243318",
    "data_version": "",
    "created_at": "2026-09-18T07:42:43.299Z",
    "updated_at": "2026-09-18T07:42:43.299Z"
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.