元数据结构说明
描述
CloudCanal 任务配置中,比较难理解的包含两部分内容,一是描述数据源库表列等元数据的结构,二是源和目标元数据映射关系。
本文档主要介绍如何理解描述数据源库表列等元数据的结构。
举个例子
如下结构一般出现在 DataJob 配置 srcSchema 或者 dstSchema 中,表示一个数据源库表列等信息。这个结构有几个特点
- 结构内容嵌套展现了数据源元信息的层次结构
- 不同数据源类型具有差异的层次结构
- 不同数据源类型存在一些差异的元素
- 每一层描述的信息包含通用的 targetAutoCreate 和 inBlackList 属性,前者表示对端对应的结构是否自动创建,后者表示是否在黑名单中
[
{
"db": "dingtax",
"dbPattern": "",
"tables": [
{
"table": "access_table_111112222222333333333333344444444444444",
"tablePattern": "",
"columns": [
{
"column": "id",
"targetAutoCreate": true,
"inBlackList": false
},
{
"column": "guid",
"targetAutoCreate": true,
"inBlackList": false
}
],
"actions": [
"INSERT",
"UPDATE",
"DELETE"
],
"inBlackList": false,
"targetAutoCreate": true,
"specifiedPks": []
},
{
"table": "kbs_no_pk_have_uniq",
"tablePattern": "",
"columns": [
{
"column": "name",
"targetAutoCreate": false,
"inBlackList": false
},
{
"column": "uniq_id",
"targetAutoCreate": false,
"inBlackList": false
}
],
"actions": [
"INSERT"
],
"inBlackList": false,
"targetAutoCreate": false,
"specifiedPks": [
"uniq_id"
]
}
],
"targetAutoCreate": false,
"inBlackList": false
}
]
常用数据源层次结构和特殊属性
| 数据源名称 | 第一层元素和属性 | 第二层元素和属性 | 第三层元素和属性 | 第四层元素和属性 |
|---|---|---|---|---|
| MySQL | 数据库 db(数据库名) dbPattern(数据库名表达式,未使用) tables (表信息列表,见第二层描述) | 表 table(表名) tablePattern(表名表达式,未使用) dataFilter(json 结构,见下方dataFilter结构说明) specifiedPks(指定主键列表) actions(操作列表,目前包含INSERT,UPDATE,DELETE可选元素) columns(列列表,见第三层描述) | 列 column(列名) | 无 |
| PolarDbMySQL | 数据库 db(数据库名) dbPattern(数据库名表达式,未使用) tables (表信息列表,见第二层描述) | 表 table(表名) tablePattern(表名表达式,未使用) dataFilter(json 结构,见下方dataFilter结构说明) specifiedPks(指 定主键列表) actions(操作列表,目前包含INSERT,UPDATE,DELETE可选元素) columns(列列表,见第三层描述) | 列 column(列名) | 无 |
| PostgreSQL | 数据库 db(数据库名) schemas(pg schema列表,见第二层描述) | schema schema(schema名) schemaPattern(schema表达式,未使用) tables (表信息列表,见第三层描述) | 表 table(表名) tablePattern(表名表达式,未使用) dataFilter(json 结构,见下方dataFilter结构说明) actions(操作列表,目前包含INSERT,UPDATE,DELETE可选元素) columns(列列表,见第四层描述) | 列 column(列名) |
| Greenplum | 数据库 db(数据库名) schemas(pg schema列表,见第二层描述) | schema schema(schema名) schemaPattern(schema表达式,未使用) tables (表信息列表,见第三层描述) | 表 table(表名) tablePattern(表名表达式,未使用) dataFilter(json 结构,见下方dataFilter结构说明) actions(操作列表,目前包含INSERT,UPDATE,DELETE可选元素) columns(列列表,见第四层描述) | 列 column(列名) |
| Oracle | 数据库 db(数据库名) tableSpaces(oracle schema列表,见第二层描述) | schema tableSpace(schema名) tableSpacePattern(schema表达式,未使用) tables (表信息列表,见第三层描述) | 表 table(表名) tablePattern(表名表达式,未使用) dataFilter(json 结构,见下方dataFilter结构说明) actions(操作列表,目前包含INSERT,UPDATE,DELETE |