日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

代碼模式建模

數據表創建完成后,您可以使用腳本模式通過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編輯頁面

  1. 維度建模頁面,雙擊目錄樹下對應的表名稱。

  2. 表詳情頁單擊代碼模式

    代碼模式頁簽的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

當您的目標引擎中已存在同名表,如果不指定if not exists時,則創建表會報錯,而指定了if not exists后,無論引擎中是否存在同名表,則創建表均會成功。

說明

當您的引擎中已經存在同步表時,指定了if not exists后,創建的新表會替換原有的同名表。

alias

數據表或數據表中列的別名,通常用于定義數據表的中文名稱。該參數為可選參數。

tableType

創建的表所屬的類型。目前僅支持使用FML語句創建如下類型的表:

  • 維度表

    • 普通維度表(NORMAL):創建維度表時指定的默認類型。

    • 層級維度表(LEVEL):用于存放例如省、市、區等具有層級關系的數據。

    • 枚舉維度表(ENUM):用于存放常用的可枚舉的值。例如男、女性別等。

  • 事實表

    • 事實事務表(TRANSACTION):創建事實表時指定的默認類型。記錄事務層面的事實,保存最為原子的數據。

    • 周期快照表(PERIODIC_SNAPSHOT):保存具有規律性、可預見時間的事實記錄,它統計的是間隔周期內的度量統計,例如,歷史至今、自然年至今等。其采用增量更新等方式更新表數據。

    • 累加表(ACCUMULATING_SNAPSHOT):存儲事務數據的快照信息,用于積累不確定周期的數據,例如,訂單記錄快照事實表可包含付款日期,發貨日期和收貨日期時間點。

  • DWS表:用于合并特定指標的邏輯匯總表,表的定義語法與維度表和事實表類似。

  • 碼表:又稱為標準代碼,是一種包含行業特定屬性的代碼表。例如,水電行業,可能會涉及創建是否有合同,供電合同類型等標準代碼。

comment

表的備注信息。推薦備注信息的長度為1024字符。

columnDefinition

數據表列的定義。可以包含如下參數:

  • col_name:數據表的列名。由英文字母、數字、下劃線(_)等字符組成。如果列名使用了FML中的關鍵字,則需要使用``符號進行轉義。

  • alias:數據表中列的別名,通常用于定義數據表中列的中文名稱。該參數為可選參數。

  • dataType:目前FML的數據類型包含了BIGINT、STRING、VARCHAR、CHAR、DECIMAL、DATETIME等。

  • category:用于對數據表的列進行分類。在維度建模中,列可以分為業務屬性(ATTRIBUTE)、度量(MEASUREMENT)、關聯字段(CORRELATION)類型。

說明

FML語句支持先設計后物化數據表,因此新創建的表可以不設置列信息。

constraint

定義表結構的約束情況,取值如下:

  • 主鍵約束(PrimaryConstraint):格式為PRIMARY KEY(col1, col2),其中col1, col2字段列表必須是已經定義過的列表。

  • 維度約束(DimConstraint):格式為DIM KEY(col1, col2) REFERENCES table_name(ref1, ref2)

  • 層級約束(LevelConstraint):僅在層級維度中生效。用于定義層級維度中的各個層級。

Partitioned BY

用于創建表的分區。

WITH

您在創建表時可以自定義的信息,采用key=value的方式,keyvalue的值需要使用單引號引起來,防止自定義的信息與FML的關鍵字沖突。WITH中的擴展屬性,可以由物化FML語句的引擎來進行解析處理。