ディメンションは、ディメンショナルモデリングの基本単位です。ディメンショナルモデリングでは、メジャーはファクトと呼ばれ、環境はディメンションと呼ばれます。ディメンションテーブルには、ファクトテーブルの特定の属性に関する詳細が含まれています。一般的なディメンションには、日付ディメンションと都市ディメンションがあります。このトピックでは、ディメンションテーブルを作成する方法について説明します。
前提条件
共通レイヤーは、共通データを処理および統合して、統一されたディメンションテーブルを定義するために使用されます。アプリケーションレイヤーは、ビジネス要件に基づいて、共通レイヤーで処理および統合されたデータを再構築するために使用されます。ビジネス要件に基づいて、共通レイヤーまたはアプリケーションレイヤーでディメンションテーブルを作成できます。次の表は、特定のデータレイヤーでディメンションテーブルを作成する前に満たす必要がある前提条件を示しています。
データレイヤカテゴリ | 前提条件 | 参照 |
共通レイヤー | 共通レイヤーが作成されます。ディメンションテーブルは、共通レイヤーまたはアプリケーションレイヤーに属している必要があります。 | |
データドメインが作成されます。データドメインは、ディメンションテーブルに格納されているビジネスデータの観点を決定するために使用されます。 | ||
アプリケーションレイヤー | アプリケーションレイヤーが作成されます。ディメンションテーブルは、共通レイヤーまたはアプリケーションレイヤーに属している必要があります。 | |
データマートが作成されます。アプリケーションレイヤーのディメンションテーブルは、特定のプロダクトまたはシナリオのデータを整理するために使用されるデータマートに属している必要があります。 |
背景情報
各データドメインに存在する可能性のあるすべてのディメンションを抽出し、ディメンションとディメンションの属性をディメンションテーブルに格納します。たとえば、eコマースのビジネスデータを分析する場合、考えられるディメンション(各ディメンションの属性)には、注文(注文 ID、注文作成時間、購入者 ID、販売者 ID)、ユーザー(性別、生年月日)、商品(商品 ID、商品名、商品棚卸時間)などがあります。次のディメンションテーブルを作成できます。注文ディメンションテーブル、ユーザーディメンションテーブル、商品ディメンションテーブル。各ディメンションの属性は、ディメンションテーブルのフィールドとして使用されます。ディメンションテーブルをデータウェアハウスにデプロイし、ETL(抽出・変換・書き出し)操作を実行して、ディメンションテーブルで定義された形式でディメンションデータを格納できます。これにより、ビジネス担当者は後続のデータ分析のためにデータにアクセスできます。
前の図に示すように:
ディメンションテーブルを作成するときは、次の操作を実行できます。
ディメンションテーブルを作成するビジネスカテゴリまたはデータドメインを指定できます。特定のデータドメインまたはデータマート内のすべてのディメンションテーブルを表示できます。
ディメンションテーブルを作成するデータレイヤーを指定できます。ほとんどの場合、ディメンションテーブルは、共通レイヤカテゴリに属するディメンション(DIM)レイヤーに格納されます。
ディメンションテーブルを作成した後、ディメンションテーブルのフィールドとしてディメンション属性を追加できます。また、ディメンションテーブルを他のディメンションテーブルのフィールドに関連付けたり、ディメンションテーブルをパーティション分割したり、同じフィールド標準を使用してフィールドの値の範囲を定義したりすることもできます。これにより、ディメンションデータの属性がデータドメイン全体で一貫性が保たれます。
ディメンションテーブルを作成および構成した後、次の操作を実行できます。
ディメンションテーブルを公開し、コンピュートエンジンインスタンスにマテリアライズできます。ディメンションテーブルは、データ分析のためにコンピュートエンジンインスタンスで使用できます。
派生メトリクスと集計テーブルを設計および作成するときに、ディメンションテーブルのフィールドを直接関連付けて使用できます。
ディメンションテーブルを作成する
データモデリングページに移動します。
DataWorks コンソール にログオンします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[データモデリングに移動] をクリックします。
[データモデリング] ページの上部ナビゲーションバーで、[ディメンショナルモデリング] をクリックして、[ディメンショナルモデリング] ページに移動します。
ディメンションテーブルを作成します。
[ディメンショナルモデリング] ページで、ポインタを
アイコンの上に移動し、 を選択します。表示される構成タブの [基本情報] セクションで、ディメンションテーブルの基本情報を構成します。
ディメンションテーブルのデータレイヤー、データドメイン、ビジネスカテゴリ、マートなどのパラメータを構成できます。ディメンションテーブルが作成されると、指定されたデータレイヤー、データドメイン、ビジネスカテゴリ、またはデータマートで表示できます。この例では、共通ディメンションテーブルが作成されます。
次の表に、主要なパラメータを示します。パラメータ
説明
[データドメイン]
ディメンションテーブルが属するデータドメイン。
[ビジネスカテゴリ]
ディメンションテーブルが属するビジネスカテゴリ。
[ストレージポリシー]
データの保存期間やデータのボリューム範囲など、ディメンションテーブルにデータを保存するためのポリシー。
[ディメンションテーブル]
ディメンションテーブルに関連付けるディメンション。このディメンションに基づいて、ディメンションテーブルのデータを分析できます。
説明ディメンションの作成方法については、「概念モデルの作成:ディメンション」をご参照ください。
[命名規則]
ディメンションテーブルの名前が構成された命名規則に準拠しているかどうかを確認するために使用されるチェッカー。チェッカーを選択した後、チェッカーで構成された命名規則に基づいて、[名前] パラメータを構成する必要があります。
説明チェッカーの構成方法については、「データウェアハウスレイヤーチェッカーを構成する」をご参照ください。
[名前]
ディメンションテーブルの名前。[命名規則] パラメータを構成する場合、指定する名前は、[命名規則] パラメータで指定されたチェッカーで定義されている命名規則に準拠している必要があります。
[表示名]
ディメンションテーブルの表示名。
[ライフサイクル]
ディメンションテーブルのライフサイクル。単位:日。このパラメータの最大値は 36000 です。
[所有者]
ディメンションテーブルの所有者。デフォルトの所有者は、ディメンションテーブルの作成者です。
[説明]
ディメンションテーブルの説明。
構成が完了したら、構成タブの上部にある [保存] をクリックします。
ディメンショナルモデリングページの左側のナビゲーションツリーで、指定されたデータドメインまたはビジネスカテゴリ内のディメンションテーブルを表示および管理できます。
ディメンションテーブルのフィールドを追加する
ディメンションテーブルの基本情報を構成した後、ディメンションテーブルのフィールドを追加する必要があります。
FML(高速モデリング言語)ステートメントを使用して、テーブルのフィールドを追加したり、フィールドの属性を構成したり、テーブルの関連付けとパーティションを構成したりできます。詳細については、「FML ステートメントを使用してデータテーブルを構成および管理する」をご参照ください。
ディメンションテーブルのフィールドは、[ショートカットモード] または [スクリプトモード] で追加できます。[ショートカットモード] は、ディメンションテーブルにフィールドを追加するための次の方法をサポートしています:[テーブル/ビューからインポート]。この方法を使用してディメンションテーブルにフィールドを追加するには、[既存のテーブル/ビューを検索] ドロップダウンリストから選択した物理テーブルまたはビューのすべてまたは特定のフィールドをディメンションテーブルにインポートする必要があります。
MaxCompute、Hologres、および E-MapReduce(EMR)Hive コンピュートエンジンインスタンス内で作成された物理テーブルまたはビューからのみフィールドをインポートできます。
[ショートカットモード]:[テーブル/ビューからインポート]

