すべてのプロダクト
Search
ドキュメントセンター

DataWorks:論理モデルの作成:ディメンションテーブル

最終更新日:Aug 25, 2026

ディメンションは、ディメンショナルモデリングの基礎です。ディメンショナルモデリングでは、測定値は「ファクト」と呼ばれ、これらのファクトを説明するコンテキストは「ディメンション」と呼ばれます。ディメンションテーブルには、ファクトテーブルの特定の属性に関する詳細情報が含まれます。一般的な例としては、日付や都市のディメンションがあります。本トピックでは、ディメンションテーブルの作成方法について説明します。

DataWorks のデータモデリング機能は、Kimball のディメンショナルモデリング手法に従っています。ディメンションテーブル、ファクトテーブル、集計テーブル、アプリケーションテーブルを設計・作成し、モデルを開発エンジンに発行し、既存の物理テーブルを論理モデルにリバースモデリングします。

モデリングの視点

ディメンショナルモデリングでは、モデルテーブルを共通レイヤー、アプリケーションレイヤー、未分類の 3 つのレベルに整理します。共通レイヤーは、再利用可能な統一されたメトリクス、ディメンション、詳細なファクトデータを構築し、データドメインまたは業務カテゴリの視点からの管理をサポートします。アプリケーションレイヤーは、ビジネス固有の統計ニーズに対応し、業務カテゴリの視点のみをサポートします。レベルを選択した後、対応するディレクトリツリーでモデルテーブルを作成および管理できます。

仕組み

各データドメインに存在しうるすべてのディメンションを抽出し、ディメンションとその属性をディメンションテーブルに格納します。たとえば、E コマースのビジネスデータを分析する場合、考えられるディメンション (各ディメンションの属性) には、注文 (注文 ID、注文作成日時、購入者 ID、販売者 ID)、ユーザー (性別、生年月日)、商品 (商品 ID、商品名、商品棚入れ日時) などがあります。注文ディメンションテーブル、ユーザーディメンションテーブル、商品ディメンションテーブルといったディメンションテーブルを作成できます。各ディメンションの属性は、ディメンションテーブルのフィールドとして使用されます。ディメンションテーブルをデータウェアハウスにデプロイし、抽出、変換、ロード (ETL) 操作を実行して、ディメンションテーブルで定義された形式でディメンションデータを格納できます。これにより、ビジネス担当者は後続のデータ分析のためにデータにアクセスできるようになります。

image

上の図に示すように:

  • ディメンションテーブルを作成する場合:

    • 分析のためにディメンションテーブルのデータが格納されるデータウェアハウスレイヤーを指定できます。通常、ディメンションテーブルは共通レイヤーにありますが、アプリケーションレイヤーに配置することもできます。デフォルトでは、アプリケーションレイヤーではアプリケーションテーブルの作成のみが許可されています。アプリケーションレイヤーにディメンションテーブルを作成する必要がある場合は、新しいアプリケーションレイヤーを作成し、そのモデルタイプをディメンション または [ディメンションテーブル、ディメンション] に設定する必要があります。詳細については、「カスタムレイヤー」をご参照ください。

    • これにより、データドメインまたはデータマートの視点からディメンションテーブルを管理できます。

  • ディメンションテーブルを作成した後、その属性としてディメンションを追加し、その関連とパーティションを設定できます。フィールド設定に統一されたカラム標準またはルックアップテーブルを使用して、データドメイン全体で属性の一貫性を確保します。

  • ディメンションテーブルが設定された後:

    • それをストレージエンジンにマテリアライズして、コンピュートエンジンでデータ分析を行うことができます。

    • 派生メトリクスと集計テーブルを設計する際に、ディメンションテーブルのフィールドを直接参照して使用できます。

前提条件

共通レイヤーは共有データを処理・統合して、企業全体の統一されたディメンションテーブルを構築します。アプリケーションレイヤーはこの統合データを使用して、パーソナライズされたデータ開発と変換をサポートするビジネス固有のディメンションテーブルを構築します。必要に応じて、どちらかのレイヤーでディメンションテーブルを作成できます。次の表に、各レイヤーの前提条件を示します。

データウェアハウスレイヤー

前提条件

リファレンス

[パブリックレイヤー]

共通レイヤーにディメンションテーブルを格納するためのデータウェアハウスレイヤーを作成する必要があります。

データウェアハウスレイヤーの定義

ディメンションテーブルのビジネス上の視点を定義するために、データドメインを作成する必要があります。

データドメイン

[アプリケーション層]

アプリケーションレイヤーにディメンションテーブルを格納するためのデータウェアハウスレイヤーを作成する必要があります。

データウェアハウスレイヤーの定義

ディメンションテーブルが提供するデータを分類するために、データマートを作成する必要があります。

データマート

