CreateFormationCrawler - 创建元数据发现任务
在ADB实例中创建Formation Crawler元数据发现任务。
接口说明
请求说明
此接口用于在 AnalyticDB for MySQL 实例中创建一个 Formation Crawler 元数据发现任务。
创建的任务配置不会立即执行,需调用
StartFormationCrawler启动任务。CrawlerInfo字段为 JSON 字符串,包含任务的核心配置信息,如目标数据库名、数据源类型等。注意部分参数(如
classifiers、frequency)需要双重 JSON 编码。数据库名
dbName会被服务端自动转为小写。schemaChangePolicy是必填项,必须同时提供updateRule和deleteRule。推荐使用
RUN_ON_DEMAND调度模式以避免不必要的重复扫描。确保产品名为
adb,域名格式为adb.{regionId}.aliyuncs.com。创建后需手动调用
StartFormationCrawler触发首次元数据发现。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
调试
授权信息
请求参数
|
名称 |
类型 |
必填 |
描述 |
示例值 |
| RegionId |
string |
是 |
实例所在地域标识 |
cn-beijing |
| CrawlerInfo |
string |
是 |
Crawler 完整配置信息的 JSON 字符串。此字段为最核心参数,其内部 JSON 结构详见 CrawlerInfo 结构定义 章节 |
{ "sourceType": "OSSWAREHOUSE", "dbName": "your_target_db", "sourceInfo": { "ossSourceInfo": { "sourceMode": "WAREHOUSE", "ossLocations": ["oss://your-bucket/your-path/"], "exclusions": [], "inclusions": [] } }, "classifiers": ["csv"], "schemaChangePolicy": { "updateRule": "ONLY_ADD_COLUMN", "deleteRule": "IGNORE" }, "frequency": { "type": "monthly", "cron": "0+00+00+1+*+?+*" }, "configuration": "adb.crawler.csv.columns.specify.delimiter.char=auto\nadb.crawler.csv.columns.specify.quote.char=auto\n" } |
| DBClusterId |
string |
是 |
ADB 实例 ID,资源级别的操作范围 |
am-bp***** |
CrawlerInfo 各字段详解:
sourceType(String,必填)
源类型标识,固定填写 OSSWAREHOUSE。
dbName(String,必填) 目标数据库名称,爬取到的表元数据将写入该数据库。
sourceInfo(Object,必填)
源信息容器对象。对于 OSSWAREHOUSE 类型,其内部必须包含 ossSourceInfo 子对象,否则校验不通过。
-
sourceInfo.ossSourceInfo(Object,必填) OSS 源的具体配置。包含以下字段:
sourceMode(String,必填):源模式,OSSWAREHOUSE 固定填
WAREHOUSE。ossLocations(List,必填):OSS 路径列表,每个路径需以
oss://开头、以/结尾,例如oss://my-bucket/my-db/。exclusions(List,可选):需要排除的路径前缀列表,命中的路径不会被爬取。为空时填
[]。inclusions(List,可选):需要包含的路径前缀列表,用于限定爬取范围。为空时填
[]。
classifiers(List,必填)
数据格式分类器,声明该 OSS 位置下的文件格式。可选值为 JSON、PARQUET、CSV、ORC、AVRO、ICEBERG(大小写不敏感)。若包含 iceberg,任务会被识别为 Iceberg 子类型。为空时填 [],自动识别格式。
schemaChangePolicy(Object,必填) Schema 变更策略对象,控制爬取时如何处理表结构变化。
- updateRule(String,必填):Schema 更新规则。三种取值:
UPDATE_SCHEMA_DEFINE:完整更新 schema,支持新增列、修改列名/类型,必要时删除重建表。ONLY_ADD_COLUMN:默认值,仅追加新列,不修改或删除已有列。IGNORE:完全忽略 schema 变更,不生成任何 DDL(OSSDataWarehouse 类型下仍会处理分区变更)。
deleteRule(String,可选):Schema 删除规则,通常填
IGNORE。
frequency(Object,必填) 调度频率配置。若非按需执行,会校验 cron 表达式合法性及频率限制。包含:
type(String):调度类型,如
monthly、daily、run_on_demand(按需执行,cron 填"")cron(String):cron 表达式。
configuration(Map,可选) 爬取行为的扩展配置参数
adb.crawler.csv.columns.specify.delimiter.char用于指定 CSV 文件的字段分隔符。默认值为 auto(自动探测分隔符)。可选取值为逗号 ,、制表符\t、竖线|、分号;、空格,或 auto。当值为 auto 或未设置时走自动探测;否则取所配置字符串的第一个字符作为分隔符。adb.crawler.csv.columns.specify.quote.char用于指定字段值的引用符(包裹含特殊字符的值)。默认值为 auto(自动探测引用符)。可选取值为双引号 "、单引号 ',或 auto。行为与分隔符一致:auto 或未设置时自动探测,否则取首字符。adb.crawler.csv.columns.specify.header.mode用于指定表头识别方式。默认值为 HASHEAD。可选三种取值:DETECTHEAD(探测模式,自动判断首行是否为表头)、HASHEAD(首行即为列名)、NOHEAD(无表头,列名由系统自动生成)。adb.crawler.csv.columns.specify.header.columns用于用户手动指定表头列名,多个列名以逗号分隔(如 id,name,age)。默认值为空字符串(不指定,由系统按 header.mode 处理)。adb.crawler.csv.columns.allow.single.column用于指定是否允许识别只有单个字段的 CSV 文件。默认值为 false(不允许单列)。可选取值为 true / false。
返回参数
|
名称 |
类型 |
描述 |
示例值 |
|
object |
|||
| HttpStatusCode |
integer |
HTTP 状态码,正常为 200 |
200 |
| Data |
boolean |
请求是否处理成功 |
True |
| RequestId |
string |
请求追踪 ID |
019F3BE7-E8FA-3DC5-8EE7-501A90B5A54D |
| Success |
boolean |
调用是否成功,取值说明:
|
True |
| Code |
string |
状态码。 |
200 |
| Message |
string |
提示信息,成功时为 OK |
OK |
| TaskId |
string |
操作结果,true 表示创建成功 |
241 |
示例
正常返回示例
JSON格式
{
"HttpStatusCode": 200,
"Data": true,
"RequestId": "019F3BE7-E8FA-3DC5-8EE7-501A90B5A54D",
"Success": true,
"Code": "200",
"Message": "OK",
"TaskId": "241"
}
错误码
|
HTTP status code |
错误码 |
错误信息 |
描述 |
|---|---|---|---|
| 409 | AlreadyExists | The formation task already exists. |
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。