MaxCompute をより広範囲に使用すると、MaxCompute テーブルに対する多くの繰り返されるクエリに気付く場合があります。異なるユーザーは、他のユーザーが同じ計算ロジックを使用していることに気付かない場合があります。計算効率を向上させ、冗長な計算を削減するために、MaxCompute はマテリアライズドビューのインテリジェント分析機能を提供し、インテリジェントに分析してマテリアライズドビューを推奨します。
制限事項
インテリジェント分析機能は、単一のプロジェクトに対してのみ有効にできます。 この機能を使用して、プロジェクト間または複数プロジェクトの分析と推奨を実行することはできません。
マテリアライズドビューを作成するための推奨事項を正確に生成し、[マテリアライズドビューの推奨事項] タブで推奨事項を表示するには、インテリジェント分析機能を有効にした後、以下の条件が満たされていることを確認する必要があります。
サイクルタスクは 3 日以上連続して実行されます。
マテリアライズドビューの作成対象として選択されたパブリックサブクエリの入力データの行数は 1,000,000 を超えています。
パブリックサブクエリには、結合演算子や集約演算子など、データの再編成に関連する演算子が含まれています。
マテリアライズドビューの推奨事項機能は、中国 (杭州)、中国 (上海)、中国 (北京)、中国 (張家口)、中国 (深セン)、中国 (成都)、およびドイツ (フランクフルト) の地域でのみ使用できます。
手順
マテリアライズドビューの推奨事項を表示する
前提条件
MaxCompute コンソール にログオンします。 上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションウィンドウで、Intelligent Optimization > Intelligent Materialized Views を選択します。
Intelligent Materialized Views ページで、マテリアライズドビューの推奨事項タブをクリックします。
以下のパラメータを設定して、マテリアライズドビューを作成するための推奨事項が生成されているかどうかを確認します。
パラメータ
説明
プロジェクト名
ドロップダウンリストから MaxCompute プロジェクトを選択します。
ソーステーブル名
ソーステーブルの名前を入力します。あいまい一致がサポートされています。複数のテーブル名を入力できます。名前はカンマ
(,)で区切ります。分析時間間隔
開始日と終了日を選択して、指定した日付範囲内で実行されるパブリックサブクエリを取得します。
[マテリアライズドビューの推奨事項] タブには、次の情報が表示されます。
影響
項目
説明
1 日あたりの推定有益ジョブ数
推奨されるマテリアライズドビューを作成した後の、1 日あたりの推定有益ジョブ数。
有益ジョブの現在の 1 日あたりの CU 時間消費量と割合
推奨されるマテリアライズドビューを作成した後の、有益ジョブで 1 日に消費される推定計算ユニット (CU) 時間の、すべてのジョブで 1 日に消費される CU 時間に対する比率。 パーセント値が大きいほど、影響が大きくなります。
有益ジョブの現在の 1 日あたりの計算リソース消費量と割合
推奨されるマテリアライズドビューを作成した後の、有益ジョブで使用される推定計算リソース (スキャンされたデータ量 × 複雑さ) の、すべてのジョブで使用される計算リソース (スキャンされたデータ量 × 複雑さ) に対する比率。 パーセント値が大きいほど、影響が大きくなります。
すべての MV を作成するために必要な推定計算リソース
推奨されるマテリアライズドビューを作成するには、1 回限りのリソース消費が必要です。 マテリアライズドビューを作成し、従量課金制の計算リソースを使用してマテリアライズドビューを実行すると、計算コストが発生します。 必要な計算リソース (スキャンされたデータ量 × 複雑さ) に基づいて計算コストを見積もることができます。
パブリックサブクエリ詳細
列
説明
MV の概要
パブリックサブクエリ概要。
[集計] は、推奨されるサブクエリに集計操作が含まれているかどうかを指定します。
[入力] は、サブクエリで使用されるすべてのソーステーブルの名前を指定します。
[MV の概要] 列の情報をクリックすると、[パブリックサブクエリ詳細] パネルに移動し、パブリックサブクエリが頻繁に使用されるジョブとパブリックサブクエリの SQL スクリプトを表示できます。 次の情報が表示されます。
[パブリックサブクエリ番号]: バックエンドで自動的に生成される一意の ID。 ID はマテリアライズドビューに関連付けられています。
[パブリックサブクエリ]: パブリックサブクエリの SQL スクリプト。
アイコンをクリックして SQL スクリプトを展開するか、全画面表示で SQL スクリプトを表示します。
アイコンをクリックして SQL スクリプトをコピーします。
アイコンをクリックして SQL スクリプトをダウンロードします。
元の SQL リスト (過去 5 日間のデータ): 過去 5 日間にサブクエリを使用した元のジョブインスタンスのみを表示します。 各ジョブインスタンスに関する次の情報が表示されます。
[インスタンス ID]: サブクエリを使用した元のジョブインスタンスの ID。
[送信プロジェクト名]: ジョブインスタンスが実行されるプロジェクトの名前。
[送信者]: ジョブの送信者。
[実行時間 (秒)]: サブクエリが実行される時間。 単位: 秒。
[元のクエリ SQL]: 実行できる操作。
[詳細の表示]: [詳細の表示] をクリックして SQL の詳細を表示できます。
[ダウンロード]: [ダウンロード] をクリックして関連する SQL スクリプトをダウンロードできます。
プロジェクト
サブクエリを使用するジョブが実行されるプロジェクト。
推奨評価
マテリアライズドビューを作成するための推奨評価。 推奨評価は、星 1 つから星 5 つで表されます。 星の数が多いほど、マテリアライズドビューの作成が推奨されます。
有益ジョブ数
パブリックサブクエリを使用するジョブの数。
スキャンされたデータ量
パブリックサブクエリによってスキャンされたデータ。
複雑さ
パブリックサブクエリの複雑さ。
MV 作成に必要な計算リソース
マテリアライズドビューの作成に使用される計算リソース。 値は、スキャンされたデータ量 × 複雑さの式に基づいて計算されます。
分析時間
パブリックサブクエリの推奨分析時間。
含まれる操作
[結合操作を含める]: SQL クエリに複数テーブルの結合が含まれています。
[集計]: SQL クエリに集計操作が含まれています。
操作をフィルタリングできます。
作成ステータス
パブリックサブクエリに対してマテリアライズドビューが作成されているかどうかを指定します。
アクション
サブクエリの作成ステータスが [未作成] の場合、[アクション] 列の [マテリアライズドビューの作成] をクリックしてマテリアライズドビューを作成できます。
サブクエリの作成ステータスが [作成済み] の場合、[アクション] 列の [マテリアライズドビューの表示] をクリックしてマテリアライズドビューの詳細を表示できます。
マテリアライズドビューを作成する
[マテリアライズドビューの推奨事項] タブで、ビジネス要件と推奨事項の詳細に基づいてマテリアライズドビューを作成するかどうかを決定します。 マテリアライズドビューを作成するには、次の手順を実行します。
[マテリアライズドビューの推奨事項] タブで、マテリアライズドビューの作成の基になる推奨事項を見つけ、[アクション] 列の [マテリアライズドビューの作成] をクリックします。
前提条件
パラメータ
説明
マテリアライズドビュー名
マテリアライズドビューの名前。デフォルトでは、
rec_mv_{$project_name}_{$timestamp}が入力されます。ビジネス要件に基づいて名前を変更できます。名前は文字または数字で始まり、文字、数字、アンダースコア (_) を含める必要があります。更新タイプ
マテリアライズドビューのデータを更新するために使用されるメソッド。 有効値:
[一定間隔で更新]: 指定した間隔でマテリアライズドビューのデータを更新します。 間隔は分、時間、または日単位で指定できます。
[Cron]: Cron モードでマテリアライズドビューのデータを更新します。
スクリプト
推奨されるマテリアライズドビューを作成するために使用される SQL スクリプト。
アイコンをクリックして SQL スクリプトを展開するか、全画面表示で SQL スクリプトを表示します。
アイコンをクリックして SQL スクリプトをコピーします。
アイコンをクリックして SQL スクリプトをダウンロードします。
OK をクリックします。
マテリアライズドビューの作成により、ストレージコストが発生します。 ストレージコストと計算方法は、標準テーブルと同じです。 また、従量課金制の計算リソースを使用して作成されたマテリアライズドビューを実行すると、計算コストが発生します。 使用される計算リソース (スキャンされたデータ量 × 複雑さ) に基づいて、マテリアライズドビューの作成コストを見積もることができます。
マテリアライズドビューを管理し、実際のメリットを表示する
MaxCompute コンソール にログオンします。 上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションウィンドウで、[インテリジェント最適化] > [インテリジェント マテリアライズドビュー] を選択します。
[インテリジェント マテリアライズドビュー] ページで、[MV の管理とメリット] タブをクリックします。
MaxCompute プロジェクトと利益統計範囲を選択して、作成されたマテリアライズドビューとメリットのリストを表示します。 マテリアライズドビューを管理することもできます。
次の表に、メリット項目を示します。
項目
説明
ヒット数
指定された利益統計範囲内でマテリアライズドビューが呼び出された回数。
節約された計算時間
選択したプロジェクトでマテリアライズドビューにヒットしたジョブの計算時間と、指定された利益統計範囲内でマテリアライズドビューが作成されていない場合のこれらのジョブの推定計算時間との差。
節約された CU 時間
選択したプロジェクトでマテリアライズドビューにヒットしたジョブで消費された CU 時間と、指定された利益統計範囲内でマテリアライズドビューが作成されていない場合のこれらのジョブで消費される推定 CU 時間との差。
節約された計算リソース
選択したプロジェクトでマテリアライズドビューにヒットしたジョブで使用された計算リソース (スキャンされたデータ量 × 複雑さ) と、指定された利益統計範囲内でマテリアライズドビューが作成されていない場合のこれらのジョブで使用される推定計算リソース (スキャンされたデータ量 × 複雑さ) との差。 従量課金制のジョブのみがカウントされます。
計算コストの節約 (カタログ価格)
節約された計算リソースのコスト。 値は、計算コストの節約 (カタログ価格) = 節約された計算リソース × 1 GB あたり 0.3 人民元 (従量課金制 Standard Edition の SQL 計算ジョブの単価) の式に基づいて計算されます。
次の表に、マテリアライズドビューのリストの列を示します。
列
説明
マテリアライズドビュー名
マテリアライズドビューの名前。
ヒット数
指定された利益統計範囲内でマテリアライズドビューが呼び出された回数。 利益統計範囲は、[MV 作成以降] または [過去 1 日間] にすることができます。
節約された計算時間
マテリアライズドビューにヒットしたジョブの計算時間と、指定された利益統計範囲内でマテリアライズドビューが作成されていない場合のこれらのジョブの推定計算時間との差。
節約された CU 時間
マテリアライズドビューにヒットしたジョブで消費された CU 時間と、指定された利益統計範囲内でマテリアライズドビューが作成されていない場合のこれらのジョブで消費される推定 CU 時間との差。
節約された計算リソース
マテリアライズドビューにヒットしたジョブで使用された計算リソース (スキャンされたデータ量 × 複雑さ) と、指定された利益統計範囲内でマテリアライズドビューが作成されていない場合のこれらのジョブで使用される推定計算リソース (スキャンされたデータ量 × 複雑さ) との差。 従量課金制のジョブのみがカウントされます。
作成日時
マテリアライズドビューが作成された日時。
ステータス
マテリアライズドビューのステータス。 有効値:
[作成済み]
[作成中]
アクション
マテリアライズドビューで実行できる操作。
[詳細の表示]: [詳細の表示] をクリックして、マテリアライズドビューの基本情報と呼び出しの詳細を表示できます。 [マテリアライズドビューの詳細] パネルには、次の情報が表示されます。
マテリアライズドビュー名: マテリアライズドビューの名前。
[基本情報] セクション:
[作成日時]: マテリアライズドビューが作成された日時。
[テーブルスキーマの更新日時]: マテリアライズドビューのテーブルスキーマが更新された日時。
[ストレージサイズ]: マテリアライズドビューが占有するストレージスペースのサイズ。
[更新間隔 (分)]: マテリアライズドビューのデータが更新される頻度。
[更新日時]: マテリアライズドビューのデータが最後に更新された日時。
[コード詳細]: マテリアライズドビューを定義する SQL スクリプト。
アイコンをクリックして SQL スクリプトを展開するか、全画面表示で SQL スクリプトを表示します。
アイコンをクリックして SQL スクリプトをコピーします。
アイコンをクリックして SQL スクリプトをダウンロードします。
[マテリアライズドビューの呼び出し詳細] セクション: マテリアライズドビューを呼び出すすべてのジョブの詳細が表示されます。 各ジョブについて、次の情報を表示できます。
[インスタンス ID]: ジョブのインスタンス ID。 インスタンス ID をクリックすると、ジョブの詳細情報を表示できます。
[MV 呼び出し実行時間 (秒)]: ジョブがマテリアライズドビューを呼び出した後、ジョブが実行される時間。 単位: 秒。
[節約時間 (秒)]: ジョブがマテリアライズドビューを呼び出した後、ジョブの実行で節約された時間。
[消費された CU 時間]: ジョブの実行時にジョブで消費された CU 時間。
[節約された CU 時間]: ジョブがマテリアライズドビューを呼び出した後、ジョブで節約された CU 時間。
[使用された計算リソース]: ジョブの実行時に使用された計算リソース。 値は、使用された計算リソース = スキャンされたデータ量 × 複雑さの式に基づいて計算されます。
[節約された計算リソース]: ジョブがマテリアライズドビューを呼び出した後、ジョブで節約された計算リソース。 使用された計算リソースの値は、スキャンされたデータ量 × 複雑さの式に基づいて計算されます。
[削除]: [削除] をクリックしてマテリアライズドビューを削除できます。