ディメンションテーブルの作成

  1. データモデリングページに移動します。

    DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、[データモデリングと開発] > [データモデリング] を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[データモデリングに移動] をクリックします。

  2. 2. インテリジェントデータモデリング ページで、上部のメニューバーにある ディメンションモデリング をクリックして、ディメンションモデリング ページに移動します。

  3. 3. ディメンションテーブルを作成します。

    1. a. ディメンションモデリング ページで、加号 アイコンにカーソルを合わせ、論理モデル > ディメンションテーブルの作成 を選択します。

    2. b. ディメンションテーブルの基本プロパティを設定します。

      ディメンションテーブルのデータウェアハウスレイヤー、データドメイン、業務カテゴリ、データマートなどのプロパティを指定できます。テーブルが作成されると、これらのエンティティの下にテーブルがリスト表示されます。このトピックでは、共通レイヤーのディメンションテーブルの作成を例として使用します。主なパラメーターを以下に説明します。

      パラメーター

      説明

      [DWH レイヤー化]

      ディメンションテーブルのデータウェアハウスレイヤーを選択します。レイヤーごとに目的が異なります:

      • [パブリックレイヤー]:処理・統合された共有データを格納して、企業レベルの統一されたディメンションテーブルを構築します。このレイヤーを選択した場合は、データドメインも指定する必要があります。データドメインの作成方法の詳細については、「データドメイン」をご参照ください。

      • [アプリケーション層]:アプリケーションの要件に基づいて、ビジネス固有のディメンションテーブルを構築します。このレイヤーを選択した場合は、データマートも指定する必要があります。データマートの作成方法の詳細については、「データマート」をご参照ください。

      説明

      デフォルトでは、アプリケーションレイヤーではアプリケーションテーブルのみを作成できます。アプリケーションレイヤーでディメンションテーブルを作成するには、新しいアプリケーションレイヤーを作成し、そのモデルタイプを ディメンション または [ディメンションテーブル、ディメンション] に設定する必要があります。詳細については、「カスタムレイヤー」をご参照ください。

      [業務カテゴリ]

      データウェアハウスレイヤーが共通レイヤーに設定されている場合、ディメンションテーブルの業務カテゴリを選択できます。

      [データドメイン]

      データウェアハウスレイヤーとして共通レイヤーを選択した場合、ディメンションテーブルのデータドメインを選択できます。

      [分類 / マーケット / トピック]

      データウェアハウスレイヤーとしてアプリケーションレイヤーを選択した場合は、業務カテゴリの下にあるマートまたは主題領域を選択する必要があります。

      [ストレージポリシー]

      ディメンションテーブルのデータ格納方法を定義するポリシーです。保持期間やデータ量などが含まれます。

      [ディメンション]

      ディメンションテーブルに関連付けるディメンション。これはデータ分析の視点を定義します。

      説明

      ディメンションを作成するには、「概念モデルの作成:ディメンション」をご参照ください。

      [テーブル名のルール]

      ディメンションテーブルの命名規則を適用するチェッカー。チェッカーを選択した場合、テーブル名 はその規則に準拠する必要があります。

      説明

      チェッカーを設定するには、「データウェアハウスレイヤーチェッカーの設定」をご参照ください。

      [テーブル名]

      ディメンションテーブルの名前。命名規則を設定した場合、名前はその規則に準拠する必要があります。

      [中国語のテーブル名]

      ディメンションテーブルの表示名。

      [ライフサイクル]

      ディメンションテーブルの保持期間 (日数)。最大値は 36,000 です。

      [オーナー]

      ディメンションテーブルの所有者。デフォルトでは、テーブルを作成したユーザーになります。

      [説明]

      ディメンションテーブルの説明。

  4. 4. 設定が完了したら、保存 をクリックします。

    左側のナビゲーションツリーで、対応するデータドメインまたは業務カテゴリの下にディメンションテーブルを見つけて管理できます。

テーブルフィールドの追加

論理モデルを作成した後、テーブルにフィールドを追加する必要があります。

フィールドは クイックモード または コードモード のいずれかで追加できます。クイックモード では、テーブル / ビューからインポート 機能を使用して、コンピュートエンジン内の既存の物理テーブルまたはビューからフィールドをインポートできます。[既存のテーブル/ビューを検索] ボックスでテーブルまたはビューを検索し、選択します。

[クイックモード]

説明

現在、MaxCompute、Hologres、EMR Hive コンピュートエンジンのテーブルまたはビューからのみインポートできます。

  1. 1. クイックモード で、テーブル / ビューからインポート の横にある 表示 をクリックします。

  2. 2. [既存のテーブル/ビューを検索] 入力ボックスに名前を入力して、テーブルまたはビューを検索します。テーブルを選択した後、すべてのフィールドをインポートするか、一部のフィールドのみをインポートするかを選択できます。

    説明
    • あいまい検索がサポートされています。キーワードを入力して、名前にキーワードが含まれるすべてのテーブルまたはビューを検索できます。

    • 開発環境ではなく、本番環境のテーブルのみを検索できます。

    • 导入全部字段 アイコンは、すべてのフィールドがインポートされることを示します。

    • 部分字段 アイコンは、選択したフィールドのみがインポートされることを示します。

  3. 3. 一部のフィールドのみをインポートすることを選択した場合、ダイアログボックスが表示され、選択したテーブルのすべてのフィールドが表示されます。モデルに追加するフィールドを選択し、インポート をクリックします。

  4. 4. インポートされたフィールドの フィールド表示名 が空の場合、そのフィールドの説明をフィールド表示名として入力するように求められます。

