階層ディメンション論理テーブルは、階層関係を持つディメンションテーブルです。たとえば、時間ベースの階層ディメンション論理テーブルには、日、週、月、四半期、年などの日付データが含まれます。
階層ディメンションテーブルの概要
階層ディメンションテーブルは、以下の特徴を持つ階層オブジェクトに対応します。
-
データ量が少ない。
-
データ (行) は、ビジネスコンテキストにおいて階層関係を持っています。例として、行政区画、企業の組織構造、製品カテゴリなどがあります。国、省、市はそれぞれ独立したレコードですが、国 -> 省 -> 市という階層関係があります。他の例としては、ビジネスグループ -> 業務部門 -> 主要部門 -> 二次部門などの企業の組織構造や、食品 -> スナック -> ドライフルーツなどの製品カテゴリがあります。
例
データパターン
ビジネスシステムにおける階層データは、通常このパターンに従います。
|
フィールド名 |
フィールドの説明 |
|
id |
現在のレベルの ID。 |
|
name |
現在のレベルの名前。 |
|
parent_id |
親レベルの ID。 |
|
level |
レベル。 |
データ例
ビジネスシステム内の region データテーブル。
|
id |
name |
parent_id |
level |
|
1 |
China |
Null |
0 |
|
21 |
East China |
1 |
1 |
|
212 |
Zhejiang Province |
21 |
2 |
|
2121 |
Hangzhou City |
212 |
3 |
|
21213 |
Yuhang District |
2121 |
4 |
Dataphin の region ビジネスオブジェクトから作成された階層ディメンションテーブル。
|
論理テーブル名 |
ビジネスオブジェクト |
ソーステーブル |
子フィールド |
親フィールド |
名前フィールド |
レベル数 |
|
dim_region |
region |
${xxx}.region |
id |
parent_id |
name |
5 |
前提条件
階層ビジネスオブジェクトを作成しておく必要があります。詳細については、「ビジネスエンティティの作成と管理」をご参照ください。
操作手順
-
Dataphin のホームページで、上部メニューから [Development] > [Data Development] を選択します。
-
上部メニューから [Project] を選択します。Dev-Prod モードの場合は、[Environment] も選択する必要があります。
-
ナビゲーションウィンドウで、[Standard Modeling] > [Logical Dimension Table] を選択します。
-
論理ディメンションテーブルのリストで、
新規アイコンをクリックします。 -
[Create Logical Dimension Table] ダイアログボックスで、パラメーターを設定します。
パラメーター
説明
[Business Object]
[Hierarchical Object] を選択します。例:
regionビジネスオブジェクト。[Table Type]
「Business Object」で [Hierarchical Object] を選択した場合、テーブルタイプは自動的に [Hierarchy Dimension Logical Table] に設定され、変更できません。
[Data Section]
デフォルト値は、プロジェクトに関連付けられた業務部門です。このパラメーターは変更できません。
[Data Domain]
デフォルト値は、ビジネスオブジェクトのデータドメインです。このパラメーターは変更できません。
Compute engine
Dataphin インスタンスが Hadoop コンピューティングエンジンを使用している場合、テナントのコンピューティングエンジンを選択できます。オプションには、Hive、Impala、Spark があります。
重要-
コンピューティングエンジンを選択する前に、有効化しておく必要があります。詳細については、「Hadoop コンピューティングソースの作成」をご参照ください。
-
コンピューティングエンジンが [TDH 6.x] または [TDH 9.3.x] の場合、このパラメーターは設定できません。
コンピューティングエンジンには、以下の制限があります。
-
Hive: Kudu 形式のソーステーブルを読み取れません。
-
Impala: Kudu 形式のソーステーブルを読み取れますが、Kudu 形式での論理テーブルの保存はサポートしていません。Kudu 形式のソーステーブルがない場合は、Impala を使用しないでください。
-
Spark: Kudu 形式のソーステーブルを読み取れません。
[Data Timeliness]
本番環境での階層ディメンション論理テーブルタスクのスケジューリングタイプ。デフォルトは [T+1] (日次タスク) です。
[Logical Table Name]
Dataphin は自動的に論理テーブル名を入力します。デフォルトの命名規則は
{Business Unit Name}.dim_{Business Object Name}です。[表示名]
ディメンション論理テーブルの表示名を入力します。例: リージョンディメンション論理テーブル。
命名規則は以下の通りです。
-
名前の長さは 128 文字を超えることはできません。
-
すべての文字がサポートされています。
[Description]
階層ディメンション論理テーブルの簡単な説明を入力します。説明は最大 1,000 文字です。
-
-
[OK] をクリックします。
-
[Computation Logic] ページで、ソースデータとディメンション論理テーブルのプライマリキーとの間のマッピングを設定します。
パラメーター
説明
[主キー列名]
デフォルト値はビジネスオブジェクトの名前です。フィールド名を変更することもできます。例:
region。命名規則は以下の通りです。
-
名前の長さは 128 文字を超えることはできません。
-
すべての文字がサポートされています。
[Data Type]
階層論理テーブルのプライマリキーのデータ型を選択します。例:
bigint。[Description]
階層論理テーブルのプライマリキーフィールドの説明を入力します。例:
Region_Primary_KeyID。[Source Table]
階層ディメンションのデータソースを選択します。例:
regionデータテーブル。[Number Of Levels]
階層ディメンションのレベル数を設定します。例:
5。[Generate Leaf Dimension Table]
階層の最も詳細なレベルを表すリーフディメンションテーブルを生成するかどうかを指定します。たとえば、製品カテゴリのリーフディメンションテーブルには、製品 ID、名前、価格、在庫、販売数量などの特定の製品詳細が含まれます。
[Child Field]、[Parent Field]
ソーステーブル内で子レベルと親レベルを表すデータフィールドを選択します。例:
regionデータテーブルのid(子フィールド) とparent_id(親フィールド)。[名前列]
ソーステーブル内で階層ディメンションテーブルフィールドの名前を表すデータフィールドを選択します。例:
regionデータテーブルのnameフィールド。[Root Node Definition]
階層のルートノードに対応するレコードを定義します。メインソーステーブルのフィールドに基づいて SQL 条件を定義し、ルートレベルを識別できます。たとえば、
regionデータテーブルでは、China がルートノードです。条件はlevel = 0またはparent_id is nullになります。[Filter Condition]
任意。ソーステーブルのフィールドにフィルター条件を定義して、ダーティデータや論理的に削除されたデータを除外します。
説明時間パーティションとなるデータ更新と取得期間の条件は、メインソーステーブルのフィールドにのみ基づいて定義できます。
-
-
[Save And Next] をクリックします。
-
[Scheduling & Parameter Configuration] ページで、[Scheduling Properties]、[Scheduling Dependencies]、[Scheduling Parameters]、[Runtime Configuration] を設定して、ディメンション論理テーブルを構成します。
-
スケジューリングプロパティ: スケジューリングタイプ、期間、ロジック、実行など、本番環境でディメンション論理テーブルをどのようにスケジューリングするかを定義します。詳細については、「論理テーブルのスケジューリングプロパティの設定」をご参照ください。
-
スケジューリング依存関係: 論理テーブルのスケジューリングノードを定義します。Dataphin は、設定された依存関係に基づいてビジネスフロー内のノードを実行し、ビジネスデータが時間通りに生成されるようにします。詳細については、「論理テーブルの上流依存関係の設定」をご参照ください。
-
ランタイムパラメーター: コード内の変数に値を割り当て、ノードのスケジューリング中にパラメーター変数が対応する値に自動的に置き換えられるようにします。スケジューリングパラメーター設定ページでは、パラメーター設定を無視 ([Ignore]) するか、グローバル変数に変換 ([Convert It To A Global Variable]) することができます。詳細については、「論理テーブルのパラメーターの設定」をご参照ください。
-
ランタイム設定: タスクレベルのランタイムタイムアウトと失敗したタスクの再実行ポリシーを設定し、長時間実行されるタスクによるリソースの浪費を防ぎ、実行の信頼性を向上させます。詳細については、「コンピューティングタスクのランタイムプロパティの設定」をご参照ください。
-
リソース設定: 論理テーブルタスクのスケジューリングリソースグループを指定します。タスクはスケジューリングされると、このグループのリソースクォータを消費します。詳細については、「論理テーブルのリソース設定」をご参照ください。
-
-
階層ディメンション論理テーブルを設定した後、[Save And Submit] をクリックします。
タスクを送信すると、Dataphin はデータリネージを解析し、送信チェックを実行します。詳細については、「標準モデリングタスクの送信に関する説明」をご参照ください。
次のステップ
プロジェクトが Dev-Prod モードの場合、論理テーブルを本番環境に公開する必要があります。詳細については、「公開タスクの管理」をご参照ください。
論理テーブルが本番環境に公開された後、オペレーションセンターで論理テーブルタスクを表示および管理できます。詳細については、「オペレーションセンター」をご参照ください。