SuperAPI AI 工具集

writing-sql

数据与分析

查看项目

更新于 10-15 17:32

技能介绍

用途:为 Celigo 的 RDBMS 集成编写导入与导出所用的 SQL 查询。查询以 Handlebars 模板形式编写,平台在运行时解析 {{{record.fieldName}}} 等表达式,再把生成的 SQL 交给连接的数据库执行。

主要能力:覆盖导出查询(全量 SELECT、以 {{lastExportDateTime}} 实现的 delta 增量、once 模式的“取出+标记已处理”双查询)、导入查询(per_record 的 INSERT/UPDATE/UPSERT/MERGE、per_page 批处理、bulk_insert 自动生成插入、bulk_load 自动生成 MERGE 或通过 overrideMergeQuery 自定义合并、多语句数组),以及各数据库方言要点(如 Snowflake 全限定名与 FLATTEN、PostgreSQL ON CONFLICT、MySQL ON DUPLICATE KEY UPDATE、SQL Server 与 Oracle 的 MERGE、BigQuery UNNEST 等)。

使用方式:先用 celigo metadata types <connectionId> 与 celigo metadata fields <connectionId> <tableName> 查看表与列;据此选择查询模式并编写 SQL;再用 celigo exports invoke <exportId> 测试导出、用 echo '[{"name":"test","email":"test@example.com"}]' | celigo imports invoke <importId> 提交测试记录验证导入。

关键规则与限制:始终使用 record. 前缀,不用裸字段名或 data.fieldName;SQL 中值优先用三花括号 {{{ }}},双花括号在 RDBMS 上下文中会自动加单引号,可能破坏数值与语法;字符串需自行加引号,数字不加引号;导入 query 必须是字符串数组;嵌套字段用点号表示;bulkInsert/bulkLoad 与 query 字段互斥(overrideMergeQuery 除外)。不同数据库的 MERGE 等语法存在差异,需与连接类型匹配。其余未在资料中说明的细节暂未提供。