DataWorks において、論理モデルはデータ設計のブループリントです。モデルを公開すると、MaxCompute や Hologres などのコンピュートエンジンで物理テーブルまたはビューとしてマテリアライズされ、データ開発や分析に利用できるようになります。
制限事項
モデルを公開する前に、以下の条件を満たしていることを確認してください:
ターゲットエンジン:モデルは MaxCompute、Hologres、E-MapReduce (EMR) Hive、CDH、MySQL に公開できます。
公開タイプ:
ビューまたはマテリアライズドビューとして公開する場合、ターゲットエンジンは MaxCompute である必要があります。
モデルをマテリアライズドビューとして公開する場合、[公開モード] は [削除して再作成] である必要があります。
環境:
基本モードのワークスペースでは、本番環境にのみ公開できます。
標準モードのワークスペースでは、開発環境または本番環境のいずれかに公開できます。
リソースグループ:
ターゲットエンジンが E-MapReduce (EMR) Hive または CDH の場合、公開タスクを実行するためにスケジューリング用の専用リソースグループまたはサーバーレスリソースグループを指定する必要があります。
モデルの公開とマテリアライズ
ディメンションテーブル、ファクトテーブル、集計テーブル、またはアプリケーションテーブルをデータソースインスタンスに公開してマテリアライズできます。これらのマテリアライズされたテーブルは、コンピュートエンジンによるデータ開発や分析に使用できます。テーブルは MaxCompute、Hologres、E-MapReduce (EMR) Hive、CDH、MySQL エンジンに公開できます。
モデルを公開します。
モデルを作成した後、テーブル詳細ページのツールバーにある
アイコンをクリックします。Publish ダイアログボックスで、以下のパラメーターを設定します。
パラメーター
説明
Publish Type
モデルのマテリアライズ形式を指定します。
物理テーブル:ターゲットエンジンに物理テーブルを作成します。
ビュー:ターゲットエンジンにビューを作成します。このオプションは MaxCompute データソースでのみサポートされています。
マテリアライズドビュー:ターゲットエンジンにマテリアライズドビューを作成します。このオプションは MaxCompute データソースでのみサポートされています。マテリアライズドビューは、JOIN や集約などの負荷の高い操作の結果を保存する事前計算の一形態です。クエリはこれらの結果を再利用して、これらの操作の繰り返しを回避し、パフォーマンスを向上させることができます。詳細については、「マテリアライズドビューの操作」をご参照ください。
Data Source Type
データが保存されているエンジンを選択します。利用可能なオプションは MaxCompute、E-MapReduce (EMR) Hive、Hologres、CDH、MySQL です。
Effective Environment
モデルを公開する環境です。開発 または 制作 を選択できます。
基本モードの DataWorks ワークスペースを使用する場合、テーブルは本番環境にのみ公開できます。
標準モードの DataWorks ワークスペースを使用する場合、テーブルは本番環境または開発環境のいずれかに公開できます。
Publish Mode
モデルを公開するために使用されるメソッドです。
Incremental Publish:モデルの変更のみをターゲットエンジンに適用します。このモードは、既存データを保持し、オンラインサービスへの影響を最小限に抑えるために、以前に公開されたモデルに推奨されます。
Delete and Recreate:ターゲットエンジン内の同じ名前の既存のテーブルを削除してから再作成します。重要:この操作はテーブルを削除して再作成するため、既存データが失われます。
モデルが初めて公開される場合、両方のモードの効果は同じです。
Automatic Rule Generation Based on Field Standard
モデルの公開後に品質ルールを自動的に生成するかどうかを指定します。詳細については、「データタギング」をご参照ください。
はい:モデルが本番環境に正常に公開された後、システムはプライマリキーとして定義されたフィールド、NOT NULL 制約を持つフィールド、または標準コードに関連付けられたフィールドに対して品質ルールを自動的に生成します。
いいえ:品質ルールを自動的に生成しません。
Resource Group
このパラメーターは、モデルを E-MapReduce (EMR) Hive または CDH の物理テーブルとしてマテリアライズする場合に必要です。選択したリソースグループがデータソースへのネットワーク接続を持っていることを確認してください。
説明物理テーブルを E-MapReduce または CDH に公開するには、スケジューリング用の専用リソースグループを使用する必要があります。
適切なスケジューリング用の専用リソースグループがない場合は、「スケジューリング用の専用リソースグループの使用」を参照して作成してください。
DDL
マテリアライズドビューを公開するには、その定義内の
SELECT文が実行可能である必要があります。AS SELECT句を編集して、有効な SQL 文であることを確認する必要があります。説明このパラメーターは、モデルをMaterialized Viewとして公開する場合にのみ必要です。
マテリアライズドビューの DDL 操作の詳細については、「マテリアライズドビューの操作」をご参照ください。
構成が完了したら、Publish をクリックします。システムは、対応する 開発 環境または 制作 環境にモデルを公開し、選択したエンジンで実体化します。
現在の進行状況と関連するログは、Publish ダイアログボックスで表示できます。
モデルを別の環境に再度公開することもできます。
任意:モデルが公開された後、テーブル詳細ページのツールバーにある
アイコンをクリックして、最新の公開操作の詳細を表示できます。[Publishing Status] には、[Succeeded]、[Failed]、および[公開中] の3つの状態があります。「Succeeded」状態のログは、以下の図に示されています。
説明「Publishing Status」が「Failed」の場合、エラーメッセージをもとに問題を特定し、解決してください。
「Publishing Logs」ダイアログボックスに「No publishing logs found.」と表示された場合、このモデルは一度も公開されていません。
公開レコードの表示
モデルが正常に公開されると、モデルの編集ページに移動し、右側のナビゲーションウィンドウでPublishing Recordをクリックして過去の公開バージョンの詳細を表示できます。

