一般的な論理ディメンションテーブルは、エンティティオブジェクトを記述し、そのエンティティのさまざまな属性を含みます。たとえば、メンバーの一般的な論理ディメンションテーブルには、メンバー名、メンバー ID、メンバーメールなどのデータが含まれます。このトピックでは、一般的な論理ディメンションテーブルを作成および構成する方法について説明します。
制限事項
[データ標準] モジュールを購入していない場合、テーブルで[データ標準] フィールドを設定できません。
[アセットセキュリティ] モジュールを購入していない場合、テーブルの [データ等級] および [データ分類] フィールドを設定できません。
Asset Quality モジュールを購入していない場合、プライマリキー フィールドの一意および非NULL 検証を実装することはできません。
前提条件
ビジネスエンティティを作成済みであること。詳細については、「ビジネスエンティティの作成と管理」をご参照ください。
手順
ステップ 1:一般的な論理ディメンションテーブルを作成する
Dataphin ホームページの上部にあるメニューバーで、[開発] > [データ開発] を選択します。
上部にあるメニューバーで プロジェクト環境 を選択します(開発-本番モードでは も選択する必要があります)。
左側のナビゲーションウィンドウで、[標準モデリング] > [論理ディメンションテーブル] を選択します。
右側の論理ディメンションテーブルのリストで、
新規アイコンをクリックします。[新しい論理ディメンションテーブル] ダイアログボックスで、パラメーターを構成します。
パラメータ
説明
[ビジネスオブジェクト]
[汎用オブジェクト] を選択します。
[テーブルタイプ]
ビジネスオブジェクトが [汎用オブジェクト] の場合、テーブルタイプは [汎用論理ディメンションテーブル] であり、変更できません。
[データセクション]
デフォルトではプロジェクトに関連付けられたデータセクションになり、変更できません。
[データドメイン]
デフォルトではビジネスオブジェクトが配置されている主題領域になり、変更できません。
コンピュートエンジン
Dataphin インスタンスを設定して、Hadoop コンピュートエンジンのテナント(Hive、Impala、Spark など)のコンピュートエンジンの選択をサポートします。
重要対応するコンピュートエンジンは、選択する前に有効にする必要があります。詳細については、「Hadoop コンピュートソースを作成する」をご参照ください。
コンピュートエンジンが TDH 6.x または TDH 9.3.x の場合、このオプションはサポートされていません。
コンピュートエンジンには次の制限があります。詳細は次のとおりです。
Hive:Kudu 形式で格納されているソーステーブルを読み取ることはできません。
Impala:Kudu 形式で格納されているソーステーブルを読み取ることができますが、現在、論理テーブルを Kudu に格納することはサポートされていません。Kudu 形式のソーステーブルがない場合は、使用しないことをお勧めします。
Spark:Spark は Kudu 形式で格納されているソーステーブルを読み取ることはできません。
[データ適時性]
データ適時性は、後続の論理ディメンションテーブルのデータ適時性を定義するために使用されます。汎用論理ディメンションテーブルのデータ適時性は、[T+1](日次テーブル)、[t+h](時間テーブル)、[t+m](分テーブル)の選択をサポートしています。
説明ArgoDB、StarRocks、SelectDB、および Doris コンピュートエンジンは、オフラインの [T+1](日次テーブル)のみをサポートしています。
[論理テーブル名]
論理テーブル名を入力します。テーブル名の全長は 100 文字以内である必要があります。ビジネスオブジェクトを選択すると、システムは自動的に論理テーブル名を入力します。入力規則は
<データセクション名>.dim_<ビジネスオブジェクトコード>_<データ適時性>です。重要文字、数字、アンダースコア(_)のみが許可されており、最初の文字は文字である必要があります。大文字と小文字は区別されません。大文字を入力すると、システムは自動的に小文字に変換します。
label_はシステムで予約されているプレフィックスであるため、label_で始めることはできません。AnalyticDB for PostgreSQL のテーブル名の全長は 50 文字以内である必要があります。
上記の選択されたデータ適時性に応じて、
<データ適時性>には異なる情報が表示されます。詳細は次のとおりです。df:T+1 適時性、日次完全データ。毎日、現在の日までの完全データを格納します。
hf:T+h 適時性、時間完全データ。毎時間、現在の時間までの完全データを格納します。
mf:T+m 適時性、分完全データ。15 分ごとに、過去 15 分までの完全データを格納します。
[中国語名]
命名規則は次のとおりです。
名前の長さは最大 128 文字です。
任意の文字がサポートされています。
[説明]
論理ディメンションテーブルの簡単な説明を 1000 文字以内入力します。
[OK] をクリックして、一般的な論理ディメンションテーブルを作成します。
ステップ 2:一般的な論理ディメンションテーブルのフィールド情報を構成する
[テーブルスキーマ] 構成ページで、現在の一般的な論理ディメンションテーブルのフィールド、データ型、フィールドカテゴリ、その他のスキーマ情報を構成します。
説明論理テーブル名の横にある
アイコンをクリックすると、基本情報が表示されます。ブロック
説明
①フィールドの配置
クリックして、フィールドリストの [基本構成] または [アセット管理] 構成を見つけます。
②検索とフィルタリング
テーブルのフィールド名でフィールドを検索できます。
をクリックすると、[データ型]、[フィールドカテゴリ]、[関連ディメンションの有無]、[関連ディメンション、フィールド制約、データ機密度レベル] でフィルターできます。③フィールドリストの操作
[列の並べ替え]:フィールドの順序を調整する前に、データエラーを回避するために、この論理テーブルへのダウンストリーム参照がこの論理テーブルをクエリするために
select *を使用していないことを確認してください。[フィールドの導入]:テーブルに新しいフィールドを追加します。[テーブル作成ステートメントから] と [テーブルから] からの導入をサポートしています。具体的な操作については、「論理ディメンションテーブルにフィールドを導入する」をご参照ください。
[フィールドの追加]:[データフィールド] と [パーティションフィールド] を追加します。ビジネス要件に応じて、フィールドの [名前]、[説明]、[データ型]、[列タイプ]、[関連ディメンション]、[推奨標準]、[フィールド制約]、[データクラス]、[データ機密レベル]、[備考] 情報を編集できます。
説明MaxCompute エンジンは、最大 6 レベルのパーティションフィールドの作成をサポートしています。
ArgoDB、StarRocks、SelectDB、および Doris コンピュートエンジンは、パーティションフィールドの追加をサポートしていません。
④フィールド リスト
フィールドリストには、[シリアル番号]、[列名]、[説明]、[データ型]、[列タイプ]、[関連ディメンション]、[推奨標準]、[フィールド制約]、[データクラス]、[データ機密レベル]、[備考] などのフィールドに関する詳細情報が表示されます。
[シリアル番号]:テーブルフィールドのシリアル番号。新しいフィールドごとに +1 ずつ増加します。
フィールド名: テーブルフィールドの名前。フィールド名または中国語のキーワードを入力すると、標準のプリセットフィールド名と自動的に一致します。
[説明]:テーブルフィールドの説明情報。512 文字までに制限されています。
[データ型]:[string]、[bigint]、[double]、[timestamp]、[decimal]、[text]、[numeric]、[datetime Variable]、[その他] のデータ型をサポートしています。
[列タイプ]:[プライマリキー]、[パーティション]、[プロパティ] として設定できます。
説明プライマリキーフィールドは 1 つだけ許可されます。
string、varchar、bigint、int、tinyint、smallint 型のフィールドのみがパーティションフィールドとしてサポートされています。
[関連ディメンション]:具体的な操作については、「関連ディメンションを追加する」をご参照ください。
[推奨標準]:フィールドのフィールド標準を選択します。標準を作成するには、「データ標準の作成と管理」をご参照ください。
[フィールド制約]:フィールドのフィールド制約を選択します。[一意] および [NULL 以外] の制約をサポートしています。
[データクラス]:フィールドのデータ分類を選択します。データ分類を作成するには、「データ分類を作成する」をご参照ください。
[データ機密レベル]:データ分類を選択すると、システムは自動的にデータレベルを検出します。
[備考]:フィールドの備考情報を入力します。2048 文字までに制限されています。
同時に、操作列のフィールドで [削除] 操作を実行できます。
説明フィールドは削除後に取り消すことはできません。
論理ディメンションテーブルのプライマリキーとシステムパーティションフィールドは削除をサポートしていません。
⑤バッチ操作
テーブルフィールドを一括選択し、次の操作を実行できます。
[削除]:
アイコンをクリックして、選択したデータフィールドを一括削除します。[データ型]:
アイコンをクリックして、選択したデータ型を一括変更します。[列タイプ]:
アイコンをクリックして、選択したフィールドカテゴリを一括変更します。[名前の推奨]:
アイコンをクリックすると、システムはフィールドの 説明単語ルートの命名 コンテンツをセグメント化し、作成された語根と照合してフィールド名を推奨します。 ダイアログボックスで、選択したフィールド名を変更された値に置き換えることができます。次の図に示すように:
説明推奨されるフィールド名が要件を満たしていない場合は、[変更されたフィールド名] 入力ボックスで変更できます。
[リセット] をクリックすると、[変更されたフィールド名] がシステムのヒット語根にリセットされます。
[標準の推奨]:
アイコンをクリックすると、システムはフィールド名に基づいてフィールド標準を推奨します。フィールド標準 ダイアログボックスで、フィールドを推奨されるフィールド標準に設定できます。[フィールド制約]:
アイコンをクリックして、フィールド制約を一括設定します。重要サブディメンション論理テーブルは、フィールド制約の設定をサポートしていません。
[保存して次へ] をクリックします。
論理ディメンションテーブルにフィールドを導入する
テーブルから導入する
作成した論理ディメンションテーブルの構成ページで、[テーブルからインポート] をクリックします。

