DataWorks の論理モデルは、データ設計のブループリントです。モデルを公開すると、MaxCompute や Hologres などのコンピュートエンジン内で物理テーブルまたはビューとしてマテリアライズされます。その後、マテリアライズされたモデルをデータ開発や分析に使用できます。
前提条件
モデルを公開する前に、次の条件を満たす必要があります:
ターゲットエンジン:MaxCompute、Hologres、EMR Hive、CDH、および MySQL エンジンに公開できます。
公開タイプ:
モデルをビューまたはマテリアライズドビューとして公開する場合、ターゲットエンジンは MaxCompute である必要があります。
モデルをマテリアライズドビューとして公開する場合、[公開モード] は [削除して再作成] に設定する必要があります。
環境:
基本モードのワークスペースでは、本番環境にのみ公開できます。
標準モードのワークスペースでは、開発環境または本番環境に公開できます。
リソースグループ:
ターゲットエンジンが EMR Hive または CDH の場合、公開タスクを実行するために専用スケジューリングリソースグループまたは Serverless リソースグループを指定する必要があります。
モデルの公開とマテリアライズ
ディメンションテーブル、ファクトテーブル、集計テーブル、アプリケーションテーブルをデータソースインスタンスに直接公開してマテリアライズできます。これにより、コンピュートエンジンでデータ開発や分析に利用できるようになります。DataWorks は、MaxCompute、Hologres、EMR Hive、CDH、MySQL へのマテリアライズをサポートしています。
モデルを公開します。
モデルが作成された後、テーブル詳細ページ上部のメニューバーにある
アイコンをクリックします。表示される Publish ダイアログボックスで、主要なパラメーターを設定します。
パラメーター
説明
Publish Type
マテリアライズされたモデルの形式を設定します。
[物理テーブル]:ターゲットエンジンに物理テーブルを作成します。
ビュー: ターゲットエンジンにビューを作成します。サポートされるのは [MaxCompute] データソースタイプのみです。
マテリアライズドビュー: ターゲット DPI エンジンにマテリアライズドビューを作成します。この機能は、[MaxCompute] データソースタイプでのみ利用可能です。マテリアライズドビューは、JOIN や AGGREGATE などの時間のかかる操作の結果を格納する事前計算オブジェクトです。その結果をクエリで直接再利用することで、これらのコストのかかる操作を回避し、クエリの実行を高速化できます。詳細については、「マテリアライズドビュー操作」をご参照ください。
Data Source Type
以下のコンピュートエンジンから 1 つ選択します: MaxCompute、EMR Hive、Hologres、CDH、または MySQL。
Effective Environment
[開発] または [本番] 環境に公開できます。
基本モードの DataWorks ワークスペースを使用する場合、テーブルは本番環境にのみ公開できます。
標準モードの DataWorks ワークスペースを使用する場合、テーブルは本番環境または開発環境に公開できます。
Publish Mode
モデルをターゲットエンジンに公開する方法を定義します。
Incremental Publish:現在のモデルの変更部分のみをターゲット DPI エンジンに更新します。公開済みのモデルに対してこのモードを使用し、既存データを保持し、オンラインサービスへの影響を軽減することを推奨します。
Delete and Recreate:ターゲットエンジンから同じ名前の既存のモデルを削除し、再作成します。注意:この操作はテーブルを削除して再作成するため、既存データが失われます。
最初の公開では、どちらのモードも同じ効果です。
Automatic Rule Generation Based on Field Standard
モデルが公開された後に品質ルールを自動的に生成するかどうかを指定します。詳細については、「データタギング」をご参照ください。
はい:本番環境への公開が成功した後、プライマリキー、null 値不可、またはルックアップテーブルに関連付けられているフィールドに対して品質ルールを自動的に生成します。
いいえ:品質ルールを自動的に生成しません。
Resource Group
[E-MapReduce] または [CDH] でモデルテーブルを物理テーブルとして実体化する場合、リソースグループが必要です。選択したリソースグループとデータソースの間の ネットワーク接続 を確保してください。
説明E-MapReduce または CDH の物理テーブルを公開するには、専用スケジューリングリソースグループのみを使用できます。
適切な専用スケジューリングリソースグループがない場合は、作成してください。詳細については、「専用スケジューリングリソースグループの使用」をご参照ください。
[DDL]
DataWorks は、モデル構成に基づいてモデルをマテリアライズドビューとして公開するための SQL 文を自動的に生成します。公開操作は、SELECT 文が正常に実行された場合にのみ成功します。したがって、実行可能な SQL 文にするために、
AS SELECT文を手動で変更する必要があります。説明このパラメーターは、公開タイプ パラメーターが [マテリアライズドビュー] に設定されている場合にのみ必須です。
マテリアライズドビューでの DDL 操作の詳細については、「マテリアライズドビューの操作」をご参照ください。
構成を完了して Publish をクリックすると、モデルは対応する [開発] 環境または [本番] 環境に公開され、選択したエンジンにマテリアライズされます。
Publish ダイアログボックスで、現在の公開の進捗状況と関連ログを表示できます。
公開操作を繰り返して、モデルを異なる環境に公開できます。
任意:公開が完了したら、テーブル詳細ページのメニューバーにある
アイコンをクリックして、最新の公開操作の結果と詳細を表示します。Publishing Status は、Succeeded、[失敗]、または [公開中] のいずれかです。次の図は、Succeeded ステータスのログを示しています。
説明Publishing Status が [失敗] の場合、特定のエラーメッセージに基づいてエラーを特定し、トラブルシューティングを行う必要があります。
Publishing Logs ダイアログボックスに No publishing logs found. と表示された場合、そのモデルは一度も公開されていないことを意味します。
公開レコードの表示
モデルが正常に公開された後、モデルの編集ページに移動し、右側のナビゲーションバーにある Publishing Record をクリックして、その公開履歴を表示できます。

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

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

コードフレームを、同じエンジンタイプの既存の DataStudio ノードに関連付けます。バインドが成功した後、ノード名をクリックして対応するノードページに移動し、開発を続行できます。
複数のノードを同じモデルテーブルに関連付けるには、再度 Develop Model をクリックして追加のノードをアタッチできます。
課金
モデル公開機能は無料です。ただし、マテリアライズプロセス中に使用されるコンピューティングリソースとストレージリソースに対して課金されます:
ターゲットエンジン料金:モデルがマテリアライズされた後、それが占有するストレージリソースと、MaxCompute や Hologres などのターゲットエンジンで消費するコンピューティングリソースは、そのプロダクトの課金ルールに従って課金されます。