通常ディメンション論理テーブルは、エンティティオブジェクトとその属性を記述します。たとえば、メンバーの通常ディメンション論理テーブルには、メンバー名、メンバー ID、メンバーメールアドレスが含まれます。このトピックでは、通常ディメンション論理テーブルを作成および設定する方法について説明します。
制限事項
-
データ標準 モジュールがない場合、テーブルの データ標準 フィールドは設定できません。
-
資産セキュリティ モジュールがない場合、テーブルの データ分類 および データカテゴリ分類 フィールドは設定できません。
-
データ品質 モジュールがない場合、プライマリキー フィールドに 一意 および 非 NULL の検証を適用できません。
前提条件
ビジネスエンティティが作成されていること。詳細については、「ビジネスエンティティの作成と管理」をご参照ください。
手順
ステップ 1:通常ディメンション論理テーブルの作成
-
Dataphin のホームページの上部メニューで、[Develop] > [データ開発] を選択します。
-
上部メニューで、プロジェクト を選択します (Dev-Prod モードでは、環境 も選択する必要があります)。
-
ナビゲーションペインで、[標準化モデリング] > [ディメンション論理テーブル] を選択します。
-
右側のディメンション論理テーブルリストで、作成アイコン
をクリックします。 -
[ディメンション論理テーブルの作成] ダイアログボックスで、次のパラメーターを設定します。
パラメーター
説明
[ビジネスオブジェクト]
[標準オブジェクト] を選択します。
[テーブルタイプ]
ビジネスオブジェクト に [標準オブジェクト] を選択すると、テーブルタイプは自動的に [標準ディメンション論理テーブル] に設定されます。このパラメーターは変更できません。
[データブロック]
プロジェクトに関連付けられている データブロック がデフォルトで設定されます。このパラメーターは変更できません。
[サブジェクトエリア]
ビジネスオブジェクトのサブジェクトエリアがデフォルトで設定されます。このパラメーターは変更できません。
コンピューティングエンジン
Dataphin インスタンスが Hadoop コンピューティングエンジンで構成されている場合、Hive、Impala、Spark などのコンピューティングエンジンを選択できます。
重要-
コンピューティングエンジンは、有効にした後にのみ選択できます。詳細については、「Hadoop コンピューティングソースの作成」をご参照ください。
-
コンピューティングエンジンが TDH 6.x または TDH 9.3.x の場合、このパラメーターを 設定することはできません。
コンピューティングエンジンには次の制限があります:
-
Hive: Kudu フォーマットで保存されているソーステーブルを読み取ることはできません。
-
Impala: Kudu フォーマットで保存されているソーステーブルを読み取ることはできますが、論理テーブルを Kudu フォーマットで保存することはサポートしていません。ソーステーブルが Kudu フォーマットの場合にのみ Impala を使用することを推奨します。
-
Spark: Kudu フォーマットで保存されているソーステーブルを読み取ることはできません。
[データ適時性]
ディメンション論理テーブルのデータ適時性を指定します。標準ディメンション論理テーブルは、[T+1] (日次テーブル)、[T+h] (時間単位テーブル)、および [T+m] (分単位テーブル) をサポートします。
説明-
ArgoDB コンピューティングエンジンは、オフラインの [T+1] (日次テーブル) のみをサポートします。
-
Doris および SelectDB コンピューティングエンジンは、[T+m] (分単位テーブル) をサポートしていません。
[論理テーブル名]
論理テーブル名を入力します。名前は 100 文字を超えることはできません。ビジネスオブジェクトを選択すると、システムは次のルールに基づいてテーブル名を自動的に入力します:
{Data Block name}.dim_{business object code}_{data timeliness}。重要-
名前には、文字、数字、アンダースコア (_) のみを使用できます。先頭は文字にする必要があります。名前に大文字と小文字の区別はありません。大文字は自動的に小文字に変換されます。
-
label_はシステムで予約されているプレフィックスです。名前をlabel_で始めることはできません。 -
AnalyticDB for PostgreSQL の場合、テーブル名は 50 文字を超えることはできません。
名前の
{data timeliness}部分は、選択したデータ適時性によって異なります。値については、次の一覧をご参照ください。-
df: T+1 の適時性の場合、日次フルを表します。テーブルには、当日までのすべての履歴データの完全なスナップショットが保存されます。
-
hf: T+h の適時性の場合、時間単位フルを表します。テーブルには、当時間までのすべての履歴データの完全なスナップショットが保存されます。
-
mf: T+m の適時性の場合、分単位フルを表します。15 分ごとに、テーブルには直近の 15 分間隔までのすべての履歴データの完全なスナップショットが保存されます。
[表示名]
次の命名規則に従ってください:
-
名前は 128 文字を超えることはできません。
-
すべての文字を使用できます。
[説明]
ディメンション論理テーブルの簡単な説明を入力します。説明は 1,000 文字を超えることはできません。
-
-
[OK] をクリックして、標準ディメンション論理テーブルを作成します。
ステップ 2:通常ディメンション論理テーブルのフィールド設定
-
[Table Structure] ページで、ディメンション論理テーブルのフィールド、データ型、フィールドタイプを設定します。
説明論理テーブル名の横にある
アイコンをクリックすると、その基本情報を表示できます。セクション
説明
① フィールドナビゲーション
クリックすると、フィールドリストの [基本設定] または [データガバナンス] セクションに移動します。
② 検索とフィルター
フィールド名でフィールドを検索します。
アイコンをクリックして、データ型、フィールドタイプ、関連ディメンションの有無、関連ディメンション、制約、データセキュリティレベル などの条件で絞り込みます。③ フィールドリストの操作
-
[フィールドの並べ替え]:データエラーを回避するため、フィールドを並べ替える前に、下流の依存関係がテーブルに対して
select *クエリを使用していないことを確認してください。 -
[フィールドのインポート]:[DDL 文からインポート]するか、[テーブルからインポート]することができます。詳細については、「ディメンション論理テーブルへのフィールドのインポート」をご参照ください。
-
[フィールドの追加]:[データフィールド]または[パーティションフィールド]を追加し、その[名前]、[説明]、[データ型]、[フィールドタイプ]、[関連ディメンション]、[フィールド標準]、[制約]、[データ分類]、[データセキュリティレベル]、および[コメント]を編集します。
説明MaxCompute エンジンは、最大 6 レベルのパーティションフィールドをサポートします。
ArgoDB、StarRocks、SelectDB、Doris のコンピューティングエンジンは、パーティションフィールドの追加をサポートしていません。
④ フィールドリスト
フィールドリストには、各フィールドの次の詳細が表示されます:[シーケンス番号]、[フィールド名]、[説明]、[データ型]、[フィールドタイプ]、[関連ディメンション]、[フィールド標準]、[制約]、[データ分類]、[データセキュリティレベル]、および[コメント]。
-
[シーケンス番号]:フィールドの順序。この番号は、新しいフィールドごとに 1 ずつ増加します。
-
フィールド名:フィールドの名前。名前またはキーワードを入力すると、一致する標準フィールド名がシステムによって提案されます。
-
[説明]:フィールドの説明。最大 512 文字です。
-
[データ型]:サポートされているデータ型には、[string]、[bigint]、[double]、[timestamp]、[DECIMAL] があり、[Text]、[Numeric]、[Datetime]、[Other] などの汎用型も含まれます。
-
[フィールドタイプ]:フィールドのタイプとして、[プライマリキー]、[パーティション]、または[属性]のいずれかを指定できます。
説明-
プライマリキーフィールドは1つのみ設定できます。
-
string、varchar、bigint、int、tinyint、または smallint 型のフィールドのみをパーティションフィールドとして使用できます。
-
-
[関連ディメンション]:詳細については、「関連ディメンションの追加」をご参照ください。
-
[フィールド標準]:フィールドの標準を選択します。標準を作成するには、「データ標準の作成と管理」をご参照ください。
-
[制約]:[一意]および [NULL 不可] の制約に対応しています。
-
[データ分類]:フィールドのデータ分類を選択します。データ分類を作成するには、「データ分類の作成」をご参照ください。
-
[データセキュリティレベル]:データ分類を選択すると、システムが自動的にデータセキュリティレベルを識別します。
-
[コメント]:フィールドのコメントを入力します。最大 2,048 文字です。
[Operations] 列でフィールドを [Delete] することもできます。
説明-
フィールドの削除は元に戻せません。
-
ディメンション論理テーブルのプライマリキーフィールドとシステムパーティションフィールドは削除できません。
⑤ 一括操作
複数のフィールドを選択して、次の一括操作を実行できます:
-
[削除]:
アイコンをクリックして、選択したデータフィールドを削除します。 -
[データ型]:
アイコンをクリックして、選択したフィールドのデータ型を変更します。 -
[フィールドタイプ]:
アイコンをクリックして、選択したフィールドのフィールドタイプを変更します。 -
[ルートベースの命名]:
アイコンをクリックします。システムは 説明 フィールドの内容をトークン化し、既存のルートワードと照合してフィールド名を推奨します。ルートベースの命名 ダイアログボックスで、選択したフィールドの現在の名前を推奨された名前に置き換えることができます。
説明-
推奨されたフィールド名が適切でない場合は、[Corrected field name] ボックスにカスタム名を入力できます。
-
[Reset] をクリックして、[Corrected field name] をシステム推奨の元の名前に戻します。
-
-
[フィールド標準]:
アイコンをクリックします。システムはフィールド名に基づいてフィールド標準を推奨します。フィールド標準 ダイアログボックスで、推奨された標準を選択したフィールドに適用できます。 -
[制約]:
アイコンをクリックして、選択したフィールドに制約を設定します。重要サブディメンション論理テーブルは制約に対応していません。
-
-
[Save and Next] をクリックします。
ディメンション論理テーブルへのフィールドのインポート
-
テーブルからインポート
-
ディメンション論理テーブルの設定ページで、[テーブルからインポート] をクリックします。