ETL コードフレームワークの生成
DataWorks のインテリジェントデータモデリングでは、モデル開発機能を使用して、ディメンションテーブルやファクトテーブルなど、公開されたモデルテーブル用の ETL コードフレームワークを生成できます。
モデル開発機能は、MaxCompute および E-MapReduce (EMR) Hive コンピュートエンジンに公開されたモデルテーブルのコード生成のみをサポートします。
DataWorks のインテリジェントデータモデリングで、公開されたモデルテーブルをダブルクリックして詳細ページを開きます。
アクションバーで、Develop Model をクリックします。
Develop Model ダイアログボックスで、Create DataStudio Node または Associate DataStudio Node を選択し、パラメーターを設定して、OK をクリックします。
選択 Create DataStudio Node

システムは自動的に DataStudio ノードを作成し、テーブル名に基づいてノード名を入力します。
モデルテーブルが MaxCompute エンジンに公開されている場合、ODPS SQL ノードが作成されます。
モデルテーブルが E-MapReduce (EMR) Hive エンジンに公開されている場合、EMR Hive ノードが作成されます。
構成を確認したら、Go to DataStudio をクリックします。システムが自動的に DataStudio でノード作成ダイアログボックスを開きます。OK をクリックして、ノードを作成し、ETL コードを生成します。
選択 Associate DataStudio Node

このオプションは、コードフレームワークを同じエンジンタイプの既存の DataStudio ノードに関連付けます。バインドが成功すると、ノード名をクリックして対応するノードページに移動し、開発を続けることができます。
複数のノードを同じモデルテーブルに関連付ける必要がある場合は、もう一度Develop Modelをクリックして、別のノードを関連付けることができます。
課金
モデル公開機能は無料です。ただし、マテリアライズ中に使用される計算リソースとストレージリソースに対して課金されます:
ターゲットエンジンの料金:モデルがマテリアライズされた後、ターゲットエンジン (MaxCompute や Hologres など) で消費されたストレージリソースと計算リソースに対して、各プロダクトの価格設定に従って課金されます。