階層型ディメンション論理テーブルは、日、週、月、四半期、年などの時間ベースのデータのように、固有の構造関係を持つデータを整理します。このトピックでは、階層型ディメンション論理テーブルの作成と構成のプロセスについて説明します。
階層型ディメンションテーブルの概要
階層型ディメンションテーブルは構造化オブジェクトに対応し、以下の属性を持ちます。
限られたデータ量。
データ(行)は、ビジネスコンテキスト内で階層関係を維持します。たとえば、行政区画、組織構造、製品カテゴリなどです。国、省、市は別々のレコードですが、国->省->市のような階層を形成します。同様に、組織構造では、階層は事業グループ->事業部門->部門->サブ部門のようになり、製品カテゴリでは、食品->スナック->ドライフルーツなどになります。
ケーススタディ
データパターン
業務システムにおける階層データは、通常、このパターンに従います。
フィールド名 | フィールドの説明 |
id | 現在のレベル ID。 |
name | 現在のレベルの名前。 |
parent_id | 親レベル ID。 |
level | レベル。 |
データ例
業務システムの region
データテーブルについて考えてみます。
id | name | parent_id | level |
1 | China | Null | 0 |
21 | East China Region | 1 | 1 |
212 | Zhejiang Province | 21 | 2 |
2121 | Hangzhou | 212 | 3 |
21213 | Yuhang District | 2121 | 4 |
Dataphin region
ビジネスオブジェクトによって作成された階層型ディメンションテーブル。
論理テーブル名 | ビジネスオブジェクト | ソーステーブル | 子フィールド | 親フィールド | 名前フィールド | レベル数 |
dim_region | region | ${xxx}.region | id | parent_id | name | 5 |
前提条件
階層型ビジネスオブジェクトが正常に確立されていること。詳細については、「ビジネスエンティティの作成と管理」をご参照ください。
手順
Dataphin ホームページに移動し、トップメニューバーから、[開発] > [データ開発] を選択します。
トップメニューバーから [プロジェクト] を選択し、開発-本番モードの場合は [環境] も選択します。
左側のナビゲーションウィンドウで、[標準モデリング] > [論理ディメンションテーブル] をクリックします。
右側の論理ディメンションテーブルリストで、
をクリックして新しいテーブルを作成します。
[新しい論理ディメンションテーブル] ダイアログボックスで、必須パラメーターを入力します。
パラメーター
説明
[ビジネスオブジェクト]
region
ビジネスオブジェクトなどの [階層オブジェクト] を選択します。[テーブルタイプ]
ビジネスオブジェクトが [階層オブジェクト] の場合、テーブルタイプは自動的に [階層型ディメンション論理テーブル] に設定され、変更できません。
[データセクション]
プロジェクトに関連付けられたデータセクションがデフォルトで設定され、編集できません。
[主題領域]
ビジネスオブジェクトの主題領域がデフォルトで設定され、変更できません。
コンピュートエンジン
Hadoop コンピュートエンジンが有効になっているテナントの場合は、Dataphin インスタンスのコンピュートエンジン(Hive、Impala、Spark など)を構成します。
重要コンピュートエンジンは、選択する前に有効にする必要があります。詳細については、「Hadoop コンピュートソースの作成」をご参照ください。
コンピュートエンジンが [TDH 6.x] または [TDH 9.3.x] の場合、このオプションはサポートされていません。
コンピュートエンジンには、次の制限があります。
Hive:Kudu 形式で保存されているソーステーブルを読み取ることができません。
Impala:Kudu 形式のソーステーブルを読み取ることができますが、Kudu を使用して論理テーブルを保存することはできません。Kudu 形式のソーステーブルがない場合は、使用しないことをお勧めします。
Spark:Kudu 形式で保存されているソーステーブルを読み取ることができません。
[データ適時性]
本番環境における階層型ディメンション論理テーブルタスクのスケジューリングタイプを定義します。デフォルト設定は [T+1](日次タスク)です。
[論理テーブル名]
Dataphin は論理テーブル名を自動的に生成します。デフォルトの命名規則は
<データセクション名>.dim_<ビジネスオブジェクト名>
です。[中国語名]
ディメンション論理テーブルの中国語名(例:地域ディメンションテーブル)を入力します。
命名規則は次のとおりです。
128 文字以内。
任意の文字セットをサポートします。
[説明]
階層型ディメンション論理テーブルの簡潔な説明を 1000 文字以内で入力します。
[OK] をクリックします。
[計算ロジック] ページで、ソースデータとディメンション論理テーブルのプライマリキー間のマッピングを設定します。
パラメーター
説明
[列名]
デフォルトでは、ビジネスプロセス名が使用されます。これを
region
などの別のフィールド名に変更できます。命名規則は次のとおりです。
128 文字を超えてはいけません。
任意の文字を含めることができます。
[データ型]
階層論理テーブルのプライマリキーのデータ型(例:
bigint
)を選択します。[説明]
階層論理テーブルのプライマリキーフィールドの説明(例:
region_primary_key
ID)を入力します。[ソーステーブル]
階層型ディメンションデータのソース(例:
region
データテーブル)を選択します。[レベル数]
階層ディメンションのレベル数(例:
5
レベル)を設定します。[リーフディメンションテーブルの生成]
リーフディメンションテーブル(階層の最も詳細なレベル)を作成するかどうかを決定します。たとえば、製品カテゴリのリーフディメンションテーブルには、製品 ID、名前、価格、在庫、販売数量などの詳細が含まれる場合があります。
[子フィールド]、[親フィールド]
ソーステーブルで、子レベルと親レベルを表すフィールド(例:
region
テーブルのid
(子フィールド)とparent_id
(親フィールド))を指定します。[列名]
ソーステーブルで、階層ディメンションテーブルフィールドの名前に対応するフィールド(例:
region
テーブルのname
フィールド)を選択します。[ルートノードの定義]
階層のトップノードを定義します。メインソーステーブルに基づいてルートレベル検出の SQL 条件を設定します(例:
region
テーブルのルートノード China のlevel = 0
またはparent_id is null
)。[データフィルター条件]
オプション。ダーティデータまたは論理的に削除されたレコードを除外するために、ソーステーブルのフィルター条件を設定します。
説明データ更新期間と取得期間の条件は、時間パーティションなどのメインソーステーブルのフィールドに基づいている必要があります。
[保存して次へ] をクリックします。
[スケジュールとパラメーターの構成] ページで、ディメンション論理テーブルの [スケジュールとパラメーターの設定][スケジューリングプロパティ]、[スケジューリングの依存関係]、[スケジューリングパラメーター]、および を構成します。構成の説明は次のとおりです。
スケジューリングプロパティ:本番環境におけるディメンション論理テーブルのスケジューリング方法を設定するために使用されます。スケジューリングプロパティを使用して、ディメンション論理テーブルのスケジューリングタイプ、期間、ロジック、および実行を指定できます。構成手順については、「論理テーブルのスケジューリングプロパティの構成 」をご参照ください。
スケジューリングの依存関係:この機能は、論理テーブルのスケジューリングタスク内のノードを定義するために設計されています。Dataphin は、それぞれに設定されたスケジューリングの依存関係に従ってこれらのノードを体系的に実行し、ビジネスデータが効率的かつ迅速に生成されるようにします。構成手順については、「論理テーブルのアップストリームの依存関係の構成」をご参照ください。
ランタイムパラメーター:パラメーター構成では、コード内の変数に値を割り当て、ノードのスケジューリング中にこれらの変数をそれぞれの値で自動的に置換できるようにします。スケジューリングのパラメーター構成ページでは、[無視] または [グローバル変数に変換] を選択できます。詳細な構成ガイドラインについては、「論理テーブルのパラメーター構成」をご参照ください。
ランタイム構成:タスクレベルのランタイムタイムアウトと再実行ポリシーは、ビジネスニーズに合わせてディメンション論理テーブル用に調整できます。このアプローチは、長時間実行される計算タスクによるリソースの不要な消費を回避し、タスク実行の信頼性を向上させるのに役立ちます。これらの設定の構成手順については、「計算タスクのランタイム構成 」をご参照ください。
リソース構成:現在の論理テーブルタスクのスケジュールリソースグループを設定できます。これは、指定されたグループのリソースクォータを使用します。構成手順については、「論理テーブルのリソース構成」をご参照ください。
階層型ディメンション論理テーブルの構成が完了したら、[保存して送信] をクリックします。
送信されると、Dataphin は系列分析を実行し、タスクのチェックを実行します。詳細については、「標準モデリングタスクの送信手順 」をご参照ください。
次の手順
開発-本番プロジェクトモードでは、論理テーブルを本番環境に公開する必要があります。詳細な手順については、「公開タスクの管理」をご参照ください。
論理テーブルが本番環境にデプロイされると、オペレーションセンター内で論理テーブルタスクを管理および監視できます。詳細な手順については、「オペレーションセンター」をご参照ください。