[展開] をクリックして、 の横にある
[既存のテーブル/ビューを検索] ドロップダウンリストで、左側のリストからコンピュートエンジンの種類を選択し、キーワードを入力して、表示された検索結果から目的の物理テーブルまたはビューを右側のリストから選択します。選択した物理テーブルまたはビューの名前の横にある次のアイコンをクリックして、物理テーブルまたはビューのすべてまたは特定のフィールドをディメンションテーブルにインポートします。
説明目的の物理テーブルまたはビューを検索する場合、キーワードベースのあいまい一致がサポートされています。キーワードを入力すると、名前にキーワードが含まれるすべての物理テーブルまたはビューが表示されます。
本番環境のテーブルのみを検索できます。開発環境のテーブルは検索できません。
:選択した物理テーブルまたはビューのすべてのフィールドをディメンションテーブルにインポートします。
:選択した物理テーブルまたはビューの特定のフィールドをディメンションテーブルにインポートします。
特定のフィールドをインポートすることを選択した場合は、表示されるダイアログボックスで物理テーブルまたはビューからフィールドを選択します。次に、[インポート] をクリックします。
説明インポートされたフィールドのいずれかに [表示名] がない場合は、プロンプトが表示されたら、フィールドの説明をフィールドの表示名として入力できます。
[スクリプトモード]
[スクリプトモード] では、コードを編集してテーブルのフィールドを管理できます。[スクリプトモード] をクリックすると、テーブルを作成するために使用されるステートメントが [スクリプトモード] ダイアログボックスのコードエディタに表示されます。ビジネス要件に基づいてステートメントを変更できます。次に、[OK] をクリックします。
ディメンションテーブルのフィールドの属性と関連付けを構成する
テーブルにフィールドが追加された後、フィールドの [関連付けるフィールド標準]、[冗長フィールド]、および [関連付けられた粒度/メトリック] を構成できます。
テーブルのフィールドの属性を構成します。
デフォルトでは、フィールドには次の基本属性が表示されます:[フィールド名]、[データ型]、[フィールド表示名]、[説明]、[主キー]、[NULL 不可]、および [アクション]。追加されたフィールドのリストの右上隅にある [フィールド表示設定] をクリックして、表示する属性を選択できます。また、ビジネス要件に基づいて属性の値を変更することもできます。
テーブルのフィールドの [関連付けるフィールド標準] と [関連付けるルックアップテーブル] を構成します。
テーブルのフィールドの [関連付けるフィールド標準] と [関連付けるルックアップテーブル] を構成することにより、フィールド標準とルックアップテーブルを追加されたフィールドに関連付けることができます。
[関連付けるフィールド標準]:同じ意味を持つが名前が異なるフィールドの値を一元管理できます。フィールド標準は、フィールドの値の範囲と測定単位を定義するためにも使用できます。
[関連付けるルックアップテーブル]:フィールド標準を使用するフィールドの値の範囲を定義できます。
テーブルのフィールドの [冗長フィールド] を構成します。
従来のスターモデルでは、ディメンションはディメンションテーブルに格納されます。ファクトテーブルの外部キーを使用してディメンションを取得し、必要なストレージスペースを削減します。DataWorks データモデリングのディメンションモデル設計では、ユーザー ID や一般的に使用される分析ディメンションなど、頻繁に使用されるフィールドを冗長フィールドとして構成して、ダウンストリームクエリの効率を向上させ、データ取得操作を簡素化し、関連付ける必要があるテーブルの数を減らすことができます。
例 1:「配送先住所」ディメンションテーブルの「配送先住所」ディメンションの「荷受人住所」属性と「荷受人携帯電話番号」属性を、「注文作成」ファクトテーブルの冗長フィールドとして構成できます。
例 2:「商品情報」テーブルの「調達情報」属性と「ブランド情報」属性を、「商品」ディメンションテーブルの冗長フィールドとして構成できます。
冗長フィールドを構成するフィールドを見つけ、[アクション] 列の [冗長フィールド] をクリックします。表示されるダイアログボックスで、フィールドに関連付ける 1 つ以上のフィールドを選択し、[保存] をクリックします。

次に、テーブルの構成タブの上部にある [保存] をクリックします。
次の手順
上記の構成が完了したら、テーブルのパーティションを構成し、必要な環境にテーブルを公開する必要があります。詳細については、「テーブルをコンピュートエンジンにマテリアライズする」をご参照ください。