元数据结构说明
描述
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可选元素) columns(列列表,见第四层描述) | 列 column(列名) |
| SQLServer | 暂未开放 | 暂未开放 | 暂未开放 | 暂未开放 |
| Redis | 缓存key命名空间 prefix(缓存key命名前缀) suffixFields(缓存key命名空间属性列表) | 无 | 无 | 无 |
| ElasticSearch | 索引 indexName(索引名称) idFieldNames(构建ES主键的属性列表) numberOfShards(分片数量,int类型) numberOfReplicas(副本数量,int类型) globalTimeZone(时区字符串) fields(列信息列表,见第二层描述) | 列 fieldName(列名) fieldTypeName(Es中列类型) needIndex(是否需要索引,boolean类型) timeFormat(时间格式) esAnalyzerType(分词器类型,见esAnalyzerType说明) needAutoCreated(是否自动创建,boolean类型) | ||
| AdbForMySQL | 数据库 db(数据库名) dbPattern(数据库名表达式,未使用) tables (表信息列表,见第二层描述) | 表 table(表名) tablePattern(表名表达式,未使用) dataFilter(json 结构,见下方dataFilter结构说明) actions(操作列表,目前包含INSERT,UPDATE,DELETE可选元素) columns(列列表,见第三层描述) | 列 column(列名) | 无 |
| TiDB | 数据库 db(数据库名) dbPattern(数据库名表达式,未使用) tables (表信息列表,见第二层描述) | 表 table(表名) tablePattern(表名表达式,未使用) dataFilter(json 结构,见下方dataFilter结构说明) actions(操作列表,目前包含INSERT,UPDATE,DELETE可选元素) columns(列列表,见第三层描述) | 列 column(列名) | 无 |
| ClickHouse | 数据库 db(数据库名) dbPattern(数据库名表达式,未使用) tables (表信息列表,见第二层描述) | 表 table(表名) tablePattern(表名表达式,未使用) dataFilter(json 结构,见下方dataFilter结构说明) actions(操作列表,目前包含INSERT,UPDATE,DELETE可选元素) columns(列列表,见第三层描述) | 列 column(列名) | 无 |
| Kudu | 表 table(表名) tablePattern(表名表达式,未使用) dataFilter(json 结构,见下方dataFilter结构说明) actions(操作列表,目前包含INSERT,UPDATE,DELETE可选元素) partitions(分区列表,见第二层描述) columns(列列表,见第二层描述) | 分区 columns(分区的列) partitionType(分区类型,可选值Range,Hash) 列 column(列名) | 无 | 无 |
| MongoDB | 数据库 db(数据库名) collections(集合列表,见第二层描述) | 集合 collection(集合名) actions(操作列表,目前包含INSERT,UPDATE,DELETE可选元素) | 无 | 无 |
| Kafka | Topic topic(topic名) topicPattern(topic表达式,未使用) partitions(分区数,整数类型) partitionKeys(分区字段列表) | 无 | 无 | 无 |
| RocketMQ | Topic topic(topic名) topicPattern(topic表达式,未使用) partitions(分区数,整数类型) partitionKeys(分区字段列表) | 无 | 无 | 无 |
| RabbitMQ | 队列 queue(队列名) queuePattern(队列表达式,未使用) | 无 | 无 | 无 |
| Hive | 数据库 db(数据库名) dbPattern(数据库名表达式,未使用) tables (表信息列表,见第二层描述) | 表 table(表名) tablePattern(表名表达式,未使用) partitionKeys(分区键列表,详见partitionKeys结构说明) columns(列列表,见第三层描述) | 列 column(列名) | 无 |
dataFilter结构说明
| 属性名称 | 属性说明 |
|---|---|
| type | 数据过滤器类型 SQL_WHERE JAVA_CODE(未实现) REGULAR_EXPRESSION(未实现) AVIATOR_EXPRESSION(未实现) |
| expression |