ファクト論理テーブルは、ビジネスアクティビティまたはプロセスから複数の属性をグループ化します。これにはプライマリキー、メジャー、ファクト属性のフィールドが含まれます。プライマリキーはソーステーブルからデータを取得する方法を指定し、メジャーはサイズ、数量、または程度を定量化する数値フィールドです。このトピックでは、ファクト論理テーブルを作成および構成する方法を説明します。
使用制限
-
テーブルの [データ標準] フィールドを設定するには、[データ標準] モジュールを購入する必要があります。
-
テーブルの [データ分類レベル] または [データ分類] フィールドを設定するには、[資産セキュリティ] モジュールを購入する必要があります。
-
プライマリキーフィールドに [一意] および [NOT NULL] 制約を適用するには、[データ品質] モジュールを購入する必要があります。
前提条件
ビジネスアクティビティオブジェクトが作成されている必要があります。詳細については、「ビジネスエンティティの作成と管理」をご参照ください。
手順
ステップ 1:論理ファクトテーブルの作成
-
Dataphin ホームページのトップメニューバーで、[開発] > [データ開発] を選択します。
-
上部メニューで [プロジェクト] を選択します。Dev-Prod モードの場合は、[環境] も選択する必要があります。
-
左側のナビゲーションペインで、[標準化モデリング] > [論理ファクトテーブル] を選択します。
-
右側の論理ファクトテーブルのリストで、
[新規作成] アイコンをクリックします。 -
[論理ファクトテーブルの作成] ページで、パラメーターを設定します。
パラメーター
説明
[ビジネスアクティビティ]
論理ファクトテーブルのビジネスアクティビティを選択します。ビジネスアクティビティは、[ビジネスイベント]、[ビジネススナップショット]、および [ビジネスプロセス]の 3 種類に分かれています。
[テーブルタイプ]
ビジネスアクティビティのタイプによってテーブルタイプが決まります。
-
[ビジネスアクティビティ] が [ビジネスイベント] の場合、[テーブルタイプ] は [イベント論理ファクトテーブル] です。
-
[ビジネスアクティビティ] が [ビジネススナップショット] の場合、[テーブルタイプ] は [スナップショット論理ファクトテーブル] になります。
-
[ビジネスアクティビティ] が [ビジネスプロセス] の場合、[テーブルタイプ] は [プロセス論理ファクトテーブル] となります。
[データボード]
デフォルトでは、ビジネスアクティビティのデータボード名が設定されます。このパラメーターは変更できません。
[サブジェクトドメイン]
デフォルトでは、ビジネスアクティビティのサブジェクトドメイン名が設定されます。このパラメーターは変更できません。
コンピュート[エンジン]
Dataphin インスタンスに Hadoop コンピュートエンジンが設定されている場合、Hive、Impala、Spark などのコンピュートエンジンを選択できます。
重要コンピュートエンジンを選択するには、事前に有効化する必要があります。詳細については、「Hadoop コンピュートソースの作成」をご参照ください。
コンピュートエンジンには次の制限があります。
-
Hive:Kudu フォーマットで保存されたソーステーブルは読み取れません。
-
Impala:Kudu フォーマットで保存されたソーステーブルは読み取れますが、論理テーブルを Kudu フォーマットで保存することはサポートされていません。ソーステーブルが Kudu フォーマットの場合にのみ Impala を使用してください。
-
Spark:Kudu フォーマットで保存されたソーステーブルは読み取れません。
[データの適時性]
本番環境における論理ファクトテーブルタスクのスケジューリングタイプを設定します。論理ファクトテーブルでサポートされているデータ適時性のオプションには、[Offline T+1] (日次タスク)、[Offline T+h] (時間単位のタスク)、および [Offline T+m] (分単位のタスク) が含まれます。
説明-
ArgoDB コンピューティングエンジンは、オフラインの [T+1] (日次タスク) のみに対応しています。
-
Doris および SelectDB コンピューティングエンジンは、[T+m] (分単位のタスク) をサポートしていません。
[論理テーブル名]
論理テーブル名を入力します。名前は最大 100 文字です。ビジネスアクティビティを選択すると、システムは次のフォーマットに基づいて論理テーブル名を自動的に入力します:
{data_board_name}.fct_{business_object_code}_{data_timeliness}重要-
名前には、英字、数字、アンダースコア (_) のみを使用できます。名前は英字で始まる必要があります。大文字と小文字は区別されず、大文字は自動的に小文字に変換されます。
-
label_はシステム予約プレフィックスです。label_で始まる名前は使用できません。 -
AnalyticDB for PostgreSQL テーブルの場合、名前は最大 50 文字です。
論理テーブル名のフォーマットは、データの適時性によって異なります。
{data_timeliness}プレースホルダーは次のように置き換えられます。-
di:T+1 の適時性、日次増分。当日の増分データを保存します。
-
hi:T+h の適時性、毎時増分。現在の 1 時間分の増分データを保存します。
-
thi:T+h の適時性、毎時増分。毎時、00:00 から現在の時間までの増分データを保存します。
-
mi:T+m の適時性、分単位の増分。15 分ごとに、直近 15 分間の増分データをパーティションに保存します。
-
tmi:T+m の適時性、分単位の増分。15 分ごとに、00:00 から現在の分までの増分データを保存します。
-
df/da:T+1 の適時性、日次全量ロード。毎日、その日までの全量データを保存します。
-
hf:T+h の適時性、毎時全量ロード。毎時、現在の時間までの全量データを保存します。
-
mf:T+m の適時性、分単位の全量ロード。15 分ごとに、直近の 15 分間隔までの全量データを保存します。
[表示名]
表示名は次のルールに従う必要があります。
-
漢字、英字、数字、アンダースコア (_)、ハイフン (-) を使用できます。
-
最大 64 文字です。
[説明]
論理ファクトテーブルの簡単な説明を入力します。最大 1,000 文字です。
-
-
[OK] をクリックします。
ステップ 2:論理ファクトテーブルを構成する
-
[テーブル構造] ページで、パラメーターを設定します。

エリア
説明
① [フィールドセクションナビゲーション]
クリックして、[基本設定] または [資産ガバナンス] の設定に移動します。
② [検索とフィルタエリア]
名前でフィールドを検索できます。
アイコンをクリックすると、[データ型]、[フィールドカテゴリ]、[関連ディメンションの有無]、[関連ディメンション]、[フィールド制約]、[データ分類] でフィールドをフィルターできます。③ [リスト操作]
-
[フィールド順序の調整]: フィールド順序を調整する前に、この論理テーブルを参照する下流アプリケーションが
select *を使用してクエリしないことを確認してください。これにより、潜在的なデータエラーを防ぎます。 -
[フィールドのインポート]: テーブルに新しいフィールドをインポートします。[DDL ステートメントからインポート] または [テーブルからインポート] のいずれかからインポートできます。詳細については、「ファクト論理テーブルのフィールドをインポートする」をご参照ください。
-
[フィールドの追加]: [データフィールド] または [パーティションフィールド] を追加します。 必要に応じて、フィールドの [名前]、[説明]、[データ型]、[フィールドカテゴリ]、[関連ディメンション]、[フィールド標準]、[フィールド制約]、[データカテゴリ]、[データ分類]、および [コメント] を編集できます。
説明MaxCompute は、最大 6 階層のパーティションフィールドの作成をサポートしています。
ArgoDB、StarRocks、SelectDB、Doris のコンピューティングエンジンは、パーティションフィールドの追加をサポートしていません。
④ [フィールドリスト]
フィールドリストには、各フィールドの[番号]、[フィールド名]、[説明]、[データ型]、[フィールドカテゴリ]、[関連ディメンション]、[フィールド標準]、[フィールド制約]、[データカテゴリ]、[データ分類]、[コメント]などの詳細情報が表示されます。
-
[#]: 新しいフィールドが追加されるたびに 1 ずつ増加します。
-
[フィールド名]:フィールドの名前です。名前またはキーワードを入力すると、システムが一致する標準フィールド名を自動的に提案します。
-
[説明]:フィールドの説明。512 文字に制限されています。
-
[データ型]: サポートされているデータ型には、[string]、[bigint]、[double]、[timestamp]、[decimal]、[テキスト]、[数値]、[日付/時刻]、[その他] があります。
-
[フィールドカテゴリ]: フィールドを [プライマリキー]、[パーティション]、または [属性] に設定します。
説明-
プライマリキーフィールドは1つしか設定できません。
-
string、varchar、bigint、int、tinyint、smallint 型のフィールドのみをパーティションフィールドとして使用できます。
-
-
[関連ディメンション]:詳細については、「関連ディメンションを追加する」をご参照ください。
-
[フィールド標準]:フィールドの標準を選択します。新しい標準を作成するには、「データ標準の作成と管理」をご参照ください。
-
[フィールド制約]:フィールドの制約を選択します。サポートされている制約は [一意] と [非 NULL] です。
-
[データカテゴリ]:フィールドのデータカテゴリを選択します。新しいデータカテゴリを作成するには、「新しいデータカテゴリを作成する」をご参照ください。
-
[データ分類]:データカテゴリを選択すると、システムが自動的に分類レベルを設定します。
-
[コメント]: フィールドにコメントを入力します。最大 2,048 文字です。
アクション列でフィールドを[削除]することもできます。
説明フィールドの削除は元に戻すことができません。
⑤ [バッチ操作]
複数のフィールドを選択して、次のバッチ操作を実行できます。
-
[削除]:
アイコンをクリックして、選択したデータフィールドを削除します。 -
[データ型]:
アイコンをクリックして、選択したフィールドのデータ型を変更できます。 -
[フィールドカテゴリ]: 選択したフィールドのフィールドカテゴリを変更するには、
アイコンをクリックします。 -
[ルートワード命名]:
アイコンをクリックします。 システムは、フィールドの[説明]の内容をトークン化し、作成済みのルートワードと照合して、フィールド名を推奨します。 [ルートワード命名] ダイアログボックスでは、選択したフィールドの名前を変更後の値に置き換えることができます。 次の図に例を示します。
説明-
推奨名のいずれも要件を満たさない場合は、[修正後のフィールド名] 入力ボックスで変更できます。
-
[リセット] をクリックすると、[変更後のフィールド名] がシステムで一致したルートワードに元に戻ります。
-
-
[フィールド標準]:
アイコンをクリックします。 システムは、フィールド名に基づいてフィールド標準を推奨します。 [フィールド標準] ダイアログボックスでは、推奨される標準をフィールドに適用できます。 -
[フィールド制約]:
アイコンをクリックして、選択したフィールドに制約を設定します。重要サブディメンション論理テーブルは、フィールド制約の設定をサポートしていません。
-
-
[保存して次へ] をクリックします。
ファクト論理テーブルへのフィールドの追加
-
テーブルからインポート
-
論理ファクトテーブルの設定ページで、[テーブルからインポート] をクリックします。

-
[テーブルからインポート] ダイアログボックスで、[ソーステーブル] を選択し、追加するフィールドを選択します。
パラメーター
説明
[ソーステーブル]
現在のテナント内で、読み取り権限がある任意の物理テーブル (Dataphin が自動生成したものを除く)、論理テーブル、またはビュー (パラメーター化されたビューを除く) を選択できます。
物理テーブルの読み取り権限を取得するには、「テーブル権限の申請、更新、返却」および「」をご参照ください。
[フィールドリスト]
追加するフィールドを選択します。
説明ソーステーブルを切り替えて、複数のテーブルからフィールドを選択できます。
[選択したフィールド]
追加したフィールドは [選択済みフィールド] セクションに表示され、そこで [削除] できます。
-
[追加]をクリックして、ソーステーブルから論理ファクトテーブルにフィールドをインポートします。
フィールドを [新規フィールド] エリアに追加した後、その名前、データ型、フィールドタイプ、および関連ディメンションを編集できます。
-
-
CREATE TABLE 文からインポート
メジャーフィールドのソーステーブルは、論理ファクトテーブルにプライマリキーが定義されているかどうかによって異なります。プライマリキーが定義されている場合、メインソーステーブルからのみメジャーフィールドを選択できます。それ以外の場合は、他のデータテーブルからも選択できます。
-
論理ファクトテーブルの設定ページで、[CREATE TABLE 文からインポート] をクリックします。
-
[CREATE TABLE 文からインポート] ダイアログボックスで、CREATE TABLE 文を入力し、[SQL を解析] をクリックします。

-
フィールドリストで、必要なフィールドを選択し、[追加] をクリックして論理ファクトテーブルに追加します。
-
関連ディメンションの追加
ファクト論理テーブルは、ファクト属性の外部キー列によってディメンションに関連付けられています。
-
ファクト論理テーブルの構成ページで、
アイコンをクリックし、[Edit model relationship] ダイアログボックスを開きます。
-
[モデルリレーションシップの編集] ダイアログボックスで、パラメーターを設定します。
エリア
パラメーター
説明
[NULL の置換値]
ファクト論理テーブルの外部キーが、ディメンション論理テーブルに一致するものがない場合、システムは -110 の[デフォルト値]を使用します。
[関連ディメンション]
[関連エンティティ]、[ディメンション論理テーブル]
[関連エンティティ] と [ディメンション論理テーブル] を選択します。
[関連付けロジックの編集]
[関連付けロジック]
ファクト論理テーブルからフィールドを選択し、ターゲットのディメンション論理テーブルのプライマリキーとの関係を定義します。
[ディメンションテーブルバージョニングポリシー]
デフォルトでは、システムはファクト論理テーブルと同じパーティションサイクルのバージョンを使用します。
[欠落リンクポリシー]
不明リンクポリシーでは、ファクト論理テーブル (左テーブル) のレコードに、ディメンション論理テーブル (右テーブル) で一致するレコードがない場合の処理方法として、[元の欠損データを保持] または [欠損データをデフォルト値に置換] を選択できます。
-
[元の欠損データを保持]:派生メトリクスを作成する際、システムはファクト論理テーブルの元のデータを保持します。
-
[欠損データをデフォルト値で置換]:ファクト論理テーブルのレコードがディメンション論理テーブルに一致しない場合、システムはデフォルト値 (-110) を使用して欠損値を置換します。
[ディメンションロールの編集]
[ロール英語名]、[ロール名]
ディメンションロールは、ディメンションのエイリアスとして機能します。同じディメンションを異なるコンテキストで複数回参照する場合、各参照に一意の名前が必要となるため、この機能が役立ちます。[ロール英語名]と[ロール名]を定義します:
-
[ロール英語名]には、デフォルトで
dimがプレフィックスとして付きます。名前のカスタム部分は次のルールに従う必要があります:-
英字、数字、またはアンダースコア (_) を使用できます。
-
64 文字を超えることはできません。
-
-
[ロール名]は次のルールに従う必要があります:
-
中国語の文字、数字、英字、アンダースコア (_) またはハイフン (-) を使用できます。
-
64 文字を超えることはできません。
-
-
-
[OK] をクリックします。
ステップ 3:ファクト論理テーブルの計算ロジックの設定
-
[計算ロジック] ページで、ソースデータをファクト論理テーブルの主キーに対応付けます。

-
[ソース設定] をクリックして、[ソース設定] ダイアログボックスを開きます。[ソース設定] ダイアログボックスで、ソースパラメーターを設定します。
説明-
[フィルター条件] やカスタム SQL のクエリ本文には、イベント時間に関する追加のフィルターを設定しないでください。
-
現在の論理テーブルにプライマリキーがない場合、ソースは 1 つのみ設定できます。ソースが複数のテーブルで構成されている場合は、カスタム 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カスタム SQL は、[フィルター条件] 機能をサポートしていません。
[結合キー]
論理テーブルのプライマリキーに対応するソースオブジェクト内のフィールドです。このフィールドは、プライマリキーとの等価結合に使用されます。
[操作]
プライマリソースは削除できません。
プライマリキーを持たない論理テーブルの場合、ソースを削除すると、すべてのフィールドの計算ロジックがクリアされます。
-
-
[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:スケジューリングの設定
-
[Scheduling & Parameter Settings] ページで、ファクト論理テーブルの データレイテンシー、スケジューリングプロパティ、上流依存関係、および スケジューリングパラメータとランタイム設定 を設定します。

パラメータ
説明
データレイテンシー
有効にすると、システムは [maximum latency days] で定義された期間内のこの論理テーブルのすべてのデータを自動的に再実行します。詳細については、「論理テーブルのデータレイテンシーの設定」をご参照ください。
スケジューリングプロパティ
スケジューリングプロパティを使用して、Dataphin が本番環境でファクト論理テーブルをスケジュールする方法を定義します。スケジューリングタイプ、期間、スケジューリングロジック、および実行設定を構成できます。詳細については、「論理テーブルのスケジューリングプロパティの設定」をご参照ください。
上流依存関係
この設定は、スケジュールされたタスク内のノードとして論理テーブルを定義します。Dataphin は、各ノードの依存関係設定に従って、ビジネスプロセス内のノードを実行します。これにより、ビジネスデータが正しく時間通りに生成されることが保証されます。詳細については、「論理テーブルの上流依存関係の設定」をご参照ください。
スケジューリングパラメータ
この設定では、コードで使用される変数に値を割り当てます。Dataphin がノードをスケジュールすると、これらの変数は自動的に割り当てられた値に置き換えられます。パラメータを [Ignore] するか、 [Convert to global variable] を選択できます。詳細については、「論理テーブルのパラメータ設定」をご参照ください。
ランタイム設定
ビジネスシナリオに基づいて、タスクレベルのランタイムタイムアウトと、失敗したタスクのリトライポリシーを構成できます。これにより、長時間実行されるジョブによるリソースの無駄を防ぎ、タスク実行の信頼性を向上させることができます。詳細については、「論理テーブルのランタイム設定」をご参照ください。
リソース設定
論理テーブルタスクに対してスケジューリングリソースグループを構成できます。Dataphin がタスクをスケジュールすると、このグループのリソースクォータが消費されます。設定手順については、「論理テーブルのリソース設定」をご参照ください。
ステップ 6:論理テーブルの保存と送信
-
ファクト論理テーブルを設定した後、 [保存してコミット] をクリックします。クリックすると、システムによって [テーブル構造]、 [計算ロジック]、 [スケジューリングの依存関係]、および [ランタイムパラメーター] が検証されます。チェックが失敗した場合、 [チェック結果] に従って設定を変更できます。

-
すべてのチェックに合格したら、コミットメッセージを入力して [OK とコミット] をクリックします。
送信すると、Dataphin によってデータリネージ分析と提出チェックが実行されます。詳細については、「標準化されたモデリングタスクの提出」をご参照ください。
シングルテナント・マルチエンジン
-
テーブルからインポート オプションを使用してフィールドリストを設定する場合、同じエンジンタイプを使用するプロジェクトからのみテーブルをインポートできます。
-
ソーステーブル フィールドでは、現在のプロジェクトと同じクラスター内のプロジェクトからのみテーブルを選択できます。
次のステップ
-
プロジェクトが Dev-Prod モードの場合は、論理テーブルを本番環境に発行してください。詳細については、「デプロイメントタスクの管理」をご参照ください。
-
論理テーブルを本番環境に発行した後、オペレーションセンターで論理テーブルのタスクを表示および管理できます。詳細については、「オペレーションセンター」をご参照ください。