[テーブルから取り込み] ダイアログボックスで、[ソーステーブル] を選択し、追加するフィールドを選択します。
パラメータ
説明
[ソーステーブル]
現在のテナントで読み取り権限を持つすべての物理テーブル(Dataphin によって自動的に生成された物理テーブル以外)、論理テーブル、およびビュー(パラメータ化されていないビュー)を選択できます。
物理テーブルの読み取り権限を取得する方法については、「テーブル権限の申請、更新、および返却」をご参照ください。
[フィールドリスト]
追加する必要があるフィールドを選択します。
説明ソーステーブルメソッドを切り替えることで、複数のソーステーブルからフィールドを選択できます。
[選択されたフィールド]
追加されたフィールドは、選択されたフィールドに追加されます。選択されたフィールドで [削除] 操作を実行できます。
[追加] をクリックして、物理テーブルから論理ディメンションテーブルにフィールドをインポートします。
フィールドが [新しいフィールド] 領域に追加された後、必要に応じて名前、データ型、フィールドカテゴリ、および関連ディメンションを編集できます。
テーブル作成ステートメントから導入する
作成した論理ディメンションテーブルの構成ページで、[CREATE TABLE ステートメントからインポート] をクリックします。
[CREATE TABLE ステートメントから導入] ダイアログボックスで、CREATE TABLE ステートメントを入力し、[SQL を解析] をクリックします。
フィールドリストで、必要なフィールドを選択し、[追加] をクリックして、論理ディメンションテーブルの新しいフィールドを作成します。
関連ディメンションを追加する
論理ディメンションテーブルの構成ページで、[関連ディメンション] 列の
アイコンをクリックし、[モデルリレーションシップの編集] ダイアログボックスを開きます。[モデル関係の編集] ダイアログボックスで、パラメータを構成します。
ブロック
パラメータ
説明
[NULL 値の置換]
プライマリテーブル(現在の論理ディメンションテーブル)を必要な論理ディメンションテーブルに関連付けることができない場合、Dataphin は自動的に外部キーフィールドに -110 の値を入力します。
[論理ディメンションテーブル]
[関連エンティティ]、[論理ディメンションテーブル]
作成した [関連エンティティ] と [論理ディメンションテーブル] を選択します。
[関連付けロジックの編集]
[関連付けロジック]
デフォルトでは、ディメンションと関連付けられた論理ディメンションテーブルのプライマリキーに関連付ける必要があるフィールドが表示され、変更できません。
[ディメンションテーブルのバージョンポリシー]
プライマリテーブル(現在の論理ディメンションテーブル)と関連付けられた論理ディメンションテーブルのパーティションを定義します。デフォルトでは、現在の論理ディメンションテーブルと同じスケジューリングサイクルを使用します。詳細は次のとおりです。
[同じサイクルディメンションを使用する(プライマリテーブルとディメンションテーブルは同じサイクルパーティションを使用する)]:プライマリテーブルと関連付けられた論理ディメンションテーブルは、計算中に同じサイクル時間パーティションを使用します。
たとえば、営業日が 20220101 の場合、プライマリテーブルの ds=20220101 パーティションのデータをクエリする必要があり、関連付けられた論理ディメンションテーブルの時間パーティションも 20220101 である場合、同じサイクルディメンションテーブルを使用するように選択する必要があります。
[最新のディメンションテーブルを使用する(ディメンションテーブルは最新のパーティションを使用する)]:データ計算中に、最新の関連付けられた論理ディメンションテーブルの最新のパーティションが使用されます。
たとえば、製品カテゴリは頻繁に調整されます。10 日前は携帯電話カテゴリでしたが、今日は家電カテゴリです。ビジネスで家電カテゴリに従って 10 日前のデータを再実行する必要がある場合、ディメンションテーブルのバージョンポリシーを [最新のディメンションテーブルを使用する(ディメンションテーブルは最新のパーティションを使用する)] として選択する必要があります。
[欠落している関連付けポリシー]
欠落している関連付けポリシーは、ソースプライマリテーブル(左テーブル)に存在するが論理ディメンションテーブル(右テーブル)に存在しないフィールド、つまり関連付けることができないフィールドの計算ロジックを定義するために使用されます。[元の欠落している関連付けデータを保持する] と [欠落している関連付けデータにデフォルト値を使用する] を選択できます。
[元の欠落している関連付けデータを保持する]:派生指標を作成するときに、左側のテーブルの元のデータを保持します。
[欠落している関連付けデータにデフォルト値を使用する]:プライマリテーブルのフィールドが論理ディメンションテーブルに関連付けられていない場合は、デフォルト値 -110 を使用します。
[ディメンションロールの編集]
[ロールの英語名]、[ロール名]
ディメンションロールは、ディメンションのエイリアスとして機能します。同じディメンションが複数回参照される場合、同じ名前で再定義することはできず、役割の仮定効果を果たします。[ロールの英語名] と [ロール名] を定義する必要があります。
[ロールの英語名] のプレフィックスはデフォルトで
dimであり、カスタム部分の命名規則は次のとおりです。文字、数字、またはアンダースコア(_)を含みます。
64 文字を超えることはできません。
[ロール名] の命名規則は次のとおりです。
中国語の文字、数字、英字、アンダースコア(_)、またはハイフン(-)を含みます。
64 文字を超えることはできません。
[OK] をクリックします。
ステップ 3:一般的な論理ディメンションテーブルの計算ロジックを構成する
[計算ロジック] 構成ページで、ソースデータと論理ディメンションテーブルのプライマリキー間のマッピングを構成できます。
[ソース構成] をクリックします。[ソース構成] ダイアログボックスで、[+ ソースオブジェクトを追加] ボタンをクリックし、ソースパラメーターを構成します。
説明フィルタ条件またはカスタム SQL でイベント時間に追加のフィルタを設定しないことをお勧めします。
パラメータ
説明
[ソースタイプ]
[物理テーブル]、[SQL]、[論理テーブル] の 3 つのソースタイプをサポートしています。
ソーステーブルタイプの説明:
プライマリキーを持つソーステーブル:プライマリキーを持つ論理テーブルでは、複数のソースを構成でき、最初のソースはメインソースとして固定されます。論理テーブルのデータの総量(行数)はこのソースによって決まります。
プライマリキーのないソーステーブル:プライマリキーのない論理テーブルでは、1 つのソースのみを構成できます。ソースとして複数のテーブルがある場合は、カスタム SQL を使用して複数のテーブルの関連付けを事前に完了します。
説明複数のソースオブジェクトを構成するには、[ソースオブジェクトを追加] をクリックして新しいオブジェクトを追加します。
[ソースオブジェクト]
[物理テーブル] を選択します。現在のテナントで読み取り権限を持つすべての物理テーブル(Dataphin によって自動的に生成された物理テーブル以外)と物理ビュー(パラメータ化されていないビュー)を選択できます。
物理テーブルの読み取り権限を取得する方法については、「テーブル権限の申請、更新、および返却」をご参照ください。
[SQL] を選択します。
アイコンをクリックして、編集ボックスにコンテンツを入力します。例:select id, name from project_name_dev.table_name1 t1 join project_name2_dev.table_name2 t2 on t1.id = t2.id[論理テーブル] を選択します。現在のテナントで読み取り権限を持つすべての論理テーブルを選択できます。
物理テーブルの読み取り権限を取得する方法については、「テーブル権限の申請、更新、および返却」をご参照ください。
重要論理テーブルを別の論理テーブルのデータソースとして使用すると、計算ロジックの複雑さと運用および保守の難易度が増加します。
[オブジェクトエイリアス]
ソーステーブルのエイリアスをカスタマイズします。例:t1、t2。
[オブジェクトの説明]
オブジェクトの説明情報を入力してください。1000 文字までに制限されています。
[フィルタ条件]
カスタム SQL フィルタ条件。
アイコンをクリックして、編集ボックスにコンテンツを入力します。例:ds=${bizdate} and condition1=value1.[外部キーフィールド]
論理テーブルのプライマリキーに対応するソースオブジェクトのフィールド。プライマリキーと等価に関連付けることができます。
[削除]
メインソースは削除をサポートしていません。
プライマリキーのない論理テーブルの場合、ソースを削除するとフィールドの計算ロジックがクリアされます。
[OK] をクリックしてソース構成を完了します。
ソース構成を完了したら、[ソースフィールド] を計算ロジックにドラッグします。[名前でマップ] ボタンをクリックして、ソースデータフィールドを同じ名前の論理テーブルフィールドの計算ロジックに一括マップすることもできます。
アイコンをクリックすると、編集ボックスで計算ロジック式を編集できます(式は sum、count、min などの集計関数をサポートしていません)。例:例 1:
substr(t1.column2, 3, 10)例 2:
case when t1.column2 != '1' then 'Y' else 'N' end例 3:
t1.column2 + t2.column1
計算ロジックの構成を完了した後、下部にある
アイコンをクリックして式の有効性を検証します。[SQL のプレビュー] ボタンをクリックして、計算ロジック SQL を表示します。
[保存して次へ] をクリックします。
ステップ 4:制約を構成する
フィールド制約に基づいて、システムは品質モジュールに現在の論理テーブルの品質ルールを作成します。 ここでは、フィールドに対して、強制ルール や ソフトルール を含む ルール強度 を設定できます。 詳細については、「データテーブルの品質ルール」をご参照ください。
説明論理テーブルのフィールド制約は、ここでルール強度に対してのみ構成でき、品質モジュールでは編集できません。
[保存して次へ] をクリックします。
ステップ 5:一般的な論理ディメンションテーブルのスケジューリングを構成する
[スケジューリングとパラメーター設定] ページで、論理ディメンションテーブルの データレイテンシー、スケジューリング属性、スケジューリング依存関係、スケジューリングパラメーター、および実行設定 を設定します。
パラメータ
説明
データ遅延
データレイテンシが有効になっている場合、システムは [最大レイテンシ日数] サイクル内でこの論理テーブルのすべてのデータを自動的に再実行します。詳細な手順については、「論理テーブルのデータレイテンシを構成する」をご参照ください。
スケジューリング属性
本番環境での論理ディメンションテーブルのスケジューリング方法を定義するために使用されます。スケジューリング属性を使用して、論理ディメンションテーブルのスケジューリングタイプ、スケジューリングサイクル、スケジューリングロジック、および実行を構成できます。詳細な手順については、「論理テーブルのスケジューリング属性を構成する」をご参照ください。
上流依存関係
スケジューリングタスクで論理テーブルのノードを定義するために使用されます。Dataphin は、各ノードのスケジューリング依存関係の構成結果を通じてビジネスプロセス内のノードを順番に実行し、ビジネスデータの効率的かつタイムリーな出力を保証します。詳細な手順については、「論理テーブルの上流依存関係を構成する」をご参照ください。
パラメータ構成
パラメーター構成は、コードで使用される変数に値を割り当てるために使用されます。これにより、ノードがスケジュールされるときに、パラメーター変数を対応する変数値に自動的に置き換えることができます。スケジューリングパラメーター構成ページで、パラメーター構成で [無視] または [グローバル変数に変換] 操作を実行できます。詳細な手順については、「論理テーブルのパラメーター構成」をご参照ください。
実行構成
ビジネスシナリオに応じて、論理ディメンションテーブルのタスクレベルの実行時タイムアウトとタスク障害の再実行ポリシーを構成して、計算タスクのリソースの長期占有によるリソースの浪費を防ぎながら、計算タスク操作の信頼性を向上させることができます。詳細な手順については、「論理テーブルの実行構成」をご参照ください。
リソース構成
現在の論理テーブルタスクのスケジューリングリソースグループを構成できます。論理テーブルタスクは、スケジューリング中にこのリソースグループのリソースクォータを占有します。構成手順については、「論理テーブルのリソース構成」をご参照ください。
[保存して送信] をクリックします。
ステップ 6:論理テーブルを保存して送信する
一般的なディメンション論理テーブルを構成した後、[保存して送信] をクリックします。
システムは、[テーブル構造]、[計算ロジック]、[スケジュール依存関係]、[実行時パラメーター] の構成を検証します。[チェック結果] に基づいて構成を確認し、失敗したチェックを修正できます。
すべてのチェック結果が合格したら、送信の備考を入力し、[確認して送信] をクリックします。
送信中に、Dataphin はタスクのリネージュ解析と送信チェックを実行します。詳細については、「標準モデリングタスクの送信手順」をご参照ください。
次のステップ
プロジェクトモードが開発-本番の場合、論理テーブルを本番環境に公開する必要があります。詳細については、「リリース タスクの管理」をご参照ください。
論理テーブルが本番環境に公開された後、オペレーションセンターで論理テーブルタスクを表示および保守できます。詳細については、「オペレーションセンター」をご参照ください。