[コードモード]

説明

FML ステートメントを使用して、フィールド、関連、パーティションを作成することもできます。詳細については、「コードモードでのモデリング」をご参照ください。

コードモード では、コードを記述してディメンションテーブルを作成できます。基本情報を入力してテーブルを保存した後、コードモード をクリックします。設定に基づいて自動生成されたモデリングコードを含むダイアログボックスが表示されます。コード内でモデルを変更し、OK をクリックします。

-- モデルが発行されると、その発行ステータス (承認前、進行中、または成功) にかかわらず、テーブル名は変更できません。
CREATE DIM TABLE dim_ec_pub_department_df ALIAS '部門ディメンションテーブル'
(
    id            ALIAS 'id' STRING COMMENT 'id',
    gmt_create    ALIAS '作成時間' TIMESTAMP COMMENT '作成時間',
    gmt_modified ALIAS '変更時間' TIMESTAMP COMMENT '変更時間',
    name          ALIAS '部門名' STRING COMMENT '部門名',
    parent_id     ALIAS '親部門 ID' STRING COMMENT '親部門 ID',
    `level`       ALIAS 'レベル' BIGINT COMMENT '部門レベル。0: グループ、1: 子会社、2: ビジネスユニット、3: 部門。',
    ds            ALIAS 'ビジネス日付、yyyymmdd' STRING COMMENT 'ビジネス日付、yyyymmdd'
)
COMMENT '部門ディメンションテーブル'
WITH('life_cycle'='1000');

フィールド情報の設定

モデルにフィールドを追加した後、ビジネス要件に基づいて、各フィールドの 外部キーフィールド、冗長フィールド、および 粒度/メトリックの関連付け を設定できます。

  1. 1. フィールドプロパティを設定します。

    デフォルトでは、フィールドプロパティリストには、フィールド名、タイプ、フィールド表示名、説明、プライマリキー、必須、測定単位、操作 などの基本属性が表示されます。フィールドリストの右上隅にある フィールド表示設定 をクリックして、表示するプロパティを選択し、それらを変更します。

  2. 2. フィールドの 外部キーフィールド標準 と ルックアップテーブルの関連付け を設定します。これにより、追加されたフィールドをカラム標準およびルックアップテーブルに関連付けることができ、その内容と値の範囲が標準化されます。

    または、フィールドを設定した後、フィールドリストの右上隅にある [関連付け] をクリックして、関連する アトミックメトリクス、ルックアップテーブル、および データ標準 を一括で設定することもできます。

    • [外部キーフィールド標準]:同じ意味を持つが名前が異なるフィールドを管理します。値の範囲や測定単位などのプロパティを定義します。

    • [ルックアップテーブルの関連付け]:特定のカラム標準の有効な内容と値の範囲を定義します。

  3. 3. フィールドの 冗長フィールド を設定します。

    従来のスタースキーマでは、ディメンションをディメンションテーブルに格納し、ファクトテーブルの外部キーを介してアクセスすることでストレージを削減します。対照的に、DataWorks のインテリジェントなディメンショナルモデリングでは、ユーザー ID や一般的な分析ディメンションなど、頻繁に使用されるフィールドを冗長フィールドとして追加することを推奨しています。この方法は、下流のクエリパフォーマンスを向上させ、データ取得を簡素化し、テーブル結合の数を減らします。

    例 1:「注文作成詳細テーブル」には、「配送先住所ディメンションテーブル」の「配送先住所」ディメンションを冗長フィールドとして含めることができます。これには、受取人の住所や電話番号などの属性が含まれます。

    例 2:「商品ディメンションテーブル」には、「商品情報テーブル」の「調達情報」や「ブランド情報」などの属性を冗長フィールドとして含めることができます。

    特定のフィールドの 操作 列で、冗長フィールド をクリックして、その関連フィールドを設定します。

    [冗長フィールド] 設定ダイアログボックスで、データソースタイプと特定のテーブル名を含む [関連テーブル/ビュー名] を選択します。下のフィールドリストには、関連付け可能なフィールドが、名前、タイプ、プライマリキー、パーティションなどのプロパティとともに表示されます。[関連フィールド] を選択し、[保存] をクリックします。

  4. 4. 設定が完了したら、左上隅にある 保存 をクリックします。

次のステップ

ディメンションテーブルを作成した後、フィールド管理、関連、およびパーティション設定も構成する必要があります。また、テーブルをターゲット環境に発行する必要もあります。詳細については、次のトピックをご参照ください: