ディメンションはディメンションモデリングの基礎です。このモデリングアプローチでは、メジャーはファクトとして知られ、これらのファクトを説明するコンテキストはディメンションと呼ばれます。ディメンションテーブルには、日付や都市など、ファクトテーブルから参照される属性に関する詳細情報が含まれています。このトピックでは、ディメンションテーブルの作成方法について説明します。
概要
各データドメインに存在する可能性のあるすべてのディメンションを抽出し、ディメンションとその属性をディメンションテーブルに格納します。たとえば、e コマースのビジネスデータを分析する場合、考えられるディメンション (各ディメンションの属性) には、注文 (注文 ID、注文作成時間、購入者 ID、販売者 ID)、ユーザー (性別、生年月日)、商品 (商品 ID、商品名、商品棚入れ時間) が含まれます。注文ディメンションテーブル、ユーザーディメンションテーブル、商品ディメンションテーブルを作成できます。各ディメンションの属性は、ディメンションテーブルのフィールドとして使用されます。ディメンションテーブルをデータウェアハウスにデプロイし、抽出、変換、ロード (ETL) 操作を実行して、ディメンションテーブルで定義されたフォーマットでディメンションデータを格納できます。これにより、ビジネス担当者は後続のデータ分析のためにデータにアクセスできます。
上の図は、以下の概念を示しています:
ディメンションテーブルを作成する場合:
ディメンションテーブルのデータを格納するデータウェアハウスレイヤーを指定できます。通常、ディメンションテーブルは共通層 (DIM) に格納されますが、アプリケーション層に格納することもできます。デフォルトでは、アプリケーション層ではアプリケーションテーブルの作成のみが許可されます。アプリケーション層でディメンションテーブルを作成するには、新しいアプリケーション層を作成し、そのモデルタイプを Dimension または ディメンションテーブル、ディメンション に設定する必要があります。詳細については、「データウェアハウスレイヤーの定義」をご参照ください。
選択したデータウェアハウスレイヤーに応じて、ディメンションテーブルをビジネスカテゴリ配下の特定のデータドメイン、またはデータマートとサブジェクトエリアに関連付けることができます。これにより、データドメインまたはデータマートの観点からテーブルを整理し、管理を簡素化します。
ディメンションテーブルを作成した後、ディメンションを属性としてテーブルに追加し、関連付けとパーティションを設定し、フィールド定義に一貫したフィールド標準またはルックアップテーブルを使用できます。これにより、すべてのデータドメインでディメンションデータの属性の一貫性が確保されます。
ディメンションテーブルを設定した後:
ストレージエンジンにマテリアライズして、コンピュートエンジンでデータ分析を行うことができます。
派生メトリクスとサマリーテーブルを設計する際に、ディメンションテーブルのフィールドを直接参照して使用できます。
前提条件
共通層は、共有データを処理・統合して、企業全体で統一されたディメンションテーブルを確立します。アプリケーション層は、共通層のデータを使用して、アプリケーションのニーズに基づいたビジネス固有のディメンションテーブルを構築し、カスタムデータ開発をサポートします。ディメンションテーブルは、共通層またはアプリケーション層のいずれかで作成できます。
データレイヤー | 前提条件 | リファレンス |
Common Layer | 共通層にデータウェアハウスレイヤーを作成済みであること。これにより、ディメンションテーブルが属するレイヤーが決定されます。 | |
データドメインを作成済みであること。これにより、ディメンションテーブルのビジネスデータの観点が決定されます。 | ||
Application Layer | アプリケーション層にデータウェアハウスレイヤーを作成済みであること。これにより、ディメンションテーブルが属するレイヤーが決定されます。 | |
データマートを作成済みであること。これにより、特定のアプリケーションまたはプロダクトに対してディメンションテーブルが提供するデータカテゴリが決定されます。 |
ディメンションテーブルの作成
データモデリングページに移動します。
DataWorks コンソールにログインします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、データモデリングへ をクリックします。
Data Modeling ページで、Dimensional Modeling をクリックして Dimensional Modeling ページを開きます。
ディメンションテーブルを作成します。
Dimensional Modeling ページで、
アイコンにカーソルを合わせ、 を選択します。ディメンションテーブルの基本情報を設定します。
要件に応じて、ディメンションテーブルのレイヤー、データドメイン、ビジネスカテゴリ、データマートを選択できます。これらの選択を行うと、対応するオブジェクトリストに作成されたディメンションテーブルが表示されます。このトピックでは、共通層のディメンションテーブルを例として使用します。
次の表に、主要なパラメーターを示します。パラメーター
説明
Data Layer
ディメンションテーブルのデータウェアハウスレイヤーを選択します。レイヤーごとに異なるビジネスシナリオに対応します:
Common Layer:共有データを処理・統合して、企業全体で統一されたディメンションテーブルを作成します。このレイヤーを選択した場合は、データドメインも指定する必要があります。データドメインの作成方法の詳細については、「データドメイン」をご参照ください。
Application Layer:特定のアプリケーション向けに、ビジネス固有のディメンションテーブルを構築します。このレイヤーを選択した場合は、データマートも指定する必要があります。データマートの作成方法の詳細については、「データマート」をご参照ください。
説明デフォルトでは、アプリケーション層ではアプリケーションテーブルの作成のみが許可されます。アプリケーション層でディメンションテーブルを作成するには、新しいアプリケーション層を作成し、そのモデルタイプを Dimension または ディメンションテーブル、ディメンション に設定する必要があります。詳細については、「データウェアハウスレイヤーの定義」をご参照ください。
Business Category
[データレイヤーカテゴリ] で [共通層] を選択した場合、ディメンションテーブルのビジネスカテゴリを選択できます。
Data Domain
[データレイヤーカテゴリ] で [共通層] を選択した場合、ディメンションテーブルのデータドメインを選択できます。
Category/Mart/Subject
[データレイヤーカテゴリ] で [アプリケーション層] を選択した場合、ビジネスカテゴリ配下のデータマートまたはサブジェクトエリアを選択する必要があります。
Storage Policy
ディメンションテーブルのデータ保持期間とデータ量を定義するポリシー。
Dimension
ディメンションテーブルに関連付けられたディメンション。データ分析の観点を定義するために使用されます。
説明ディメンションの作成方法の詳細については、「概念モデル:ディメンション」をご参照ください。
Naming Rule
命名規則を強制するチェッカー。チェッカーを選択した場合、テーブルの Table Name はそのルールに従う必要があります。
説明チェッカーの設定方法の詳細については、「データウェアハウスレイヤーチェッカーの設定」をご参照ください。
Table Name
ディメンションテーブルの名前。命名規則を設定している場合、テーブル名はそのルールに従う必要があります。
Table Display Name
ディメンションテーブルの表示名。
Lifecycle
ディメンションテーブルの保持期間。最大保持期間は 36,000 日です。
Owner
ディメンションテーブルの責任者。デフォルトでは、テーブルを作成したユーザーになります。
Description
ディメンションテーブルの説明。
パラメーターを設定した後、Save をクリックしてディメンションテーブルを作成します。
ディメンショナルモデリングページの左側のナビゲーションツリーで、対応するデータドメインまたはビジネスカテゴリ配下でディメンションテーブルを見つけて管理できます。
テーブルへのフィールドの追加
モデルを作成した後、フィールドを追加します。
Shortcut Mode または Script Mode でテーブルにフィールドを追加できます。Shortcut Mode では、Import from Table/View 機能を使用して、コンピュートエンジン内の既存の物理テーブルまたはビューからフィールドをインポートできます。既存のテーブル/ビューを検索 ドロップダウンリストからテーブルまたはビューを選択して、そのフィールドをインポートします。
ショートカットモード
フィールドは、MaxCompute、Hologres、および E-MapReduce (EMR) Hive エンジンのテーブルまたはビューからのみインポートできます。


