创建数据发布

将源数据库中的全部表或指定表发布给目标工作区。创建成功只表示发布已建立,不表示目标工作区已接受订阅。

POST https://moi.matrixorigin.cn/newmoi/data-share/publishes

调用前准备

准备有源工作区访问权限的个人访问令牌、源工作区 ID、源数据库 ID 和目标工作区 ID。

下方示例使用:

  • $AI_STUDIO_API_KEY:实际个人访问令牌,通过 X-API-Key Header 传递。

  • $WORKSPACE_ID:要创建数据发布的工作区 ID,通过 X-Workspace-ID Header 传递。

  • $SOURCE_DATABASE_ID:要发布的源数据库 ID,在请求体中指定。

  • $TABLE_IDselected 范围中要发布的表 ID,在请求体中指定。

  • $TARGET_WORKSPACE_ID:接收发布的目标工作区 ID,在请求体中指定。

请求体

字段

类型

是否必填

说明

name

string

发布名称,不能为空、最多 200 个字符,且不能包含空格、制表符、反引号或单引号、双引号。

source_database_id

string

源数据库 ID,必须为正整数形式的字符串。

table_scope

object

要发布的表范围。

table_scope.mode

string

all 表示发布源数据库当前全部表;selected 表示仅发布 object_ids 中指定的表。

table_scope.object_ids

string(字符串数组)

条件必填

modeselected 时必须提供 1 至 1000 个不重复的正整数形式表 ID;modeall 时必须省略或传空数组。

target_workspace_ids

string(字符串数组)

至少一个不重复的目标工作区 ID;不能包含当前工作区 ID,且每个值不能有首尾空白。

remark

string

备注。

请求示例

curl -X POST "https://moi.matrixorigin.cn/newmoi/data-share/publishes" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H 'Content-Type: application/json' \
  --data-binary @- <<JSON
    "name": "sales-share",
    "source_database_id": "${SOURCE_DATABASE_ID}",
    "table_scope": {
      "mode": "selected",
      "object_ids": ["${TABLE_ID}"]
    },
    "target_workspace_ids": ["${TARGET_WORKSPACE_ID}"],
    "remark": "共享销售数据"
  }
JSON

成功响应

成功时返回 200data.id 是发布 ID。

{
  "code": "OK",
  "msg": "OK",
  "data": {
    "id": "101",
    "name": "sales-share",
    "source_database_id": "1001",
    "mo_database_name": "sales",
    "table_scope": {
      "mode": "selected",
      "object_ids": ["2001"]
    },
    "obj_display_name": "sales",
    "obj_display_path": "catalog/sales",
    "targets": [
      {
        "workspace_id": "ws-002",
        "workspace_name": "分析工作区"
      }
    ],
    "permission": "read",
    "remark": "共享销售数据",
    "created_by": "user-001",
    "created_at": "2026-08-18T10:00:00Z",
    "updated_at": "2026-08-18T10:00:00Z"
  }
}

响应字段如下。

字段路径中的 [] 表示数组中的每一项。例如,data.targets[].workspace_id 表示 data.targets 数组中每一项的 workspace_id 字段。

字段

类型

说明

code

string

成功时为 OK

msg

string

成功时为 OK

data.id

string

发布 ID。

data.name

string

发布名称。

data.source_database_id

string

源数据库 ID。

data.mo_database_name

string

MatrixOne 中的源数据库名称。

data.table_scope

object

已发布的表范围。

data.table_scope.mode

string

表范围模式。

data.table_scope.object_ids

string(字符串数组)

指定表的 ID;全部表模式时为空数组。

data.obj_display_name

string

用于显示的源对象名称。

data.obj_display_path

string

用于显示的源对象路径。

data.targets

object(对象数组)

目标工作区列表。

data.targets[].workspace_id

string

目标工作区 ID。

data.targets[].workspace_name

string

目标工作区名称;有值时返回。

data.permission

string

发布权限。

data.remark

string

发布备注。

data.created_by

string

创建者标识。

data.created_at

string

创建时间。

data.updated_at

string

最后更新时间。

错误响应

{
  "code": "ErrDuplicatePublish",
  "msg": "发布已存在",
  "data": null
}

常见 HTTP 错误

HTTP 状态码

错误代码

常见原因

建议操作

400

ErrParamInvalid

请求体、源数据库 ID、表范围或目标工作区字段无效。

核对 source_database_idtable_scope 和目标工作区 ID。

404

ErrDataShareSourceNotFound

源数据库或指定表不存在,或当前工作区无权访问。

重新选择当前工作区可访问的源数据库和表。

403

ErrPermissionDenied

当前身份没有创建发布的权限。

请求授予数据发布创建权限。

409

ErrDuplicateNameErrDuplicatePublish

发布名称或对象发布关系已存在。

更换名称,或更新已有发布。

503

ErrPublicationCreateRetryable

创建过程可安全重试,且服务端已确认未创建发布。

使用相同请求稍后重试。

503

ErrDataShareWritesPaused

数据发布写入暂时暂停。

稍后使用相同请求重试。

500

ErrServer

服务端未能创建发布。

稍后重试。

后续操作

查询数据发布列表

最后更新于