-
[テーブルからインポート] ダイアログボックスで、[ソーステーブル] を選択し、追加するフィールドを選択します。
パラメーター
説明
[ソーステーブル]
読み取り権限が付与されている、現在のテナントの任意の物理テーブル (Dataphin によって自動生成されたものを除く)、論理テーブル、またはビュー (パラメーター化ビューを除く) を選択できます。
物理テーブルの読み取り権限を取得する方法については、テーブル権限の申請、更新、取り消しをご参照ください。
[フィールドリスト]
追加するフィールドを選択します。
説明ソーステーブルを切り替えることで、複数のソーステーブルからフィールドを選択できます。
[選択したフィールド]
追加されたフィールドは選択されたフィールドに追加されます。選択されたフィールドに対して[削除]操作を実行できます。
-
[追加] をクリックして、選択したフィールドをディメンション論理テーブルにインポートします。
フィールドが [新しいフィールド] セクションに追加されると、名前、データ型、フィールドカテゴリ、および関連ディメンションを必要に応じて編集できます。
-
-
DDL ステートメントからインポート
-
ディメンション論理テーブルの設定ページで、[DDL ステートメントからインポート] をクリックします。
-
[DDL ステートメントからインポート] ダイアログボックスで、DDL ステートメントを入力し、[SQL を解析] をクリックします。
-
フィールドリストから必要なフィールドを選択し、[追加] をクリックしてディメンションロジックテーブルに新しいフィールドを作成します。
-
関連ディメンション
-
ディメンションロジックテーブルの設定ページで、[関連ディメンション] 列にある
アイコンをクリックして、[モデルリレーションシップの編集] ダイアログボックスを開きます。 -
[モデル関係の編集] ダイアログボックスで、パラメーターを設定します。
セクション
パラメーター
説明
[NULL 置換値]
主テーブル (現在のディメンションロジックテーブル) と関連ディメンションロジックテーブル間の結合が失敗した場合、Dataphin は自動的に、関連ディメンションテーブルの属性値を -110 に設定します。
[ディメンションロジックテーブル]
[関連エンティティ]、[ディメンションロジックテーブル]
作成した[関連エンティティ]と[ディメンションロジックテーブル]を選択します。
[関連付けロジックの編集]
[関連付けロジック]
デフォルトでは、現在のテーブルの結合フィールドと関連ディメンションロジックテーブルのプライマリキーが表示されます。この設定は変更できません。
[ディメンションテーブルのバージョニングポリシー]
主テーブル (現在のディメンションロジックテーブル) が関連ディメンションロジックテーブルと結合する際に、どのパーティションを使用するかを指定します。デフォルトでは、ポリシーは現在のディメンションロジックテーブルと同じスケジューリング周期を使用します。次のオプションがあります:
-
[同周期ディメンションの使用]: システムは、同周期の時間パーティションを使用して、プライマリテーブルと関連ディメンションロジックテーブルを結合します。
たとえば、業務日付が 20220101 で、主テーブルの
ds=20220101パーティションとディメンションロジックテーブルの20220101パーティションを結合する必要がある場合は、このオプションを選択します。 -
[最新のディメンションテーブルを使用]: システムは、関連付けられたディメンション論理テーブルの最新のパーティションを結合に使用します。
たとえば、頻繁に変更される製品カテゴリを考えてみましょう。ある商品は 10 日前には 'Mobile Phones' カテゴリにありましたが、今日では 'Appliances' カテゴリにあるとします。ビジネス上の要件で、最新のカテゴリ ('Appliances') を使用して 10 日前のデータを再処理する必要がある場合は、[最新のディメンションテーブルを使用] オプションを選択します。
[非結合ポリシー]
プライマリテーブル (左テーブル) のレコードがディメンションロジックテーブル (右テーブル) に一致しない場合の処理方法を指定します。[元の非結合データを保持] と [非結合データをデフォルト値に置き換える] から選択できます。
-
[元の未結合データを保持する]:プライマリテーブル内の未一致レコードの元のデータが保持されます。
-
[未結合データをデフォルト値に置き換える]: プライマリテーブル内のレコードに、ディメンションロジックテーブル内で一致するレコードがない場合、ディメンションテーブルの対応する属性はデフォルト値の -110 に設定されます。
[ディメンションロールの編集]
[ロールの英語名]、[ロール名]
ディメンションロールはディメンションの別名です。同じディメンションを複数回結合する場合、インスタンスごとに一意のロールを定義する必要があります。各ロールには、[ロールの英語名] と [ロール名] が必要です。
-
[ロールの英語名] のプレフィックスは、デフォルトで
dimであり、カスタム部分の命名規則は次のとおりです。-
英字、数字、アンダースコア (_) のみを含む必要があります。
-
64 文字以内にする必要があります。
-
-
[ロール名] は、次のルールに従う必要があります。
-
中国語文字、英字、数字、アンダースコア (_)、ハイフン (-) のみを含む必要があります。
-
64 文字以内にする必要があります。
-
-
-
[OK]をクリックします。
ステップ 3:計算ロジックの設定
-
[計算ロジック] ページでは、ソースデータとディメンション論理テーブルのプライマリーキーのマッピングを設定できます。
-
[ソース設定] をクリックして [ソース設定] ダイアログボックスを開きます。[+ソースオブジェクトの追加] ボタンをクリックして、ソースパラメーターを設定します。
説明フィルター条件またはカスタム SQL で、イベント時刻に対する追加フィルターは設定しないでください。
パラメーター
説明
[ソースタイプ]
サポートされているソースタイプは [物理テーブル]、[カスタム SQL]、および [論理テーブル] です。
ソーステーブルタイプの説明:
-
プライマリキーがあるソーステーブル:プライマリキーがある論理テーブルでは、複数のソースを設定できます。最初のソースは常にプライマリソースであり、論理テーブルの総行数を決定します。
-
プライマリキーがないソーステーブル:プライマリキーがない論理テーブルでは、ソースは 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 など、ソースオブジェクトのカスタムエイリアスを入力します。
[オブジェクトの説明]
オブジェクトの説明を入力します。説明は 1,000 文字を超えることはできません。
[フィルター条件]
ソースデータをフィルタリングするための条件を指定します。
アイコンをクリックし、エディターで条件を入力します。例: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:制約の設定
-
システムは、フィールド制約を使用して、品質モジュールで論理テーブルの品質ルールを作成します。各フィールドの ルールの強度 は、強いルール または 弱いルール に設定できます。詳細については、「データテーブル品質ルール」をご参照ください。
説明論理テーブルのフィールド制約のルールの強度は、この段階でのみ設定でき、品質モジュールでは編集できません。
-
[Save and Next] をクリックします。
ステップ5:論理テーブルのスケジューリング設定
-
[スケジューリングとパラメーター設定] ページで、ディメンションロジックテーブルの [データレイテンシー]、[スケジューリングプロパティ]、[上流の依存関係]、[パラメーター設定とランタイム設定] を設定します。
パラメータ
説明
データレイテンシー
データ遅延を有効にすると、システムは、このロジックテーブルのすべてのデータを [最大遅延日数] の期間内に自動的に再実行します。 詳細については、「ロジックテーブルのデータ遅延を設定する」をご参照ください。
スケジューリングプロパティ
スケジューリングプロパティでは、本番環境でディメンションロジックテーブルがどのように実行されるかを定義します。スケジューリングタイプ、サイクル、ロジック、実行の詳細を設定できます。詳細については、「ロジックテーブルのスケジューリングプロパティの設定」をご参照ください。
アップストリーム依存関係
アップストリーム依存関係は、スケジューリングタスク内のノードとしてのロジックテーブルの位置を定義します。Dataphin は、これらの依存関係を使い、ビジネスプロセス内のすべてのノードを正しい順序で実行し、データが効率的かつタイムリーに生成されるようにします。詳細については、「ロジックテーブルのアップストリーム依存関係の設定」をご参照ください。
パラメータ構成
パラメーター設定を使用すると、コード内の変数に値を割り当てることができます。タスクがスケジュールされると、これらの変数は割り当てられた値に自動的に置き換えられます。このページでは、パラメーターを [無視] するか、[グローバル変数に変換] するかを選択できます。詳細については、「ロジックテーブルのパラメーターを設定する」をご参照ください。
ランタイム構成
ディメンションロジックテーブルに、タイムアウト期間や失敗したタスクのリトライポリシーなど、タスクレベルのランタイム構成を設定できます。これにより、長時間実行される計算によるリソースの無駄を防ぎ、タスク実行の信頼性を向上させることができます。詳細については、「ロジックテーブルのランタイム構成の設定」をご参照ください。
リソース構成
ロジックテーブルタスクにスケジューリングリソースグループを割り当てることができます。タスクが実行されると、割り当てられたグループのリソースクォータを使用します。詳細については、「ロジックテーブルのリソース構成の設定」をご参照ください。
-
[保存して送信] をクリックします。
ステップ 6:論理テーブルの保存とコミット
-
通常ディメンション論理テーブルを設定した後、[保存して送信] をクリックします。
システムは、[テーブル構造]、[コンピューティングロジック]、[スケジューリング依存関係]、および[ランタイムパラメーター]の設定を検証します。失敗した[チェック結果]に基づき、設定情報を確認して設定を完了してください。
-
すべてのチェックがパスした後、提出コメントを入力し、[確認して送信] をクリックします。
送信すると、Dataphin はリネージ分析と提出チェックを実行します。詳細については、「標準モデリングタスクの提出手順」をご参照ください。
単一テナント複数エンジン
-
テーブルからのインポートでフィールドリストを設定する場合、同じエンジンタイプを使用するプロジェクトからのみテーブルをインポートできます。
-
ソーステーブルは、現在のプロジェクトと同じクラスター内のプロジェクトからのみ選択できます。
次のステップ
Dev-Prod モードのプロジェクトでは、論理テーブルを本番環境にデプロイします。詳細については、「デプロイメントタスクの管理」をご参照ください。
論理テーブルを本番環境にデプロイした後、オペレーションセンターでそれらのタスクを表示および管理できます。詳細については、「オペレーションセンター」をご参照ください。