このドキュメントでは、Cloud Monitoring を使用して Knowledge Catalog(以前の Dataplex Universal Catalog)のサービス健全性を追跡し、パフォーマンスを最適化して、データ プラットフォームの可視性を高める方法について説明します。事前対応型のモニタリングにより、データ アプリケーションの信頼性を確保し、リソース割り当てと費用管理について十分な情報に基づいて意思決定を行うことができます。
費用については、Monitoring の料金をご覧ください。
指標データの保持の詳細については、Monitoring の割り当てと上限をご覧ください。
ユースケース
Cloud Monitoring で Knowledge Catalog の指標を使用すると、次のユースケースをサポートできます。
- データ パイプラインの信頼性を確保する: データの取り込みやデータ品質ジョブなどの Knowledge Catalog タスクの成功率と失敗率をモニタリングします。障害や異常な期間に対するアラートを構成して、重要なワークロードのダウンタイムを最小限に抑えます。
- パフォーマンスを最適化する: ジョブの所要時間とリソース使用率の指標を追跡して、データ処理、データ品質、データ検出のワークロードのパフォーマンスのボトルネックを特定して解決します。
- 費用を管理する: Monitoring で Knowledge Catalog リソースの使用量(レイク、ゾーン、アセットなど)をモニタリングし、Cloud Billing の BigQuery へのエクスポートを使用して、データ品質、データ プロファイリング、データ リネージのワークロードのサーバーレス コンピューティング(DCU)費用を割り当てます。
- データ ガバナンスを維持する: メタデータの検出とカタログの拡充に関連する指標を追跡して、データアセットがガバナンス ポリシーに従ってスキャンされ、タグ付けされていることを確認します。
仕組み
Knowledge Catalog は Cloud Monitoring と統合されています。Cloud Monitoring は、Knowledge Catalog サービスから指標、イベント、メタデータを収集します。これらの指標は、ジョブの実行ステータス、API の使用状況、リソースの健全性などの領域に関する分析情報を提供します。これらの指標は、Metrics Explorer、カスタム ダッシュボード、アラートなど、Cloud Monitoring のツールを使用して分析できます。これらのツールを使用すると、サービスの動作を可視化し、パフォーマンスの傾向を特定して、パフォーマンスが定義されたしきい値から逸脱した場合や障害が発生した場合に通知するアラート ポリシーを作成できます。
Monitoring でサービスの指標にアクセスする
Knowledge Catalog サービス リソース指標は、Knowledge Catalog サービスで自動的に有効になります。これらの指標を表示するには、Monitoring を使用します。
Monitoring には、Google Cloud コンソールから、または Monitoring API を使用してアクセスできます。
モニタリング グラフを表示できない場合やアラートを作成できない場合は、追加の Monitoring 権限が必要な場合があります。
コンソール
Google Cloud コンソールで、Metrics Explorer のページに移動します。
[指標を選択] メニューで、
Cloud Dataplexリソースを選択します。指標カテゴリを選択し、リストから指標を選択します。
指標に関する情報を表示するには、指標名の上にカーソルを置きます。
[適用] をクリックします。
省略可: フィルタの選択、指標ラベルによるグループ化、集計の実行、グラフ表示オプションの選択。
REST
filter 式で定義された指標を取得して一覧表示するには、Monitoring の timeSeries.list メソッドを使用します。
API リクエストを送信してレスポンスを表示するには、API ページで [この API を試す] テンプレートを使用します。
Monitoring の Knowledge Catalog サービス指標
Knowledge Catalog サービス指標を使用すると、サービスの健全性を簡単にモニタリングできます。
Cloud Billing のエクスポートを使用して Dataplex DCU の費用をモニタリングして割り当てる
Knowledge Catalog のデータ スキャン(自動データ品質とデータ プロファイリングを含む)とデータ リネージは、時系列指標を Cloud Monitoring に公開しないため、Cloud Billing から BigQuery へのエクスポートを使用して、プロジェクト、スキャン、データリソース全体でデータ コンピューティング ユニット(DCU)の使用量と費用を追跡、モニタリング、属性設定できます。
Dataplex の課金ラベル
Knowledge Catalog は、データ スキャンとデータリネージ用に発行された課金レコードにシステムラベルを自動的に付加します。これらのラベルは、Cloud Billing エクスポート テーブルの labels 配列でクエリできます。
| ラベルキー | ワークロード | 説明 |
|---|---|---|
goog-dataplex-datascan-id |
データ品質、データ プロファイリング | データスキャンの ID または名前。 |
goog-dataplex-datascan-job-id |
データ品質、データ プロファイリング | データスキャン ジョブの特定の実行 ID。 |
goog-dataplex-datascan-data-source-project |
データ品質、データ プロファイリング | スキャンされたデータソースを含む Google Cloud プロジェクト。 |
goog-dataplex-datascan-data-source-region |
データ品質、データ プロファイリング | スキャンされたデータソースの Google Cloud リージョン。 |
goog-dataplex-datascan-data-source-bigquery-dataset |
データ品質、データ プロファイリング | スキャンされたテーブルの BigQuery データセット ID。 |
goog-dataplex-datascan-data-source-bigquery-table |
データ品質、データ プロファイリング | スキャンされた BigQuery テーブル ID。 |
goog-dataplex-datascan-data-source-dataplex-lake |
データ品質、データ プロファイリング | Dataplex レイク ID(該当する場合)。 |
goog-dataplex-datascan-data-source-dataplex-zone |
データ品質、データ プロファイリング | Dataplex データゾーン ID(該当する場合)。 |
goog-dataplex-datascan-data-source-dataplex-entity |
データ品質、データ プロファイリング | Dataplex エンティティ ID(該当する場合)。 |
goog-dataplex-datascan-data-source-biglake-catalog |
データ品質、データ プロファイリング | BigLake カタログ ID(該当する場合)。 |
goog-dataplex-datascan-data-source-biglake-namespace |
データ品質、データ プロファイリング | BigLake 名前空間(該当する場合)。 |
goog-dataplex-datascan-data-source-biglake-table |
データ品質、データ プロファイリング | BigLake テーブル ID(該当する場合)。 |
goog-dataplex-workload-type |
データリネージ | ワークロードを識別します。データリネージ処理の料金の場合は LINEAGE に設定します。 |
クエリの例
これらのクエリを実行する前に、Cloud Billing の BigQuery へのエクスポートが有効になっていることを確認してください。クエリの例では、次のプレースホルダを置き換えます。
PROJECT_ID: BigQuery の課金エクスポート データセットをホストする Google Cloud プロジェクト ID。DATASET_NAME: 課金エクスポート テーブルを含む BigQuery データセットの名前。BILLING_ACCOUNT_ID: Cloud 請求先アカウント ID(アンダースコアでフォーマットします。例:012345_567890_ABCDEF)。
クエリ 1: DataScan とターゲット テーブル別の属性 DCU の費用と使用量
このクエリは、過去 30 日間の Dataplex 処理とプレミアム処理の費用を DataScan ID とターゲット BigQuery テーブルで集計します。
SELECT project.id AS project_id, (SELECT value FROM UNNEST(labels) WHERE key = 'goog-dataplex-datascan-id') AS datascan_id, (SELECT value FROM UNNEST(labels) WHERE key = 'goog-dataplex-datascan-data-source-project') AS data_source_project, (SELECT value FROM UNNEST(labels) WHERE key = 'goog-dataplex-datascan-data-source-bigquery-dataset') AS data_source_dataset, (SELECT value FROM UNNEST(labels) WHERE key = 'goog-dataplex-datascan-data-source-bigquery-table') AS data_source_table, sku.description AS sku_description, SUM(usage.amount) AS total_usage, usage.unit AS usage_unit, SUM(cost) AS total_cost, currency FROM `PROJECT_ID.DATASET_NAME.gcp_billing_export_v1_BILLING_ACCOUNT_ID` WHERE service.description = 'Dataplex' AND EXISTS (SELECT 1 FROM UNNEST(labels) WHERE key = 'goog-dataplex-datascan-id') AND _PARTITIONDATE >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY) GROUP BY project_id, datascan_id, data_source_project, data_source_dataset, data_source_table, sku_description, usage_unit, currency ORDER BY total_cost DESC;
クエリ 2: ワークロード タイプ(リネージと DataScan)別に Dataplex の費用を分類する
このクエリは、すべてのプロジェクトで Dataplex SKU の費用をワークロード カテゴリ(データリネージと DataScan など)別に分類します。
SELECT project.id AS project_id, sku.description AS sku_description, COALESCE( (SELECT value FROM UNNEST(labels) WHERE key = 'goog-dataplex-workload-type'), IF(EXISTS(SELECT 1 FROM UNNEST(labels) WHERE key = 'goog-dataplex-datascan-id'), 'DATASCAN', 'OTHER') ) AS workload_type, SUM(usage.amount) AS total_usage, usage.unit AS usage_unit, SUM(cost) AS total_cost, currency FROM `PROJECT_ID.DATASET_NAME.gcp_billing_export_v1_BILLING_ACCOUNT_ID` WHERE service.description = 'Dataplex' AND _PARTITIONDATE >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY) GROUP BY project_id, sku_description, workload_type, usage_unit, currency ORDER BY total_cost DESC;
クエリ 3: DataScan ジョブの実行ごとの 1 日の DCU 使用量と費用の傾向
このクエリは、過去 7 日間の個々の DataScan ジョブ実行の 1 日あたりの DCU 消費量と費用を追跡します。
SELECT DATE(usage_start_time) AS usage_date, project.id AS project_id, (SELECT value FROM UNNEST(labels) WHERE key = 'goog-dataplex-datascan-id') AS datascan_id, (SELECT value FROM UNNEST(labels) WHERE key = 'goog-dataplex-datascan-job-id') AS job_id, SUM(usage.amount) AS total_usage, usage.unit AS usage_unit, SUM(cost) AS total_cost, currency FROM `PROJECT_ID.DATASET_NAME.gcp_billing_export_v1_BILLING_ACCOUNT_ID` WHERE service.description = 'Dataplex' AND EXISTS (SELECT 1 FROM UNNEST(labels) WHERE key = 'goog-dataplex-datascan-id') AND _PARTITIONDATE >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) GROUP BY usage_date, project_id, datascan_id, job_id, usage_unit, currency ORDER BY usage_date DESC, total_cost DESC;
カスタム Monitoring ダッシュボードを構築する
選択した Knowledge Catalog サービス指標のグラフを表示するカスタム Monitoring ダッシュボードを構築できます。ダッシュボードの作成方法については、カスタム ダッシュボードの作成と管理をご覧ください。ダッシュボードのウィジェットの指標を選択する場合は、Cloud Dataplex リソースを選択してから、Knowledge Catalog 指標を選択します。
Monitoring アラートを使用する
Monitoring アラートを作成すると、Knowledge Catalog サービスやジョブの指標が指定されたしきい値を超えた場合に通知を受け取れます。
アラートを作成する
アラートを作成するには、指標しきい値のアラート ポリシーを作成するの手順に沿って操作します。モニタリング対象の時系列を選択するときは、Cloud Dataplex リソースを選択し、Knowledge Catalog 指標を選択します。
アラートを表示
指標しきい値条件によってアラートがトリガーされると、Monitoring によってインシデントと対応するイベントが作成されます。
インシデントを確認する手順は次のとおりです。
Google Cloud コンソールで、[アラート] ページに移動します。
アラート ポリシーに通知メカニズム(メールや SMS 通知など)を定義した場合も、Monitoring によってインシデントの通知が送信されます。
アラートの詳細については、指標ベースのアラートのインシデントをご覧ください。
次のステップ
- Cloud Monitoring の詳細について確認する。
- Cloud Billing から BigQuery へのエクスポートについて学習する。
- 自動データ品質を使用する方法を学習する。
- データ プロファイリングを使用する方法を確認する。
- データリネージを使用する方法を確認する。