データテーブルを作成した後、スクリプトモードを使用して、FML 文でテーブルの列とパーティション情報を設定できます。このトピックでは、FML 文を使用してデータテーブルを設定する方法について説明します。
概要
Fast Modeling Language (FML) は、ディメンションモデリング用のデータテーブルを迅速に構築するために使用される SQL ライクな言語です。その構文は標準 SQL に基づいています。DataWorks では、ディメンションモデリングによって設計と実装が分離されます。設計段階では、さまざまなビッグデータエンジンの具体的な実装詳細を考慮する必要はありません。モデリングエンジンは、FML で定義されたスキーマを使用して、基盤となるエンジンでの操作を駆動します。論理テーブルを物理テーブルに変換するプロセスであるマテリアライズの際にのみ、エンジンは FML をターゲットエンジンが認識できる SQL 構文に変換し、その文を実行するノードを送信します。
前提条件
現在、DataWorks は FML 文を使用したデータテーブルの作成をサポートしていません。まず、ビジュアルインターフェイスで論理テーブルを作成する必要があります。詳細については、次のトピックをご参照ください。
制限事項
FML を使用してデータテーブルを作成したり、テーブル名を変更したりすることはできません。列の変更、リレーションシップの設定、パーティションの設定など、既存のデータテーブルの編集のみが可能です。
FML で設計されたデータテーブルは、MaxCompute、Hologres、Hive エンジンにのみマテリアライズできます。
FML は SQL キーワードを予約語として使用します。テーブル名または列名がキーワードである場合は、エラーを避けるためにバックティック (
``) で囲む必要があります。
FML エディターへのアクセス
Dimensional Modeling ページで、ディレクトリツリー内のターゲットテーブルの名前をダブルクリックします。
[フィールド管理] ページで、Script Mode をクリックします。
Script Mode タブの FML エディターで、現在のテーブルの作成に使用された FML 文を表示できます。また、テーブルの列を設定または変更することもできます。詳細については、「ターゲットデータテーブルの設定」をご参照ください。

ターゲットデータテーブルの設定
デモンストレーションのため、このトピックでは完全な CREATE TABLE 構文を使用した設定例を示します。ただし、DataWorks では 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 | テーブルのコメント。推奨される最大長は 1,024 文字です。 |
columnDefinition | 次のパラメーターを使用してデータテーブルの列を定義します。
説明 FML は設計とマテリアライズを分離するため、列を指定せずにテーブルを定義できます。 |
constraint | テーブル構造の制約を定義します。次のタイプがサポートされています。
|
Partitioned BY | テーブルのパーティションを定義します。 |
WITH | テーブルを作成する際、 |