“快速创建表配置”针对项目粒度生效。

表名规则

在某个项目-集群的离线同步任务创建Hive表时,如需引用模型设计中心“原数据层-ods”对应集群的表名规则进行表名规则检测,需要满足两个条件:

  1. 当前项目的“启用表名规则”开关打开,
  2. 当前项目-集群所属的项目组-集群的模型设计中心“原数据层-ods”表名规则状态为启用。

表名规则检测范围包含:
1)离线同步任务中,数据去向为Hive的“快速创建表”功能;
2)批量创建任务,数据去向为Hive时创建的表。

快速创建表配置 - 图1

字段类型映射规则

字段类型映射规则支持的具体场景如下:

  1. 离线同步任务中,数据去向端为Hive时,使用“快速创建表”功能,将适配此规则;
  2. 离线同步任务批量创建任务中,数据去向端为Hive时默认创建表,将适配此规则;
  3. 离线同步任务的高级配置中,针对来源表结构变化策略的设置,选择新增字段的策略为“去向表自动新增该字段,建立映射并同步数据”时,将适配此规则。

字段类型映射规则包括两大类:特殊字段类型映射规则常规字段类型映射规则。特殊字段类型映射规则主要针对一些特殊场景下字段类型的转换,比如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