数据表创建完成后,您可以使用脚本模式通过FML语句配置表的字段及分区信息。本文为您介绍如何使用FML语句配置数据表的相关内容。
前提条件
DataWorks目前不支持通过FML语言创建数据表,您需要提前使用可视化界面创建好维度表、明细表、汇总表。
创建维度表,详情请参见创建逻辑模型:维度表。
创建明细表,详情请参见创建逻辑模型:明细表。
创建汇总表,详情请参见创建逻辑模型:汇总表。
背景信息
FML(Fast Modeling Language)是用于在维度建模领域快速构建数据表的一门类SQL语言,其语法采用了类SQL的标准语法。DataWorks数据建模的设计与实现解耦,在设计过程中,您无需考虑各个大数据引擎的实现方式,建模引擎会根据FML语言定义的Schema去驱动底层各个数据引擎的执行和操作,仅在实际物化(即把设计的逻辑表转换为底层引擎的物理表)阶段,建模引擎会根据物化的选择,将FML语言转换为对应数据引擎可识别的SQL语法,并提交任务节点执行相关语句。
使用限制
DataWorks目前不支持通过FML语言创建数据表或修改表名称,您只能对已创建的数据表进行相关编辑操作。例如,编辑表字段、配置关联关系、配置表的分区等。
DataWorks目前仅支持通过FML语言将设计的数据表物化至MaxCompute、Hologres及Hive引擎。
FML语言将SQL中的关键字作为保留字,如果您的数据表或数据表的列使用了关键字命名,则需要使用
``
符号进行转义,否则创建表会产生报错。
进入目标表的FML编辑页面
在维度建模页面,双击目录树下对应的表名称。
在表详情页单击代码模式。
在代码模式页签的FML编辑区域,您可以查看当前表的建表FML语句。同时,您也可以配置或修改当前表的相关字段,详情请参见配置目标数据表。
配置目标数据表
为了方便查看,所有配置表的语句均体现在创建数据表语句(CREATE TABLE
)的格式中,实际上DataWorks的数据建模不支持使用FML语句创建表。您在实际使用时,仅参考定义表内容(例如,定义约束、分区等)的语句即可。配置目标表的FML语句格式如下。
--创建新表
CREATE <table_type> TABLE
IF NOT EXISTS
--表名
<table_name> [ALIAS <alias>]
--定义列属性
<col_name> [ALIAS <alias>] <datatype> [<category>] [COMMENT <comment>] [WITH (<key>=<value>,....)]
--定义约束
PRIMARY KEY (<col_name>),
--维度约束
CONSTRAINT <constraint_name> DIM KEY (<col_name>) REFERENCES <ref_table_name> (<ref_table_col_name>),
--层级约束
CONSTRAINT <constraint_name> LEVEL <col_name:(<col_name>)>, --分组约束
CONSTRAINT <constraint_name> COLUMN_GROUP(<col_name>,...),
--定义备注
COMMENT 'comment'
--定义分区
PARTITION BY (col DATATYPE COMMENT 'comment' WITH ('key'='value',...), ...)
--定义属性
WITH ('key'='value', 'key1'='value1', ...)
;
tableType
: dimDetailType? DIM
| factDetailType? FACT
| CODE
| DWS
;
dimDetailType
: NORMAL
| LEVEL
| ENUM
;
factDetailType
: TRANSACTION
| AGGREGATE
| PERIODIC_SNAPSHOT
| ACCUMULATING_SNAPSHOT
| CONSOLIDATED
;
comment
: COMMENT 'comment'
;
参数 | 描述 |
tableName | 数据表的名称。推荐命名由英文字母、数字及下划线(_)组成,长度为128个字符。 |
if not exists | 当您的目标引擎中已存在同名表,如果不指定 说明 当您的引擎中已经存在同步表时,指定了 |
alias | 数据表或数据表中列的别名,通常用于定义数据表的中文名称。该参数为可选参数。 |
tableType | 创建的表所属的类型。目前仅支持使用FML语句创建如下类型的表:
|
comment | 表的备注信息。推荐备注信息的长度为1024字符。 |
columnDefinition | 数据表列的定义。可以包含如下参数:
说明 FML语句支持先设计后物化数据表,因此新创建的表可以不设置列信息。 |
constraint | 定义表结构的约束情况,取值如下:
|
Partitioned BY | 用于创建表的分区。 |
WITH | 您在创建表时可以自定义的信息,采用 |