用途
Sync(Celigo Data Ingestion)用于将源应用中的多张表或对象复制到数据仓库。它把源连接与目标(仓库连接加数据库和 schema)配对,数据集决定复制哪些表或对象、哪些列以及每张表的加载方式。首次运行从 historicDateTime 回填历史数据,后续运行为增量。运行按 cron 计划或按需触发,每次运行生成只读的 sync job,包含按表拆分的子任务、运行错误以及 schema 漂移事件。
Sync 不是 Flow:它没有步骤、映射、钩子、过滤器或路由器,属于独立的集成类型,其运行和错误通过 sync jobs 读取,而非 flow jobs 或 flow errors。
主要能力
- 从源应用复制多张表或对象到数据仓库,支持历史回填与增量更新。
- 数据集支持 append、replace、merge 三种加载模式;merge 需启用主键列。
- 支持列级配置:启用、掩码(mask)、主键、transformMode(preserve、flatten、normalize)及嵌套字段子项。
- 支持 schema 漂移策略:对新增表、新增列、删除、缩减、扩展等变化按策略自动处理或忽略。
- 运行可整体执行、按数据集范围执行,或执行 resync 丢弃增量检查点并重新加载全部数据。
- 提供 sync jobs、运行错误、Schema Drift 与 Data Catalog 事件等只读诊断信息。
使用方式
可通过 celigo CLI(celigo syncs、celigo datasets、celigo sync-jobs)、REST API 或 Celigo UI 构建与操作。已部署的 Celigo MCP 服务器没有 sync、dataset 或 sync-job 工具,因此需使用 CLI、REST API 或 UI。
构建流程:
- 确认是 sync 并读取许可证的 di 块(enabled 必须为 true;无 volume pack 时,已有启用 sync 的环境不能再启用新的)。
- 查找或创建 sync 集成:集成需以 syncs: true 创建,该标志在创建时固定,更新时会被忽略;一个集成内所有 sync 必须加载到同一目标应用类型。
- 配置源:源连接通过 catalog 提供表,或通过 export-backed 数据集(isExport: true,externalId 设为导出的 _id)提供数据。
- 配置目标:目标块包含 _connectionId、database、schema 及可选 tablePrefix,需一次性完整提交。
- 配置数据集:通过一次批量 PUT 数组写入,带 externalId 的项创建,带 _id 的项更新;一项失败会导致整批失败。
- 启用:需要源、完整目标、historicDateTime 以及许可证检查。
- 运行:需要已保存的目标、已启用、无排队或运行中的任务。
- 删除:需先禁用(disabled: true)。
适用场景
- 将某应用的许多表或对象复制到数据仓库,并需要回填与增量更新。
- 将一次导出的记录落入仓库表,途中无需映射或钩子(使用 export-backed 数据集)。
- 需要按计划或按需批量加载,而非事件驱动或实时。
限制
- Sync 的目标始终是数据仓库;支持的仓库来自 destinations 列表(当前为 snowflake、bigquery、mssql、nsaw)。
- 不支持应用间记录移动、反向 ETL、逐记录重塑/映射/过滤/分支、实时事件或 CDC;这些应使用 Flow。
- 一个集成只能有一种仓库类型;一个数据库与 schema 组合只能支撑一个 sync,重复目标会被拒绝。
- 数据集没有删除操作,只能设 enable: false。
- 保存时不校验源端,externalId 或列名需从 catalog 和列读取中获取。
- 运行错误不可重试或解决,需修复原因后重新运行。
- 许可证在启用时检查,而非创建时;用量按每月、每 sync、每环境统计已加载记录数。
- 部分事实(如具体价格、收费细节)暂未提供。