ディメンションは、ディメンションモデリングの基本単位です。ディメンションモデリングでは、メジャーはファクトと呼ばれ、環境はディメンションと呼ばれます。ディメンションテーブルには、ファクトテーブルの特定の属性に関する詳細情報が含まれています。一般的なディメンションには、日付ディメンションや都市ディメンションなどがあります。このトピックでは、ディメンションテーブルの作成方法について説明します。
前提条件
共通レイヤーは、共通データを処理および統合して、統一されたディメンションテーブルを定義するために使用されます。アプリケーションレイヤーは、ビジネス要件に基づいて、共通レイヤーで処理および統合されたデータを再構築するために使用されます。ビジネス要件に基づいて、共通レイヤーまたはアプリケーションレイヤーにディメンションテーブルを作成できます。次の表に、特定のデータレイヤーにディメンションテーブルを作成する前に満たす必要がある前提条件を示します。
データレイヤカテゴリ | 前提条件 | 参照 |
共通レイヤー | 共通レイヤーが作成されます。ディメンションテーブルは、共通レイヤーまたはアプリケーションレイヤーに属している必要があります。 | |
データドメインが作成されます。データドメインは、ディメンションテーブルに格納されているビジネスデータの観点を決定するために使用されます。 | ||
アプリケーションレイヤー | アプリケーションレイヤーが作成されます。ディメンションテーブルは、共通レイヤーまたはアプリケーションレイヤーに属している必要があります。 | |
データマートが作成されます。アプリケーションレイヤーのディメンションテーブルは、特定の製品またはシナリオのデータを整理するために使用されるデータマートに属している必要があります。 |
背景情報
各データドメインに存在する可能性のあるすべてのディメンションを抽出し、ディメンションとディメンションの属性をディメンションテーブルに格納します。たとえば、eコマースのビジネスデータを分析する場合、考えられるディメンション(各ディメンションの属性)には、注文(注文 ID、注文作成時刻、購入者 ID、販売者 ID)、ユーザー(性別、生年月日)、商品(商品 ID、商品名、商品棚卸し時刻)などがあります。注文ディメンションテーブル、ユーザーディメンションテーブル、商品ディメンションテーブルなどのディメンションテーブルを作成できます。各ディメンションの属性は、ディメンションテーブルのフィールドとして使用されます。ディメンションテーブルをデータウェアハウスにデプロイし、抽出、変換、ロード(ETL)操作を実行して、ディメンションテーブルで定義された形式でディメンションデータを格納できます。これにより、ビジネス担当者は後続のデータ分析のためにデータにアクセスできます。
前の図に示すように:
ディメンションテーブルを作成するときは、次の操作を実行できます。
ディメンションテーブルを作成するビジネスカテゴリまたはデータドメインを指定できます。特定のデータドメインまたはデータマート内のすべてのディメンションテーブルを表示できます。
ディメンションテーブルを作成するデータレイヤーを指定できます。ほとんどの場合、ディメンションテーブルは、共通レイヤカテゴリに属するディメンション(DIM)レイヤーに格納されます。
ディメンションテーブルを作成した後、ディメンションテーブルのフィールドとしてディメンション属性を追加できます。また、ディメンションテーブルを他のディメンションテーブルのフィールドに関連付けたり、ディメンションテーブルをパーティション分割したり、同じフィールド標準を使用してフィールドの値の範囲を定義したりすることもできます。これにより、データドメイン全体でディメンションデータの属性の一貫性が確保されます。
ディメンションテーブルを作成および構成した後、次の操作を実行できます。
ディメンションテーブルを公開し、計算エンジンインスタンスにマテリアライズできます。ディメンションテーブルは、データ分析のために計算エンジンインスタンスで使用できます。
派生メトリックと集計テーブルを設計および作成するときに、ディメンションテーブルのフィールドを直接関連付けて使用できます。
ディメンションテーブルの作成
データモデリングページに移動します。
DataWorksコンソール にログオンします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションペインで、 を選択します。表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[データモデリングに移動] をクリックします。
[データモデリング] ページの上部ナビゲーションバーで、[ディメンションモデリング] をクリックして、[ディメンションモデリング] ページに移動します。
ディメンションテーブルを作成します。
[ディメンションモデリング] ページで、
アイコンにポインターを移動し、 を選択します。
表示される構成タブの [基本情報] セクションで、ディメンションテーブルの基本情報を構成します。
ディメンションテーブルのデータレイヤー、データドメイン、ビジネスカテゴリ、マートなどのパラメーターを構成できます。ディメンションテーブルが作成されると、指定されたデータレイヤー、データドメイン、ビジネスカテゴリ、またはデータマートで表示できます。この例では、共通ディメンションテーブルが作成されます。
次の表に、主要なパラメーターを示します。
パラメーター
説明
データドメイン
ディメンションテーブルが属するデータドメイン。
ビジネスカテゴリ
ディメンションテーブルが属するビジネスカテゴリ。
ストレージポリシー
データの保存期間やデータのボリューム範囲など、ディメンションテーブルにデータを保存するためのポリシー。
ディメンションテーブル
ディメンションテーブルに関連付けるディメンション。このディメンションに基づいて、ディメンションテーブルのデータを分析できます。
説明ディメンションの作成方法については、「概念モデルの作成:ディメンション」をご参照ください。
ネーミングルール
ディメンションテーブルの名前が構成されたネーミング規則に準拠しているかどうかを確認するために使用されるチェッカー。チェッカーを選択した後、チェッカーで構成されたネーミング規則に基づいて名前パラメーターを構成する必要があります。
説明チェッカーの構成方法については、「データレイヤーでのチェッカーの構成と使用」をご参照ください。
名前
ディメンションテーブルの名前。ネーミングルールパラメーターを構成する場合、指定する名前は、ネーミングルールパラメーターで指定されたチェッカーで定義されているネーミング規則に準拠している必要があります。
表示名
ディメンションテーブルの表示名。
ライフサイクル
ディメンションテーブルのライフサイクル。単位:日。このパラメーターの最大値は 36000 です。
所有者
ディメンションテーブルの所有者。デフォルトの所有者は、ディメンションテーブルの作成者です。
説明
ディメンションテーブルの説明。
構成が完了したら、構成タブの上部にある [保存] をクリックします。
ディメンションモデリングページの左側のナビゲーションツリーで、指定されたデータドメインまたはビジネスカテゴリ内のディメンションテーブルを表示および管理できます。
ディメンションテーブルのフィールドの追加
ディメンションテーブルの基本情報を構成した後、ディメンションテーブルのフィールドを追加する必要があります。
高速モデリング言語(FML)ステートメントを使用して、テーブルのフィールドを追加したり、フィールドの属性を構成したり、テーブルの関連付けとパーティションを構成したりできます。詳細については、「FMLステートメントを使用したデータテーブルの構成と管理」をご参照ください。
ディメンションテーブルのフィールドは、[ショートカットモード] または [スクリプトモード] で追加できます。[ショートカットモード] では、ディメンションテーブルにフィールドを追加するために、[テーブル/ビューからインポート] という方法がサポートされています。この方法を使用してディメンションテーブルにフィールドを追加するには、[既存のテーブル/ビューの検索] ドロップダウンリストから選択した物理テーブルまたはビューのすべてまたは特定のフィールドをディメンションテーブルにインポートする必要があります。
MaxCompute、Hologres、E-MapReduce(EMR)Hive計算エンジンインスタンス内で作成された物理テーブルまたはビューからのみフィールドをインポートできます。
[ショートカットモード]:[テーブル/ビューからインポート]
[展開] をクリックし、 の横にある
[既存のテーブル/ビューの検索] ドロップダウンリストで、左側のリストから計算エンジンの種類を選択し、キーワードを入力して、表示された検索結果から目的の物理テーブルまたはビューを右側のリストから選択します。選択した物理テーブルまたはビューの名前の横にある次のアイコンをクリックして、物理テーブルまたはビューのすべてまたは特定のフィールドをディメンションテーブルにインポートします。
説明目的の物理テーブルまたはビューを検索する場合、キーワードベースのあいまい一致がサポートされています。キーワードを入力すると、名前にキーワードが含まれるすべての物理テーブルまたはビューが表示されます。
本番環境のテーブルのみを検索できます。開発環境のテーブルは検索できません。
:選択した物理テーブルまたはビューのすべてのフィールドをディメンションテーブルにインポートします。
:選択した物理テーブルまたはビューの特定のフィールドをディメンションテーブルにインポートします。
特定のフィールドをインポートすることを選択した場合は、表示されるダイアログボックスで物理テーブルまたはビューからフィールドを選択します。次に、[インポート] をクリックします。
説明インポートされたフィールドのいずれかに 表示名 がない場合は、プロンプトが表示されたら、フィールドの説明を表示名として入力できます。
[スクリプトモード]
[スクリプトモード] では、コードを編集してテーブルのフィールドを管理できます。[スクリプトモード] をクリックすると、テーブルを作成するために使用されるステートメントが [スクリプトモード] ダイアログボックスのコードエディターに表示されます。ビジネス要件に基づいてステートメントを変更できます。次に、[OK] をクリックします。
ディメンションテーブルのフィールドの属性と関連付けの構成
テーブルにフィールドが追加された後、フィールドの 関連付けるフィールド標準、冗長フィールド、関連付けられた粒度/メトリック を構成できます。
テーブルのフィールドの属性を構成します。
デフォルトでは、フィールドには次の基本属性が表示されます:フィールド名、データ型、フィールド表示名、説明、主キー、NULL不可、アクション。追加されたフィールドのリストの右上隅にある [フィールド表示設定] をクリックして、表示する属性を選択できます。また、ビジネス要件に基づいて属性の値を変更することもできます。
テーブルのフィールドの 関連付けるフィールド標準 と 関連付けるルックアップテーブル を構成します。
テーブルのフィールドの [関連付けるフィールド標準] と [関連付けるルックアップテーブル] を構成することにより、フィールド標準とルックアップテーブルを追加されたフィールドに関連付けることができます。
関連付けるフィールド標準:同じ意味を持つが名前が異なるフィールドの値を一元管理できます。フィールド標準は、フィールドの値の範囲と測定単位を定義するためにも使用できます。
関連付けるルックアップテーブル:フィールド標準を使用するフィールドの値の範囲を定義できます。
テーブルのフィールドの 冗長フィールド を構成します。
従来のスターモデルでは、ディメンションはディメンションテーブルに格納されます。ファクトテーブルの外部キーを使用してディメンションを取得し、必要なストレージスペースを削減します。DataWorksデータモデリングのディメンションモデル設計では、ユーザー ID や一般的に使用される分析ディメンションなど、頻繁に使用されるフィールドを冗長フィールドとして構成して、ダウンストリームクエリ効率を向上させ、データ取得操作を簡素化し、関連付ける必要があるテーブルの数を減らすことができます。
例 1:「配送先住所」ディメンションテーブルの「配送先住所」ディメンションの「荷受人住所」属性と「荷受人携帯電話番号」属性を、「注文作成」ファクトテーブルの冗長フィールドとして構成できます。
例 2:「商品情報」テーブルの「調達情報」属性と「ブランド情報」属性を、「商品」ディメンションテーブルの冗長フィールドとして構成できます。
冗長フィールドを構成するフィールドを見つけて、[アクション] 列の [冗長フィールド] をクリックします。表示されるダイアログボックスで、フィールドに関連付ける 1 つ以上のフィールドを選択し、[保存] をクリックします。
次に、テーブルの構成タブの上部にある [保存] をクリックします。
次のステップ
上記の構成が完了したら、テーブルのパーティションを構成し、必要な環境にテーブルを公開する必要があります。詳細については、「テーブルを計算エンジンにマテリアライズする」をご参照ください。