快速创建表配置
更新时间: 2024-12-04 15:34:29
[TOC] “快速创建表配置”针对项目粒度生效。
表名规则
在某个项目-集群的离线同步任务创建Hive表时,如需引用模型设计中心“原数据层-ods”对应集群的表名规则进行表名规则检测,需要满足两个条件:
- 当前项目的“启用表名规则”开关打开,
- 当前项目-集群所属的项目组-集群的模型设计中心“原数据层-ods”表名规则状态为启用。
表名规则检测范围包含:
1)离线同步任务中,数据去向为Hive的“快速创建表”功能;
2)批量创建任务,数据去向为Hive时创建的表。
字段类型映射规则
字段类型映射规则支持的具体场景如下:
- 离线同步任务中,数据去向端为Hive时,使用“快速创建表”功能,将适配此规则;
- 离线同步任务批量创建任务中,数据去向端为Hive时默认创建表,将适配此规则;
- 离线同步任务的高级配置中,针对来源表结构变化策略的设置,选择新增字段的策略为“去向表自动新增该字段,建立映射并同步数据”时,将适配此规则。
字段类型映射规则包括两大类:特殊字段类型映射规则和常规字段类型映射规则。特殊字段类型映射规则主要针对一些特殊场景下字段类型的转换,比如Oracle的NUMBER字段类型,在不同的精度范围下可能映射成Hive表字段会稍有不同。特殊字段类型映射规则和常规字段类型映射规则默认字段映射关系如下所示:
特殊字段类型默认映射规则列表:
数据来源表字段类型 | 数据去向Hive表字段类型 |
---|---|
BIGINT UNSIGNED | DECIMAL(38,0) |
INTEGER UNSIGNED | DECIMAL(38,0) |
SMALLINT UNSIGNED | DECIMAL(38,0) |
TINYINT UNSIGNED | DECIMAL(38,0) |
DECIMAL(p,s)(p>38) | STRING |
DECIMAL(p,s)(p,s为空) | STRING |
NUMERIC(p,s)(p>38) | STRING |
NUMERIC(p,s)(p,s为空) | STRING |
Money | DECIMAL(19,4) |
Oracle:NUMBER(p,s≤0),p-s<3 | TINYINT |
Oracle:NUMBER(p,s≤0),p-s<5 | SMALLINT |
Oracle:NUMBER(p,s≤0),p-s<10 | INT |
Oracle:NUMBER(p,s≤0),p-s<19 | BIGINT |
Oracle:NUMBER(p,s≤0),19≤p-s≤38 | DECIMAL(p-s,0) |
Oracle:NUMBER(p,s>0) | DECIMAL(p-s) |
Oracle:NUMBER(p,s>0),p-s>38 | STRING |
常规字段类型默认映射规则列表:
数据来源表字段类型 | 数据去向Hive表字段类型 |
---|---|
BIGINT | BIGINT |
BINARY | BINARY |
BIT | INT |
BLOB | BINARY |
CHAR | STRING |
CLOB | STRING |
DATE | STRING |
DECIMAL(p,s) | DECIMAL(p,s) |
DOUBLE | DOUBLE |
FLOAT | DOUBLE |
INTEGER | INT |
LONGNVARCHAR | STRING |
LONGVARBINARY | BINARY |
LONGVARCHAR | STRING |
NCHAR | STRING |
NUMERIC(p,s) | DECIMAL(p,s) |
NVARCHAR | STRING |
REAL | FLOAT |
SMALLINT | INT |
TIME | STRING |
TIMESTAMP | TIMESTAMP |
TINYINT | INT |
VARBINARY | BINARY |
VARCHAR | STRING |