Shortcut Mode で、Import from Table/View の横にある Expand をクリックします。
既存のテーブル/ビューを検索 検索ボックスに名前を入力して、対象のテーブルまたはビューを検索して選択します。テーブルが参照されると、テーブルまたはビューからすべてのフィールドまたは特定のフィールドをインポートすることを選択できます。
説明あいまい検索がサポートされています。キーワードを入力して、名前にそのキーワードが含まれるすべてのテーブルまたはビューを検索できます。
本番環境のテーブルのみを検索できます。開発環境のテーブルはサポートされていません。
アイコンは、すべてのフィールドがインポートされることを示します。
アイコンは、特定のフィールドがインポートされることを示します。
特定のフィールドをインポートすることを選択した場合、選択したテーブルのフィールドを表示するダイアログボックスが表示されます。モデルに追加するフィールドを選択し、ダイアログボックスの下部にある Import をクリックします。
インポートされたフィールドの Field Display Name が空の場合、画面のプロンプトに従って、フィールドの説明で表示名を入力できます。
スクリプトモード
FML 文を使用して、フィールド、関連付け、およびパーティションを作成することもできます。詳細については、「スクリプトモードモデリング」をご参照ください。
Code Mode では、コードを記述してディメンションテーブルを作成できます。ディメンションテーブルの基本情報を入力して保存した後、Script Mode をクリックします。設定されたモデル情報に基づいて自動生成されたモデリング言語を含むダイアログボックスが表示されます。ここでモデル情報を変更し、OK をクリックします。
フィールド情報の設定
モデルにフィールドを追加した後、各フィールドに Associated Field、Redundant Field、および Associated Granularity/Metric を設定できます。
フィールド属性を設定します。
デフォルトで表示されるフィールド属性には、Field Name、Type、Field Display Name、Description、Primary Key、Not Null、Measurement Unit、および Actions が含まれます。フィールドリストの右上隅にある Field Display Settings をクリックして、表示する属性を選択し、必要に応じて変更します。
フィールドを Field Standard to Associate および Lookup Table to Associate に関連付けます。これにより、追加されたフィールドをフィールド標準およびルックアップテーブルに関連付けて、フィールド値の内容と範囲を標準化できます。
または、フィールドを設定した後、フィールドリストの右上隅にある関連付けボタンをクリックして、すべてのフィールドに対して Atomic Metric、Lookup Table、および Field Standard を一度に設定することもできます。
Field Standard to Associate:同じ意味を持つがフィールド名が異なるデータを標準化し、管理します。フィールドの値の範囲、計量単位、およびその他のプロパティを定義します。
Lookup Table to Associate:特定のフィールド標準に対して選択可能なデータの内容と範囲を定義します。
Redundant Field を設定します。
従来のディメンションモデリングのスタースキーマでは、ディメンションはディメンションテーブルに格納され、ファクトテーブルの外部キーを介してアクセスされます。この設計は、ストレージ消費を削減するのに役立ちます。対照的に、DataWorks Intelligent Data Modeling のディメンションモデルでは、ユーザー ID や一般的な分析ディメンションなど、頻繁にアクセスされる属性に冗長フィールドをよく使用します。この手法は非正規化の一形態であり、下流のクエリパフォーマンスを向上させ、データ取得を簡素化し、テーブル結合の必要性を減らします。
例 1:`order_creation_details` テーブルには、`shipping_address_dimension` テーブルからの冗長なディメンション属性 (例:`shipping_address`、`recipient_phone_number`) を含めることができます。
例 2:`product_dimension` テーブルには、`product_information` テーブルからの冗長な属性 (例:`procurement_information`、`brand_information`) を含めることができます。
フィールドの Actions 列で、Redundant Field をクリックして、その関連フィールドを設定します。

設定が完了したら、左上隅の Save をクリックします。
次のステップ
ディメンションテーブルを作成した後、フィールド管理、関連付け、およびパーティション設定も行う必要があります。また、テーブルを適切な環境に公開する必要もあります。詳細については、次のトピックをご参照ください: