自動データ品質を使用する

このドキュメントでは、Knowledge Catalog(以前の Dataplex Universal Catalog)のデータ品質スキャンを使用して、データの品質を測定、モニタリング、管理する方法について説明します。データ品質スキャンは、データの完全性、有効性、整合性を検証するプロセスを自動化するのに役立ちます。

データ品質スキャンでは、欠損値のチェック、値が正規表現と一致するかセットに属しているかの確認、一意性の検証、異常検出などの複雑な検証のためのカスタム SQL の使用を行うルールを定義できます。このドキュメントでは、データ品質スキャンを作成して管理する方法について説明します。

詳しくは、データ品質スキャンをご覧ください。複数のスキャンでデータ品質ルールを再利用する方法について学習する。

始める前に

  1. Dataplex API を有効にします。

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法をご覧ください。

    API の有効化

  2. 省略可: データ プロファイル スキャンの結果に基づいてデータ品質ルールの推奨事項を生成するには、データ プロファイル スキャンを作成して実行します。

必要なロールと権限

このセクションでは、Knowledge Catalog のデータ品質スキャンを使用するために必要な IAM ロールと権限について説明します。

ユーザーの役割と権限

データ品質スキャンの実行と管理に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

  • BigQuery テーブルでデータ品質スキャンを実行します。
  • データ品質スキャン結果を Knowledge Catalog に公開する:
  • DataScan リソースで特定のタスクを実行します。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

これらの事前定義ロールには、データ品質スキャンの実行と管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

データ品質スキャンの実行と管理には、次の権限が必要です。

  • BigQuery テーブルでデータ品質スキャンを実行します。
    • スキャンジョブを実行するには、プロジェクトに対する bigquery.jobs.create
    • スキャンする BigQuery テーブルに対する bigquery.tables.get
    • スキャンする BigQuery テーブルに対する bigquery.tables.getData
  • データ品質スキャン結果を Knowledge Catalog に公開します。
    • スキャンされたテーブルに対する bigquery.tables.update
    • テーブルと同じロケーションにある @bigquery エントリ グループに対する dataplex.entryGroups.useDataQualityScorecardAspect
  • DataScan を作成する: プロジェクトに対する dataplex.datascans.create
  • DataScan を削除する: プロジェクトに対する dataplex.datascans.delete
  • DataScan メタデータを表示する: プロジェクトに対する dataplex.datascans.get
  • ルールと結果を含む DataScan の詳細を表示する: プロジェクトに対する dataplex.datascans.getData
  • DataScan を一覧表示する: プロジェクトに対する dataplex.datascans.list
  • プロジェクトに対する DataScan: dataplex.datascans.run
  • DataScan を更新する: プロジェクトに対する dataplex.datascans.update
  • DataScan の IAM ポリシーを取得または設定する:
    • プロジェクトに対する dataplex.datascans.getIamPolicy
    • プロジェクトに対する dataplex.datascans.setIamPolicy

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

BigQuery の列レベルのアクセス ポリシーで保護されている列にアクセスする必要がある場合は、それらの列に対する権限も必要です。

Knowledge Catalog サービス アカウントのロールと権限

データ品質スキャンやデータ プロファイル スキャンをまだ作成していない場合、またはこのプロジェクトに Knowledge Catalog レイクがない場合は、gcloud beta services identity create --service=dataplex.googleapis.com を実行してサービス ID を作成してください。このコマンドは、Knowledge Catalog サービス ID が存在する場合に該当する ID を返します。

データ品質スキャンを含むプロジェクトの Knowledge Catalog サービス アカウントに、さまざまなソースからデータを読み取って結果をエクスポートするために必要な権限が付与されるように、データ品質スキャンを含むプロジェクトの Knowledge Catalog サービス アカウントに次の IAM ロールを付与するよう管理者に依頼してください。

  • BigQuery テーブルのデータを読み取る: スキャン対象のテーブルと、ルールで参照される他のテーブルに対する BigQuery データ閲覧者 roles/bigquery.dataViewer
  • Google Cloud Lakehouse テーブルデータで Iceberg REST カタログ、SAP Business Data Cloud Delta Lake、Apache Hive を読み取る: スキャン対象の各テーブルと、ルールで参照される他のテーブルに対する BigLake 閲覧者 roles/biglake.viewer
  • スキャン結果を BigQuery テーブルにエクスポートする: 結果のデータセットとテーブルに対する BigQuery データ編集者 roles/bigquery.dataEditor
  • Knowledge Catalog レイクに整理された BigQuery データをスキャンする:
  • Cloud Storage から BigQuery 外部テーブルをスキャンする: Cloud Storage バケットに対する Storage オブジェクト閲覧者 roles/storage.objectViewer

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

これらの事前定義ロールには、さまざまなソースからデータを読み取って結果をエクスポートするために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

さまざまなソースからデータを読み取り、結果をエクスポートするには、次の権限が必要です。

  • BigQuery テーブルデータを読み取る:
    • BigQuery テーブルに対する bigquery.tables.get
    • BigQuery テーブルに対する bigquery.tables.getData
  • スキャン結果を BigQuery テーブルにエクスポートします。
    • 結果データセットとテーブルに対する bigquery.datasets.get
    • 結果データセットとテーブルに対する bigquery.tables.create
    • 結果データセットとテーブルに対する bigquery.tables.get
    • 結果データセットとテーブルに対する bigquery.tables.getData
    • 結果データセットとテーブルに対する bigquery.tables.update
    • 結果のデータセットとテーブルに対する bigquery.tables.updateData
  • Knowledge Catalog レイクに整理された BigQuery データをスキャンする:
    • Dataplex リソースに対する dataplex.lakes.list
    • Dataplex リソースに対する dataplex.lakes.get
    • Dataplex リソースに対する dataplex.zones.list
    • Dataplex リソースに対する dataplex.zones.get
    • Dataplex リソースに対する dataplex.entities.list
    • Dataplex リソースに対する dataplex.entities.get
    • Dataplex リソースに対する dataplex.operations.get
  • Cloud Storage から BigQuery 外部テーブルをスキャンします。
    • Cloud Storage バケットに対する storage.buckets.get
    • Cloud Storage バケットに対する storage.objects.get

管理者は、データ品質スキャンを含むプロジェクトの Knowledge Catalog サービス アカウントに、カスタムロールや他の事前定義ロールを付与することもできます。

BigQuery の列レベルのアクセス ポリシーで保護されている列にアクセスする必要がある場合は、それらの列に対する権限を Knowledge Catalog サービス アカウントに割り当てます。

テーブルで BigQuery 行レベルのアクセス ポリシーが有効になっている場合、Knowledge Catalog サービス アカウントに表示される行のみをスキャンできます。行レベルのポリシーに対する個々のユーザーのアクセス権限は評価されません。

ネットワーキングの要件

スキャンを実行するには、スキャンに使用する VPC サブネットプライベート Google アクセスを有効にする必要があります。サブネットを指定しない場合は、デフォルトのサブネットで限定公開の Google アクセスが有効になっていることを確認してください。

データ品質ルールを定義する

データ品質ルールは、次のものを使用して定義できます。

Google Cloud CLI を使用している場合は、これらのルールを JSON ファイルまたは YAML ファイルで定義できます。

次のセクションの例では、さまざまなデータ品質ルールを定義する方法を示します。このルールは、顧客取引に関するデータを含むサンプル テーブルを検証しています。テーブルのスキーマは次のとおりであると想定しています。

列名 列の型 列の説明
transaction_timestamp タイムスタンプ 取引のタイムスタンプ。テーブルはこのフィールドでパーティション分割されます。
customer_id 文字列 8 文字に続いて 16 桁の数字の形式のお客様 ID。
transaction_id 文字列 取引 ID はテーブル全体で一意である必要があります。
currency_id String(文字列) サポートされている通貨のいずれか。通貨の種類は、ディメンション テーブル dim_currency で使用可能な通貨のいずれかと一致する必要があります。
amount 浮動小数点数 取引金額。
discount_pct 浮動小数点数 割引率。この値は 1~100 の範囲で指定してください。

組み込みルールの種類を使用してデータ品質ルールを定義する

次の例は、組み込みのルールの種類に基づいています。 Google Cloud コンソールまたは API を使用して、組み込みルールの種類に基づいてルールを作成できます。Knowledge Catalog は、これらのルールの一部を推奨する場合があります。

列名 ルールの種類 推奨サイズ ルールのパラメータ
transaction_id 一意性チェック 一意性 しきい値: Not Applicable
amount NULL チェック 完全性 しきい値: 100%
customer_id 正規表現チェック 有効性 正規表現: ^[a-zA-Z]{8}[0-9]{16}$
しきい値: 100%
currency_id 値セットチェック 有効性 セット: USD,JPY,INR,GBP,CAN
しきい値: 100%

カスタム SQL ルールを使用してデータ品質ルールを定義する

カスタム SQL ルールを構築するには、次のフレームワークを使用します。

  • 一度に 1 行を評価するルールを作成する場合は、Knowledge Catalog がクエリ SELECT COUNTIF(CUSTOM_SQL_EXPRESSION) FROM TABLE を評価する際に成功した行数を生成する式を作成します。Knowledge Catalog では、成功した行数がしきい値に対してチェックされます。

  • 行全体を評価する、またはテーブル条件を使用するルールを作成する場合は、Knowledge Catalog がクエリ SELECT IF(CUSTOM_SQL_EXPRESSION) FROM TABLE を評価する際に成功または失敗を返す式を作成します。

  • データセットの無効な状態を評価するルールを作成する場合は、無効な行を返すステートメントを指定します。行が返された場合、ルールは失敗します。SQL ステートメントの末尾のセミコロンを省略します。

  • ソーステーブルとそのフィルタを明示的に記述する代わりに、ルールでデータ参照パラメータ ${data()} を使用することで、データソース テーブルとそのすべての前提条件フィルタを参照できます。前提条件フィルタの例としては、行フィルタ、サンプリング パーセンテージ、増分フィルタなどがあります。${data()} パラメータでは大文字と小文字が区別されます。

次の例は、カスタム SQL ルールに基づいています。

ルールの種類 ルールの説明 SQL 式
行の条件 discount_pct の値が 0~100 の間かどうかを確認します。 0 <discount_pct および discount_pct < 100
行の条件 currency_id がサポートされている通貨のいずれかであることを検証するリファレンス チェック。 currency_id in (select id from my_project_id.dim_dataset.dim_currency)
テーブルの条件 平均 discount_pct が 30% から 50% の間であることを確認する集計 SQL 式。 30<avg(discount) AND avg(discount) <50
行の条件 日付が将来でないかを確認します。 TIMESTAMP(transaction_timestamp) < CURRENT_TIMESTAMP()
テーブルの条件 平均取引金額が国ごとに事前に定義された値より小さいことを確認する BigQuery ユーザー定義関数(UDF)。次のコマンドを実行して、(JavaScript)UDF を作成します。
        CREATE OR REPLACE FUNCTION
        myProject.myDataset.average_by_country (
          country STRING, average FLOAT64)
        RETURNS BOOL LANGUAGE js AS R"""
        if (country = "CAN" && average < 5000){
          return 1
        } else if (country = "IND" && average < 1000){
          return 1
        } else { return 0 }
        """;
       
country=CAN の平均取引金額を確認するルールの例。
        myProject.myDataset.average_by_country(
        "CAN",
        (SELECT avg(amount) FROM
          myProject.myDataset.transactions_table
            WHERE currency_id = 'CAN'
        ))
      
テーブルの条件 discount_pct の異常を識別する BigQuery ML 予測句。割引が customercurrencytransaction に基づいて適用されるかどうかを確認します。このルールは、予測が実際の値と一致するかどうかについて、99% 以上の場合を確認します。前提条件: ML モデルは、ルールを使用する前に作成されます。次のコマンドを使用して ML モデルを作成します。
  CREATE MODEL
  model-project-id.dataset-id.model-name
        OPTIONS(model_type='logistic_reg') AS
  SELECT
  IF(discount_pct IS NULL, 0, 1) AS label,
  IFNULL(customer_id, "") AS customer,
  IFNULL(currency_id, "") AS currency,
  IFNULL(amount, 0.0) AS amount
  FROM
  `data-project-id.dataset-id.table-names`
  WHERE transaction_timestamp < '2022-01-01';
  
次のルールで、予測精度が 99% より大きいかを確認します。
      SELECT
        accuracy > 0.99
      FROM
       ML.EVALUATE
        (MODEL model-project-id.dataset-id.model-name,
         (
          SELECT
            customer_id,
            currency_id,
            amount,
            discount_pct
          FROM
            data-project-id.dataset-id.table-names
          WHERE transaction_timestamp > '2022-01-01';
         )
        )
    
行の条件 discount_pct の異常を識別する BigQuery ML 予測関数。この関数は、customercurrencytransaction に基づいて割引を適用するかどうかを確認します。このルールは、予測が一致しなかったすべての発生回数を識別します。前提条件: ML モデルは、ルールを使用する前に作成されます。次のコマンドを使用して ML モデルを作成します。
  CREATE MODEL
  model-project-id.dataset-id.model-name
        OPTIONS(model_type='logistic_reg') AS
  SELECT
  IF(discount_pct IS NULL, 0, 1) AS label,
  IFNULL(customer_id, "") AS customer,
  IFNULL(currency_id, "") AS currency,
  IFNULL(amount, 0.0) AS amount
  FROM
  `data-project-id.dataset-id.table-names`
  WHERE transaction_timestamp < '2022-01-01';
  
次のルールでは、割引予測がすべての行の実際のものと一致するかどうかを確認します。
       IF(discount_pct > 0, 1, 0)
          =(SELECT predicted_label FROM
           ML.PREDICT(
            MODEL model-project-id.dataset-id.model-name,
              (
                SELECT
                  customer_id,
                  currency_id,
                  amount,
                  discount_pct
                FROM
                  data-project-id.dataset-id.table-names AS t
                    WHERE t.transaction_timestamp =
                     transaction_timestamp
                   LIMIT 1
              )
            )
         )
    
SQL アサーション 割引率が 30 以下の行が存在するかを確認して、今日の discount_pct が 30% より大きいかを検証します。 SELECT * FROM my_project_id.dim_dataset.dim_currency WHERE discount_pct <= 30 AND transaction_timestamp >= current_date()
SQL アサーション(データ参照パラメータを指定)

現在サポートされているすべての通貨で discount_pct が 30% より大きいかを確認します。

日付フィルタ transaction_timestamp >= current_date() が、データソース テーブルの行フィルタとして適用されます。

データ参照パラメータ ${data()}my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date() のプレースホルダとして機能し、行フィルタを適用します。

SELECT * FROM ${data()} WHERE discount_pct > 30

gcloud CLI を使用してデータ品質ルールを定義する

次の YAML ファイルの例では、組み込み型を使用したサンプルルールおよびカスタム SQL のサンプルルールと同じルールをいくつか使用しています。この YAML ファイルには、フィルタやサンプリング率など、データ品質スキャンの他の仕様も含まれています。gcloud CLI を使用してデータ品質スキャンを作成または更新する際、このような YAML ファイルを --data-quality-spec-file 引数の入力として使用できます。

rules:
- uniquenessExpectation: {}
  column: transaction_id
  dimension: UNIQUENESS
- nonNullExpectation: {}
  column: amount
  dimension: COMPLETENESS
  threshold: 1
- regexExpectation:
    regex: '^[a-zA-Z]{8}[0-9]{16}$'
  column : customer_id
  ignoreNull : true
  dimension : VALIDITY
  threshold : 1
- setExpectation :
    values :
    - 'USD'
    - 'JPY'
    - 'INR'
    - 'GBP'
    - 'CAN'
  column : currency_id
  ignoreNull : true
  dimension : VALIDITY
  threshold : 1
- rangeExpectation:
    minValue : '0'
    maxValue : '100'
  column : discount_pct
  ignoreNull : true
  dimension : VALIDITY
  threshold : 1
- rowConditionExpectation:
    sqlExpression : 0 < `discount_pct` AND `discount_pct` < 100
  column: discount_pct
  dimension: VALIDITY
  threshold: 1
- rowConditionExpectation:
    sqlExpression : currency_id in (select id from `my_project_id.dim_dataset.dim_currency`)
  column: currency_id
  dimension: VALIDITY
  threshold: 1
- tableConditionExpectation:
    sqlExpression : 30 < avg(discount_pct) AND avg(discount_pct) < 50
  dimension: VALIDITY
- rowConditionExpectation:
    sqlExpression : TIMESTAMP(transaction_timestamp) < CURRENT_TIMESTAMP()
  column: transaction_timestamp
  dimension: VALIDITY
  threshold: 1
- sqlAssertion:
    sqlStatement : SELECT * FROM `my_project_id.dim_dataset.dim_currency` WHERE discount_pct > 100
  dimension: VALIDITY
  debugQueries:
  - sqlStatement: SELECT MAX(discount_pct) FROM `my_project_id.dim_dataset.dim_currency`
samplingPercent: 50
rowFilter: discount_pct > 100
postScanActions:
  bigqueryExport:
    resultsTable: projects/my_project_id/datasets/dim_dataset/tables/dim_currency
  notificationReport:
    recipients:
      emails:
      - '222larabrown@gmail.com'
      - 'cloudysanfrancisco@gmail.com'
    scoreThresholdTrigger:
      scoreThreshold: 50
    jobFailureTrigger: {}
    jobEndTrigger: {}
catalogPublishingEnabled: true

実行 ID を構成する

デフォルトでは、データ品質スキャンは Knowledge Catalog サービス アカウントを使用して実行されます。これをオーバーライドして、カスタム サービス アカウントまたは独自のエンドユーザー認証情報(EUC)を使用できます。

カスタム実行 ID を使用すると、スキャンの請求方法が変わります。カスタム実行 ID を指定すると、スキャンに関連するコンピューティング費用とストレージ費用は、標準の Knowledge Catalog Premium SKU をバイパスして、BigQuery プロジェクトに直接請求されます。

カスタム実行 ID に必要な権限

カスタム サービス アカウントを構成するか、エンドユーザーの認証情報を使用するには、次の Identity and Access Management(IAM)権限が必要です。

  • カスタム サービス アカウントを使用するには、次のものが必要です。
    • サービス アカウントを含むプロジェクトに付与された iam.serviceAccounts.actAs 権限(roles/iam.serviceAccountUser など)。
    • プロジェクトのサービス エージェント(service-PROJECT_NUMBER@gcp-sa-dataplex.)には、カスタム サービス アカウントに対する iam.serviceAccounts.getAccessToken 権限が必要です(たとえば、roles/iam.serviceAccountTokenCreator ロールがあるなど)。
    • カスタム サービス アカウントには、スキャンするテーブルに対する bigquery.tables.getData、スキャン プロジェクトに対する bigquery.jobs.insert、エクスポート データセットに対する bigquery.dataEditor(エクスポートを使用する場合)が必要です。
  • エンドユーザー認証情報を使用するには、次のものが必要です。
    • スキャンするテーブルに対する bigquery.tables.getData
    • スキャン プロジェクトに対する bigquery.jobs.insert
    • エクスポート データセットの bigquery.dataEditor(エクスポートを使用している場合)。

実行 ID を構成するには、次のいずれかのオプションを選択します。

コンソール

Google Cloud コンソールで実行 ID を構成するには、データ品質スキャンを作成するときに ID を選択します。

[実行 ID] セクションで、次のいずれかを選択します。

  • Dataplex サービス エージェント: デフォルトの動作。
  • サービス アカウント: 使用するサービス アカウントのメールアドレスを入力します。
  • ユーザー認証情報: 独自の認証情報を使用してスキャンを実行します。

REST

カスタム サービス アカウントを使用するには、create リクエスト中に DataScan リソース定義に executionIdentity オブジェクトを追加します。

"executionIdentity": {
  "serviceAccount": {
     "email": "YOUR_SERVICE_ACCOUNT_EMAIL"
  }
}
  

次のように置き換えます。

  • YOUR_SERVICE_ACCOUNT_EMAIL: 使用するサービス アカウントのメールアドレス。

エンドユーザー認証情報を使用するには、代わりに userCredential オブジェクトを指定します。

"executionIdentity": {
  "userCredential": {}
}
  

データ品質スキャンを作成する

コンソール

  1. Google Cloud コンソールで、Knowledge Catalog の [データのプロファイリングと品質] ページに移動します。

    [データのプロファイリングと品質] に移動

  2. [データ品質スキャンの作成] をクリックします。

  3. [スキャンの定義] ウィンドウで、次のフィールドに入力します。

    1. 省略可: 表示名を入力します。

    2. ID を入力します。リソースの命名規則をご覧ください。

    3. (省略可)説明を入力します。

    4. [テーブル] フィールドで、[参照] をクリックします。スキャンするテーブルを選択し、[選択] をクリックします。標準の BigQuery、Iceberg REST Catalog、SAP BDC Delta、Hive on Google CloudLakehouse テーブルのみがサポートされています。

      マルチリージョン データセット内のテーブルの場合は、データスキャンを作成するリージョンを選択します。

      Knowledge Catalog レイク内で整理されたテーブルを参照するには、[Knowledge Catalog レイク内のブラウジング] をクリックします。

    5. [スコープ] フィールドで、[増分] または [データ全体] を選択します。

      • [増分] を選択した場合、[タイムスタンプ列] フィールドで、新しいレコードが追加されるたびに増加し、新しいレコードの識別に使用できる BigQuery テーブルから、DATE 型または TIMESTAMP 型の列を選択します。テーブルを分割する列でもかまいません。
    6. 省略可: データをフィルタするには、[行のフィルタリング] チェックボックスをオンにします。GoogleSQL 構文の WHEREの一部として使用できる有効な SQL 式で構成される行フィルタを指定します。例: col1 >= 0フィルタには、複数の列条件を組み合わせることができます。例: col1 >= 0 AND col2 < 10

    7. データをサンプリングするには、[サンプリング サイズ] リストでサンプリング率を選択します。0.0~100.0% の範囲のパーセンテージ値(小数点以下 3 桁まで)を選択します。大規模なデータセットの場合は、低いサンプリング率を選択します。たとえば、1 PB のテーブルの場合、0.1%~1.0% の値を入力すると、データ品質スキャンは 1~10 TB のデータをサンプリングします。増分データスキャンの場合、データ品質スキャンは最新の増分にサンプリングを適用します。

    8. 省略可: データ品質スキャンの結果を Knowledge Catalog メタデータとして公開するには、[Knowledge Catalog に結果を公開する] チェックボックスをオンにします。

      最新のスキャン結果は、ソーステーブルの BigQuery ページと Knowledge Catalog ページの [データ品質] タブで表示できます。ユーザーが公開されたスキャン結果にアクセスできるようにするには、このドキュメントのデータ品質スキャンの結果へのアクセスを許可するをご覧ください。

    9. [認証情報のタイプ] については、実行 ID を構成するをご覧ください。

    10. ルールを使用してデータ品質スキャンを作成するには、[ルールの種類> エントリベースのルールで作成] を選択します。

    11. [スケジュール] セクションで、次のいずれかのオプションを選択します。

      • 繰り返し: データ品質スキャンを 1 時間ごと、毎日、毎週、毎月、カスタムのいずれかのスケジュールで実行します。スキャンの実行頻度と時間を指定します。[カスタム] を選択した場合は、cron 形式を使用してスケジュールを指定します。

      • オンデマンド: データ品質スキャンをオンデマンドで実行します。

      • 1 回限りの実行: データ品質スキャンを今すぐ 1 回実行し、自動削除後にスキャンを削除します。この機能はプレビュー版です。

        • スキャン後の結果の自動削除を設定する: 自動削除時間は、スキャンが実行されてから削除されるまでの期間です。自動削除時間が指定されていないデータ品質スキャンは、実行後 24 時間で自動的に削除されます。自動削除の期間は 0 秒(即時削除)から 365 日の範囲で設定できます。
    12. [続行] をクリックします。

  4. [データ品質ルール] ウィンドウで、このデータ品質スキャン用に構成するルールを定義します。

    1. [ルールを追加] をクリックし、次のいずれかのオプションを選択します。

      • プロフィールに基づく推奨事項: 既存のデータ プロファイリング スキャンに基づいて、推奨事項からルールを作成します。

        1. 列の選択: 推奨ルールを取得する列を選択します。

        2. スキャン プロジェクトの選択: データ プロファイリング スキャンがデータ品質スキャンを作成するプロジェクトとは異なるプロジェクトにある場合は、プロファイル スキャンを取得するプロジェクトを選択します。

        3. プロファイルの結果を選択: 1 つ以上のプロファイルの結果を選択し、[OK] をクリックします。これにより、出発点として使用できる推奨ルールのリストが入力されます。

        4. 追加するルールのチェックボックスをオンにして、[選択] をクリックします。選択したルールは、現在のルールリストに追加されます。その後、ルールを編集できます。

      • 組み込みルールの種類: 事前定義ルールからルールを作成します。事前定義ルールのリストを確認します。

        1. 列の選択: ルールを選択する列を選択します。

        2. ルールの種類を選択: 選択するルールの種類を選択し、[OK] をクリックします。表示されるルールの種類は、選択した列によって異なります。

        3. 追加するルールのチェックボックスをオンにして、[選択] をクリックします。選択したルールは、現在のルールリストに追加されます。その後、ルールを編集できます。

      • SQL 行チェックルール: 各行に適用するカスタム SQL ルールを作成します。

        1. [ディメンション] で、ディメンションを 1 つ選択します。

        2. [合格のしきい値] で、チェックに合格する必要があるレコードの割合を選択します。

        3. [列名] で列を選択します。

        4. [SQL 式を指定] フィールドに、ブール値の true(合格)または false(不合格)と評価される SQL 式を入力します。詳細については、サポートされているカスタム SQL ルールの種類と、データ品質ルールを定義するの例をご覧ください。

        5. [追加] をクリックします。

      • SQL 集計チェックルール: カスタム SQL テーブル条件ルールを作成します。

        1. [ディメンション] で、ディメンションを 1 つ選択します。

        2. [列名] で列を選択します。

        3. [SQL 式を指定] フィールドに、ブール値の true(合格)または false(不合格)と評価される SQL 式を入力します。詳細については、サポートされているカスタム SQL ルールの種類と、データ品質ルールを定義するの例をご覧ください。

        4. [追加] をクリックします。

      • SQL アサーション ルール: データの無効な状態を確認するカスタム SQL アサーション ルールを作成します。

        1. [ディメンション] で、ディメンションを 1 つ選択します。

        2. 省略可: [列名] で列を選択します。

        3. [SQL ステートメントを指定] フィールドに、無効な状態と一致する行を返す SQL ステートメントを入力します。行が返された場合、このルールは失敗します。SQL ステートメントの末尾のセミコロンを省略します。詳細については、サポートされているカスタム SQL ルールの種類と、データ品質ルールを定義するの例をご覧ください。

        4. [追加] をクリックします。

    2. 省略可: どのデータ品質ルールでも、モニタリングとアラートに使用するカスタムルール名と説明を割り当てることができます。これを行うには、ルールを編集して、次の詳細を指定します。

      • ルール名: カスタムルール名を 63 文字以下で入力します。ルール名には、文字(az、AZ)、数字(0~9)、ハイフン(-)を使用できます。先頭は文字、末尾は数字または文字にする必要があります
      • 説明: ルールの説明を入力します。最大長は 1,024 文字です。
    3. 前の手順を繰り返して、データ品質スキャンにルールを追加します。完了したら、[次へ] をクリックします。

  5. 省略可: スキャン結果を BigQuery 標準テーブルにエクスポートします。[スキャン結果を BigQuery テーブルにエクスポートする] セクションで、次の操作を行います。

    1. [BigQuery データセットの選択] フィールドで、[参照] をクリックします。 データ品質のスキャン結果を保存する BigQuery データセットを選択します。

    2. [BigQuery テーブル] フィールドで、データ品質スキャンの結果を保存するテーブルを指定します。既存のテーブルを使用している場合は、エクスポート テーブル スキーマと互換性があることを確認してください。指定したテーブルが存在しない場合は、Knowledge Catalog によって作成されます。

  6. 省略可: ラベルを追加します。ラベルは、関連するオブジェクトをまとめてグループ化したり、他の Google Cloud リソースと組み合わせてグループ化できる Key-Value ペアです。

  7. 省略可: データ品質スキャンジョブのステータスと結果に関するアラートを送信するメール通知レポートを設定します。[通知レポート] セクションで [メール ID を追加] をクリックし、最大 5 つのメールアドレスを入力します。次に、レポートの送信先のシナリオを選択します。

    • 品質スコア(<=): ジョブが成功し、データ品質スコアが指定された目標スコアより低い場合にレポートを送信します。0~100 のターゲット品質スコアを入力します。
    • ジョブの失敗: データ品質の結果に関係なく、ジョブ自体が失敗するとレポートが送信されます。
    • ジョブの完了(成功または失敗): データ品質の結果に関係なく、ジョブが終了するとレポートが送信されます。
  8. [作成] をクリックします。

    スキャンが作成されたら、[今すぐ実行] をクリックすることで、いつでもスキャンを実行できます。

gcloud

データ品質スキャンを作成するには、gcloud dataplex datascans create data-quality コマンドを使用します。

ソースデータが Knowledge Catalog レイクに編成されている場合は、--data-source-entity フラグを指定します。

gcloud dataplex datascans create data-quality DATASCAN \
    --location=LOCATION \
    --data-quality-spec-file=DATA_QUALITY_SPEC_FILE \
    --data-source-entity=DATA_SOURCE_ENTITY

ソースデータが Knowledge Catalog レイクに編成されていない場合は、--data-source-resource フラグを指定します。

gcloud dataplex datascans create data-quality DATASCAN \
    --location=LOCATION \
    --data-quality-spec-file=DATA_QUALITY_SPEC_FILE \
    --data-source-resource=DATA_SOURCE_RESOURCE

次の変数を置き換えます。

  • DATASCAN: データ品質スキャンの名前。
  • LOCATION: データ品質スキャンを作成する Google Cloud リージョン。
  • DATA_QUALITY_SPEC_FILE: データ品質スキャンの仕様を含む JSON または YAML ファイルのパス。このファイルは、ローカル ファイルまたは接頭辞 gs:// を持つ Cloud Storage パスです。このファイルを使用して、スキャンのデータ品質ルールを指定します。このファイルで、フィルタ、サンプリング率、BigQuery へのエクスポートやメール通知レポートの送信などのスキャン後のアクションなどのその他の詳細を指定することもできます。JSON 表現のドキュメントYAML 表現の例をご覧ください。
  • DATA_SOURCE_ENTITY: データ品質スキャンのデータを含む Knowledge Catalog エンティティ。例: projects/test-project/locations/test-location/lakes/test-lake/zones/test-zone/entities/test-entity
  • DATA_SOURCE_RESOURCE: データ品質スキャンのデータを含むリソースの名前。例: //bigquery.googleapis.com/projects/test-project/datasets/test-dataset/tables/test-table

C#

C#

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある C# の設定手順を行ってください。詳細については、Knowledge Catalog C# API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

using Google.Api.Gax.ResourceNames;
using Google.Cloud.Dataplex.V1;
using Google.LongRunning;

public sealed partial class GeneratedDataScanServiceClientSnippets
{
    /// <summary>Snippet for CreateDataScan</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void CreateDataScanRequestObject()
    {
        // Create client
        DataScanServiceClient dataScanServiceClient = DataScanServiceClient.Create();
        // Initialize request argument(s)
        CreateDataScanRequest request = new CreateDataScanRequest
        {
            ParentAsLocationName = LocationName.FromProjectLocation("[PROJECT]", "[LOCATION]"),
            DataScan = new DataScan(),
            DataScanId = "",
            ValidateOnly = false,
        };
        // Make the request
        Operation<DataScan, OperationMetadata> response = dataScanServiceClient.CreateDataScan(request);

        // Poll until the returned long-running operation is complete
        Operation<DataScan, OperationMetadata> completedResponse = response.PollUntilCompleted();
        // Retrieve the operation result
        DataScan result = completedResponse.Result;

        // Or get the name of the operation
        string operationName = response.Name;
        // This name can be stored, then the long-running operation retrieved later by name
        Operation<DataScan, OperationMetadata> retrievedResponse = dataScanServiceClient.PollOnceCreateDataScan(operationName);
        // Check if the retrieved long-running operation has completed
        if (retrievedResponse.IsCompleted)
        {
            // If it has completed, then access the result
            DataScan retrievedResult = retrievedResponse.Result;
        }
    }
}

Go

Go

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Go の設定手順を行ってください。詳細については、Knowledge Catalog Go API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。


//go:build examples

package main

import (
	"context"

	dataplex "cloud.google.com/go/dataplex/apiv1"
	dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := dataplex.NewDataScanClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &dataplexpb.CreateDataScanRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#CreateDataScanRequest.
	}
	op, err := c.CreateDataScan(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}

	resp, err := op.Wait(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

Java

Java

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Java の設定手順を行ってください。詳細については、Knowledge Catalog Java API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

import com.google.cloud.dataplex.v1.CreateDataScanRequest;
import com.google.cloud.dataplex.v1.DataScan;
import com.google.cloud.dataplex.v1.DataScanServiceClient;
import com.google.cloud.dataplex.v1.LocationName;

public class SyncCreateDataScan {

  public static void main(String[] args) throws Exception {
    syncCreateDataScan();
  }

  public static void syncCreateDataScan() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (DataScanServiceClient dataScanServiceClient = DataScanServiceClient.create()) {
      CreateDataScanRequest request =
          CreateDataScanRequest.newBuilder()
              .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
              .setDataScan(DataScan.newBuilder().build())
              .setDataScanId("dataScanId1260787906")
              .setValidateOnly(true)
              .build();
      DataScan response = dataScanServiceClient.createDataScanAsync(request).get();
    }
  }
}

Node.js

Node.js

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Node.js の設定手順を行ってください。詳細については、Knowledge Catalog Node.js API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// ** This file is automatically generated by gapic-generator-typescript. **
// ** https://github.com/googleapis/gapic-generator-typescript **
// ** All changes to this file may be overwritten. **



'use strict';

function main(parent, dataScan) {
  /**
   * This snippet has been automatically generated and should be regarded as a code template only.
   * It will require modifications to work.
   * It may require correct/in-range values for request initialization.
   * TODO(developer): Uncomment these variables before running the sample.
   */
  /**
   *  Required. The resource name of the parent location:
   *  `projects/{project}/locations/{location_id}`
   *  where `project` refers to a *project_id* or *project_number* and
   *  `location_id` refers to a Google Cloud region.
   */
  // const parent = 'abc123'
  /**
   *  Required. DataScan resource.
   */
  // const dataScan = {}
  /**
   *  Optional. DataScan identifier. If not provided, a unique ID will be
   *  generated with the prefix "data-scan-".
   *  * Must contain only lowercase letters, numbers and hyphens.
   *  * Must start with a letter.
   *  * Must end with a number or a letter.
   *  * Must be between 1-63 characters.
   *  * Must be unique within the customer project / location.
   */
  // const dataScanId = 'abc123'
  /**
   *  Optional. Only validate the request, but do not perform mutations.
   *  The default is `false`.
   */
  // const validateOnly = true

  // Imports the Dataplex library
  const {DataScanServiceClient} = require('@google-cloud/dataplex').v1;

  // Instantiates a client
  const dataplexClient = new DataScanServiceClient();

  async function callCreateDataScan() {
    // Construct request
    const request = {
      parent,
      dataScan,
    };

    // Run request
    const [operation] = await dataplexClient.createDataScan(request);
    const [response] = await operation.promise();
    console.log(response);
  }

  callCreateDataScan();
}

process.on('unhandledRejection', err => {
  console.error(err.message);
  process.exitCode = 1;
});
main(...process.argv.slice(2));

Python

Python

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Python の設定手順を行ってください。詳細については、Knowledge Catalog Python API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

# Copyright 2026 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import google.api_core.exceptions
from google.cloud import dataplex_v1


def create_data_quality_scan_global(
    project_id: str,
    dataset_id: str,
    table_id: str,
    location: str,
    column_id_1: str,
    column_id_2: str,
) -> None:
    """Creates a Dataplex Data Quality Scan using global API endpoint routing.

    Args:
        project_id (str): Google Cloud project ID where the scan is created.
        dataset_id (str): Target BigQuery dataset ID.
        table_id (str): Target BigQuery table ID to scan.
        location (str): Google Cloud region where serverless compute runs.
        column_id_1 (str): Name of the first column to evaluate.
        column_id_2 (str): Name of the second column to evaluate.
    """
    client = dataplex_v1.DataScanServiceClient()

    parent = client.common_location_path(project=project_id, location=location)

    # A bigquery table with at least 2 columns is assumed.
    bigquery_table = (
        f"//bigquery.googleapis.com/projects/{project_id}"
        f"/datasets/{dataset_id}/tables/{table_id}"
    )

    data_quality_spec = dataplex_v1.DataQualitySpec(
        rules=[
            dataplex_v1.DataQualityRule(
                name="global-null-assertion",
                dimension="COMPLETENESS",
                description="Fails if any row contains a null value",
                sql_assertion=dataplex_v1.DataQualityRule.SqlAssertion(
                    # Use ${data()} as the placeholder for the table Dataplex is scanning
                    sql_statement=(
                        "SELECT * FROM ${data()} "
                        f"WHERE {column_id_1} IS NULL OR {column_id_2} IS NULL"
                    )
                ),
            )
        ]
    )

    data_scan = dataplex_v1.DataScan(
        display_name="Global Data Quality Scan",
        data=dataplex_v1.DataSource(resource=bigquery_table),
        data_quality_spec=data_quality_spec,
    )

    request = dataplex_v1.CreateDataScanRequest(parent=parent, data_scan=data_scan)

    try:
        operation = client.create_data_scan(request=request)
        print(operation.result())
    except google.api_core.exceptions.AlreadyExists:
        print("A scan with this ID already exists.")
    except google.api_core.exceptions.InvalidArgument as e:
        print(f"Your scan configuration is invalid: {e}")
    except google.api_core.exceptions.GoogleAPIError as e:
        print(f"Unexpected exception: {e}")

Ruby

Ruby

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Ruby の設定手順を行ってください。詳細については、Knowledge Catalog Ruby API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

require "google/cloud/dataplex/v1"

##
# Snippet for the create_data_scan call in the DataScanService service
#
# This snippet has been automatically generated and should be regarded as a code
# template only. It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in https://cloud.google.com/ruby/docs/reference.
#
# This is an auto-generated example demonstrating basic usage of
# Google::Cloud::Dataplex::V1::DataScanService::Client#create_data_scan.
#
def create_data_scan
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::Dataplex::V1::DataScanService::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Cloud::Dataplex::V1::CreateDataScanRequest.new

  # Call the create_data_scan method.
  result = client.create_data_scan request

  # The returned object is of type Gapic::Operation. You can use it to
  # check the status of an operation, cancel it, or wait for results.
  # Here is how to wait for a response.
  result.wait_until_done! timeout: 60
  if result.response?
    p result.response
  else
    puts "No response received."
  end
end

REST

データ品質スキャンを作成するには、dataScans.create メソッドを使用します。

次のリクエストでは、1 回限りのデータ品質スキャンを作成しています。

POST https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataScans?data_scan_id=DATASCAN_ID

{
"data": {
  "resource": "//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID"
},
"type": "DATA_QUALITY",
"executionSpec": {
  "trigger": {
    "oneTime": {
      "ttl_after_scan_completion": "120s"
    }
  }
},
"dataQualitySpec": {
  "rules": [
    {
      "nonNullExpectation": {},
      "column": "COLUMN_NAME",
      "dimension": "DIMENSION",
      "threshold": 1
    }
  ],
  "filter": "FILTER_CONDITION"
}
}

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • LOCATION: データ品質スキャンを作成するリージョン。
  • DATASCAN_ID: データ品質スキャンの ID。
  • DATASET_ID: BigQuery データセットの ID。
  • TABLE_ID: BigQuery テーブルの ID。
  • COLUMN_NAME: ルールの列名。
  • DIMENSION: ルールのディメンション(VALIDITY など)。
  • FILTER_CONDITION: ルールを条件付きで実行するための AIP-160 フィルタ文字列(省略可)(例: name = \"RULE_NAME\")。

データ プロファイリング スキャンの結果に基づくルールの推奨事項を使用してデータ品質スキャンのルールを作成する場合は、データ プロファイリング スキャンで dataScans.jobs.generateDataQualityRules メソッドを呼び出して推奨事項を取得します。

テーブル スキーマをエクスポートする

データ品質スキャンの結果を既存の BigQuery テーブルにエクスポートするには、次のテーブル スキーマと互換性があることを確認します。

列名 列データ型 サブフィールド名
(該当する場合)
サブフィールドのデータ型 モード
data_quality_scan struct/record resource_name string nullable //dataplex.googleapis.com/projects/test-project/locations/europe-west2/datascans/test-datascan
project_id string null でも可 dataplex-back-end-dev-project
location string null でも可 us-central1
data_scan_id string null でも可 test-datascan
display_name string null でも可 datascan-display-name
data_source struct/record resource_name string null でも可 エンティティのケース:
//dataplex.googleapis.com/projects/dataplex-back-end-dev-project/locations/europe-west2/lakes/a0-datascan-test-lake/zones/a0-datascan-test-zone/entities/table1

テーブルのケース: //bigquery.googleapis.com/projects/test-project/datasets/test-dataset/tables/test-table
dataplex_entity_project_id string null でも可 dataplex-back-end-dev-project
dataplex_entity_project_number integer null でも可 123456789
dataplex_lake_id string null でも可 (ソースがエンティティである場合にのみ有効)
test-lake
dataplex_zone_id string null でも可 (ソースがエンティティである場合にのみ有効)
test-zone
dataplex_entity_id string null でも可 (ソースがエンティティである場合にのみ有効)
test-entity
table_project_id string null でも可 test-project
table_project_number integer null でも可 987654321
dataset_id string null でも可 (ソースがテーブルである場合にのみ有効)
test-dataset
table_id string null でも可 (ソースがテーブルである場合にのみ有効)
test-table
data_quality_job_id string nullable caeba234-cfde-4fca-9e5b-fe02a9812e38
data_quality_job_configuration json nullable {"trigger": "ondemand", "incremental": true}
job_labels json null でも可 {"key1":value1}
job_start_time timestamp null でも可 2023-01-01 00:00:00 UTC
job_end_time timestamp nullable 2023-01-01 00:00:00 UTC
job_quality_result struct/record passed boolean nullable true/false
score float nullable 90.8
incremental_start string null でも可 2023-01-01T00:00:00
incremental_end string nullable 2024-01-01T00:00:00
job_dimension_result json nullable {"ACCURACY":{"passed":true,"score":100},"CONSISTENCY":{"passed":false,"score":60}}
job_rows_scanned integer nullable 7500
rule_name string nullable test-rule
rule_description string nullable Test rule description
rule_type string nullable Range Check
rule_evaluation_type string nullable Per row
rule_column string nullable Rule only attached to a certain column
rule_dimension string nullable UNIQUENESS
rule_threshold_percent float nullable (0.0〜100.0)
Rule-threshold-pct in API * 100
rule_parameters json nullable {min: 24, max:5345}
rule_passed boolean nullable true
rule_rows_evaluated integer nullable 7400
rule_rows_passed integer nullable 3
rule_rows_passed_percent float nullable (0.0〜100.0)
80.0(80% を示す)
rule_rows_null integer nullable 4
rule_failed_records_query string nullable "SELECT * FROM `test-project.test-dataset.test-table` WHERE (NOT((`cTime` >= '15:31:38.776361' and `cTime` <= '19:23:53.754823') IS TRUE));"
created_on timestamp nullable 2023-01-01 00:00:00 UTC
last_updated timestamp nullable 2023-01-01 00:00:00 UTC
rule_assertion_row_count integer nullable 10
debug_queries struct/record description string nullable Test debug query description
sql_statement string nullable SELECT MIN(col1) AS min_col1, AVG(col1) FROM ${data()}
debug_query_results struct/record repeated [{"name": "min_col1", "type": "INTEGER", "value": "5"}, {"type": "FLOAT", "value": "7"}]
name string nullable クエリ結果の列名(min_col1 など)
type string nullable クエリ結果列の型(INTEGER など)
value string nullable クエリ結果の列の値(5 など)
rule_attributes json nullable {"key": "value"}
rule_source struct/record rule_path_elements struct/record repeated [{"entry_source": {"entry_type": "bigquery_table"}}]
entry_source struct/record nullable {"entry_type": "bigquery_table"}
  ↳ entry_type string nullable bigquery_table
  ↳ entry string nullable projects/test-project/locations/us/entryGroups/@bigquery/entries/test-table
  ↳ display_name string nullable test-table
entry_link_source struct/record nullable {"entry_link_type": "table_spec"}
  ↳ entry_link_type string nullable table_spec
  ↳ entry_link string nullable projects/test-project/locations/us/entryLinks/test-link

データ品質スキャンジョブに BigQueryExport を構成する場合は、次のガイドラインに沿って操作します。

  • resultsTable フィールドには、//bigquery.googleapis.com/projects/{project-id}/datasets/{dataset-id}/tables/{table-id} の形式を使用します。
  • BigQuery 標準テーブルを使用します。
  • スキャンが作成または更新されたときにテーブルが存在しない場合は、Knowledge Catalog によってテーブルが作成されます。
  • デフォルトでは、テーブルは job_start_time 列で毎日パーティション分割されます。
  • テーブルを他の構成でパーティション分割する場合や、パーティションを作成しない場合は、必要なスキーマと構成でテーブルを再作成し、事前に作成されたテーブルを結果テーブルとして用意します。
  • 結果テーブルがソーステーブルと同じロケーションにあることを確認します。
  • プロジェクトで VPC-SC が構成されている場合、結果テーブルはソーステーブルと同じ VPC-SC 境界内にある必要があります。
  • スキャン実行ステージでテーブルが変更されると、現在実行中のジョブが以前の結果テーブルにエクスポートされ、テーブルの変更は次のスキャンジョブから有効になります。
  • テーブル スキーマを変更しないでください。列をカスタマイズする必要がある場合は、テーブルにビューを作成します。
  • 費用を削減するには、ユースケースに基づいてパーティションの有効期限を設定します。詳細については、パーティションの有効期限を設定する方法をご覧ください。

データ品質スキャンを実行する

コンソール

  1. Google Cloud コンソールで、Knowledge Catalog の [データのプロファイリングと品質] ページに移動します。

    [データのプロファイリングと品質] に移動

  2. 実行するデータ品質スキャンをクリックします。

  3. [今すぐ実行] をクリックします。

gcloud

データ品質スキャンを実行するには、gcloud dataplex datascans run コマンドを使用します。

gcloud dataplex datascans run DATASCAN \
--location=LOCATION \

次の変数を置き換えます。

  • LOCATION: データ品質スキャンが作成された Google Cloud リージョン。
  • DATASCAN: データ品質スキャンの名前。

C#

C#

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある C# の設定手順を行ってください。詳細については、Knowledge Catalog C# API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

using Google.Cloud.Dataplex.V1;

public sealed partial class GeneratedDataScanServiceClientSnippets
{
    /// <summary>Snippet for RunDataScan</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void RunDataScanRequestObject()
    {
        // Create client
        DataScanServiceClient dataScanServiceClient = DataScanServiceClient.Create();
        // Initialize request argument(s)
        RunDataScanRequest request = new RunDataScanRequest
        {
            DataScanName = DataScanName.FromProjectLocationDataScan("[PROJECT]", "[LOCATION]", "[DATASCAN]"),
        };
        // Make the request
        RunDataScanResponse response = dataScanServiceClient.RunDataScan(request);
    }
}

Go

Go

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Go の設定手順を行ってください。詳細については、Knowledge Catalog Go API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。


//go:build examples

package main

import (
	"context"

	dataplex "cloud.google.com/go/dataplex/apiv1"
	dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := dataplex.NewDataScanClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &dataplexpb.RunDataScanRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#RunDataScanRequest.
	}
	resp, err := c.RunDataScan(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

Java

Java

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Java の設定手順を行ってください。詳細については、Knowledge Catalog Java API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

import com.google.cloud.dataplex.v1.DataScanName;
import com.google.cloud.dataplex.v1.DataScanServiceClient;
import com.google.cloud.dataplex.v1.RunDataScanRequest;
import com.google.cloud.dataplex.v1.RunDataScanResponse;

public class SyncRunDataScan {

  public static void main(String[] args) throws Exception {
    syncRunDataScan();
  }

  public static void syncRunDataScan() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (DataScanServiceClient dataScanServiceClient = DataScanServiceClient.create()) {
      RunDataScanRequest request =
          RunDataScanRequest.newBuilder()
              .setName(DataScanName.of("[PROJECT]", "[LOCATION]", "[DATASCAN]").toString())
              .build();
      RunDataScanResponse response = dataScanServiceClient.runDataScan(request);
    }
  }
}

Python

Python

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Python の設定手順を行ってください。詳細については、Knowledge Catalog Python API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import dataplex_v1


def sample_run_data_scan():
    # Create a client
    client = dataplex_v1.DataScanServiceClient()

    # Initialize request argument(s)
    request = dataplex_v1.RunDataScanRequest(
        name="name_value",
    )

    # Make the request
    response = client.run_data_scan(request=request)

    # Handle the response
    print(response)

Ruby

Ruby

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Ruby の設定手順を行ってください。詳細については、Knowledge Catalog Ruby API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

require "google/cloud/dataplex/v1"

##
# Snippet for the run_data_scan call in the DataScanService service
#
# This snippet has been automatically generated and should be regarded as a code
# template only. It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in https://cloud.google.com/ruby/docs/reference.
#
# This is an auto-generated example demonstrating basic usage of
# Google::Cloud::Dataplex::V1::DataScanService::Client#run_data_scan.
#
def run_data_scan
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::Dataplex::V1::DataScanService::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Cloud::Dataplex::V1::RunDataScanRequest.new

  # Call the run_data_scan method.
  result = client.run_data_scan request

  # The returned object is of type Google::Cloud::Dataplex::V1::RunDataScanResponse.
  p result
end

REST

データ品質スキャンを実行するには、dataScans.run メソッドを使用します。

Airflow

Managed Service for Apache Airflow(Cloud Composer)の有向非巡回グラフ(DAG)を使用してデータ品質スキャンを実行するには、DataplexRunDataQualityScanOperator を使用します。

from datetime import datetime
from airflow import DAG
from airflow.providers.google.cloud.operators.dataplex import DataplexRunDataQualityScanOperator

with DAG(
  "dataplex_auto_dq_scan",
  start_date=datetime(2026, 1, 1),
  schedule_interval="@daily",
  catchup=False,
) as dag:

  run_dq_scan = DataplexRunDataQualityScanOperator(
      task_id="run_dataplex_dq_scan",
      project_id="PROJECT_ID",
      region="REGION",
      data_scan_id="DATASCAN_ID",
  )

次のように置き換えます。

  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
  • REGION: データ品質スキャンが作成された Google Cloud リージョン。
  • DATASCAN_ID: データ品質スキャンの ID。

データ品質スキャン ジョブをキャンセルする

データ品質スキャンジョブが想定よりも長く実行されている場合や、誤った構成で開始された場合は、キャンセルできます。これはベスト エフォート型のオペレーションです。ジョブがすでに終了状態(SUCCEEDEDFAILED など)の場合、キャンセル リクエストは無視されます。

必要なロールと権限

データ品質スキャン ジョブをキャンセルするために必要な権限を取得するには、プロジェクトに対する Dataplex 編集者roles/dataplex.editor)または Dataplex DataScan 管理者roles/dataplex.dataScanAdmin)IAM ロールを付与するよう管理者に依頼してください。

ジョブのキャンセル

REST API を使用して、実行中または保留中のデータ品質スキャン ジョブをキャンセルできます。

コンソール

  1. Google Cloud コンソールで、[データのプロファイリングと品質] ページに移動します。

    [データのプロファイリングと品質] に移動

  2. キャンセルするジョブを含むデータ品質スキャンの名前をクリックします。

  3. [ジョブ履歴] タブで、ステータスが [実行中] または [保留中] のジョブを見つけます。

  4. ジョブに関連付けられている [キャンセル] をクリックします。

REST

projects.locations.dataScans.jobs.cancel メソッドを使用します。

POST https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataScans/DATASCAN_ID/jobs/JOB_ID:cancel

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • LOCATION: データスキャンが配置されているリージョン。
  • DATASCAN_ID: データスキャンの ID。
  • JOB_ID: キャンセルするジョブの ID。

データ品質スキャンの結果を表示する

コンソール

  1. Google Cloud コンソールで、Knowledge Catalog の [データのプロファイリングと品質] ページに移動します。

    [データのプロファイリングと品質] に移動

  2. データ品質スキャンの名前をクリックします。

    • [概要] セクションには、いつスキャンが実行されたか、各ジョブでスキャンされたレコード数、すべてのデータ品質チェックに合格したか、失敗した場合、失敗したデータ品質チェックの数など、最新のジョブに関する情報が表示されます。

    • [データ品質スキャンの構成] セクションには、スキャンについての詳細が表示されます。

  3. 合格したルールの割合を示すデータ品質スコア、失敗したルール、ジョブログなど、ジョブの詳細情報を確認するには、[ジョブ履歴] タブをクリックします。ジョブ ID をクリックします。

gcloud

データ品質スキャンジョブの結果を表示するには、gcloud dataplex datascans jobs describe コマンドを使用します。

gcloud dataplex datascans jobs describe JOB \
--location=LOCATION \
--datascan=DATASCAN \
--view=FULL

次の変数を置き換えます。

  • JOB: データ品質スキャンジョブのジョブ ID。
  • LOCATION: データ品質スキャンが作成された Google Cloud リージョン。
  • DATASCAN: ジョブが属するデータ品質スキャンの名前。
  • --view=FULL: スキャンジョブの結果を表示するには、FULL を指定します。

C#

C#

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある C# の設定手順を行ってください。詳細については、Knowledge Catalog C# API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

using Google.Cloud.Dataplex.V1;

public sealed partial class GeneratedDataScanServiceClientSnippets
{
    /// <summary>Snippet for GetDataScan</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void GetDataScanRequestObject()
    {
        // Create client
        DataScanServiceClient dataScanServiceClient = DataScanServiceClient.Create();
        // Initialize request argument(s)
        GetDataScanRequest request = new GetDataScanRequest
        {
            DataScanName = DataScanName.FromProjectLocationDataScan("[PROJECT]", "[LOCATION]", "[DATASCAN]"),
            View = GetDataScanRequest.Types.DataScanView.Unspecified,
        };
        // Make the request
        DataScan response = dataScanServiceClient.GetDataScan(request);
    }
}

Go

Go

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Go の設定手順を行ってください。詳細については、Knowledge Catalog Go API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。


//go:build examples

package main

import (
	"context"

	dataplex "cloud.google.com/go/dataplex/apiv1"
	dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := dataplex.NewDataScanClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &dataplexpb.GetDataScanRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#GetDataScanRequest.
	}
	resp, err := c.GetDataScan(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

Java

Java

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Java の設定手順を行ってください。詳細については、Knowledge Catalog Java API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

import com.google.cloud.dataplex.v1.DataScan;
import com.google.cloud.dataplex.v1.DataScanName;
import com.google.cloud.dataplex.v1.DataScanServiceClient;
import com.google.cloud.dataplex.v1.GetDataScanRequest;

public class SyncGetDataScan {

  public static void main(String[] args) throws Exception {
    syncGetDataScan();
  }

  public static void syncGetDataScan() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (DataScanServiceClient dataScanServiceClient = DataScanServiceClient.create()) {
      GetDataScanRequest request =
          GetDataScanRequest.newBuilder()
              .setName(DataScanName.of("[PROJECT]", "[LOCATION]", "[DATASCAN]").toString())
              .build();
      DataScan response = dataScanServiceClient.getDataScan(request);
    }
  }
}

Python

Python

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Python の設定手順を行ってください。詳細については、Knowledge Catalog Python API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import dataplex_v1


def sample_get_data_scan():
    # Create a client
    client = dataplex_v1.DataScanServiceClient()

    # Initialize request argument(s)
    request = dataplex_v1.GetDataScanRequest(
        name="name_value",
    )

    # Make the request
    response = client.get_data_scan(request=request)

    # Handle the response
    print(response)

Ruby

Ruby

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Ruby の設定手順を行ってください。詳細については、Knowledge Catalog Ruby API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

require "google/cloud/dataplex/v1"

##
# Snippet for the get_data_scan call in the DataScanService service
#
# This snippet has been automatically generated and should be regarded as a code
# template only. It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in https://cloud.google.com/ruby/docs/reference.
#
# This is an auto-generated example demonstrating basic usage of
# Google::Cloud::Dataplex::V1::DataScanService::Client#get_data_scan.
#
def get_data_scan
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::Dataplex::V1::DataScanService::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Cloud::Dataplex::V1::GetDataScanRequest.new

  # Call the get_data_scan method.
  result = client.get_data_scan request

  # The returned object is of type Google::Cloud::Dataplex::V1::DataScan.
  p result
end

REST

データ品質スキャンの結果を表示するには、dataScans.get メソッドを使用します。

公開された結果を表示する

データ品質スキャンの結果が Knowledge Catalog メタデータとして公開されている場合は、Google Cloud コンソールの BigQuery ページと Knowledge Catalog ページにあるソーステーブルの [データ品質] タブで最新のスキャン結果を確認できます。

  1. Google Cloud コンソールで、Knowledge Catalog の [検索] ページに移動します。

    検索に移動

  2. テーブルを検索して選択します。

  3. [データ品質] タブをクリックします。

    最後に公開された結果が表示されます。

スキャン結果の履歴を表示する

Knowledge Catalog は、過去 300 件のジョブ、または過去 1 年間のいずれか早いほうのデータ品質スキャンの履歴を保存します。

コンソール

  1. Google Cloud コンソールで、Knowledge Catalog の [データのプロファイリングと品質] ページに移動します。

    [データのプロファイリングと品質] に移動

  2. データ品質スキャンの名前をクリックします。

  3. [ジョブ履歴] タブをクリックします。

    [ジョブ履歴] タブには、各ジョブでスキャンされたレコード数、ジョブのステータス、ジョブの実行時刻、各ルールの合否など、過去のジョブに関する情報が表示されます。

  4. ジョブについての詳細情報を表示するには、[ジョブ ID] 列でジョブをクリックします。

gcloud

過去のデータ品質スキャンジョブを表示するには、gcloud dataplex datascans jobs list コマンドを使用します。

gcloud dataplex datascans jobs list \
--location=LOCATION \
--datascan=DATASCAN \

次の変数を置き換えます。

  • LOCATION: データ品質スキャンが作成された Google Cloud リージョン。
  • DATASCAN: 過去のジョブを表示するデータ品質スキャンの名前。

C#

C#

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある C# の設定手順を行ってください。詳細については、Knowledge Catalog C# API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

using Google.Api.Gax;
using Google.Cloud.Dataplex.V1;
using System;

public sealed partial class GeneratedDataScanServiceClientSnippets
{
    /// <summary>Snippet for ListDataScanJobs</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void ListDataScanJobsRequestObject()
    {
        // Create client
        DataScanServiceClient dataScanServiceClient = DataScanServiceClient.Create();
        // Initialize request argument(s)
        ListDataScanJobsRequest request = new ListDataScanJobsRequest
        {
            ParentAsDataScanName = DataScanName.FromProjectLocationDataScan("[PROJECT]", "[LOCATION]", "[DATASCAN]"),
            Filter = "",
        };
        // Make the request
        PagedEnumerable<ListDataScanJobsResponse, DataScanJob> response = dataScanServiceClient.ListDataScanJobs(request);

        // Iterate over all response items, lazily performing RPCs as required
        foreach (DataScanJob item in response)
        {
            // Do something with each item
            Console.WriteLine(item);
        }

        // Or iterate over pages (of server-defined size), performing one RPC per page
        foreach (ListDataScanJobsResponse page in response.AsRawResponses())
        {
            // Do something with each page of items
            Console.WriteLine("A page of results:");
            foreach (DataScanJob item in page)
            {
                // Do something with each item
                Console.WriteLine(item);
            }
        }

        // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required
        int pageSize = 10;
        Page<DataScanJob> singlePage = response.ReadPage(pageSize);
        // Do something with the page of items
        Console.WriteLine($"A page of {pageSize} results (unless it's the final page):");
        foreach (DataScanJob item in singlePage)
        {
            // Do something with each item
            Console.WriteLine(item);
        }
        // Store the pageToken, for when the next page is required.
        string nextPageToken = singlePage.NextPageToken;
    }
}

Go

Go

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Go の設定手順を行ってください。詳細については、Knowledge Catalog Go API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。


//go:build examples

package main

import (
	"context"

	dataplex "cloud.google.com/go/dataplex/apiv1"
	dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb"
	"google.golang.org/api/iterator"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := dataplex.NewDataScanClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &dataplexpb.ListDataScanJobsRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#ListDataScanJobsRequest.
	}
	it := c.ListDataScanJobs(ctx, req)
	for {
		resp, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			// TODO: Handle error.
		}
		// TODO: Use resp.
		_ = resp

		// If you need to access the underlying RPC response,
		// you can do so by casting the `Response` as below.
		// Otherwise, remove this line. Only populated after
		// first call to Next(). Not safe for concurrent access.
		_ = it.Response.(*dataplexpb.ListDataScanJobsResponse)
	}
}

Java

Java

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Java の設定手順を行ってください。詳細については、Knowledge Catalog Java API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

import com.google.cloud.dataplex.v1.DataScanJob;
import com.google.cloud.dataplex.v1.DataScanName;
import com.google.cloud.dataplex.v1.DataScanServiceClient;
import com.google.cloud.dataplex.v1.ListDataScanJobsRequest;

public class SyncListDataScanJobs {

  public static void main(String[] args) throws Exception {
    syncListDataScanJobs();
  }

  public static void syncListDataScanJobs() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (DataScanServiceClient dataScanServiceClient = DataScanServiceClient.create()) {
      ListDataScanJobsRequest request =
          ListDataScanJobsRequest.newBuilder()
              .setParent(DataScanName.of("[PROJECT]", "[LOCATION]", "[DATASCAN]").toString())
              .setPageSize(883849137)
              .setPageToken("pageToken873572522")
              .setFilter("filter-1274492040")
              .build();
      for (DataScanJob element : dataScanServiceClient.listDataScanJobs(request).iterateAll()) {
        // doThingsWith(element);
      }
    }
  }
}

Python

Python

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Python の設定手順を行ってください。詳細については、Knowledge Catalog Python API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import dataplex_v1


def sample_list_data_scan_jobs():
    # Create a client
    client = dataplex_v1.DataScanServiceClient()

    # Initialize request argument(s)
    request = dataplex_v1.ListDataScanJobsRequest(
        parent="parent_value",
    )

    # Make the request
    page_result = client.list_data_scan_jobs(request=request)

    # Handle the response
    for response in page_result:
        print(response)

Ruby

Ruby

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Ruby の設定手順を行ってください。詳細については、Knowledge Catalog Ruby API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

require "google/cloud/dataplex/v1"

##
# Snippet for the list_data_scan_jobs call in the DataScanService service
#
# This snippet has been automatically generated and should be regarded as a code
# template only. It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in https://cloud.google.com/ruby/docs/reference.
#
# This is an auto-generated example demonstrating basic usage of
# Google::Cloud::Dataplex::V1::DataScanService::Client#list_data_scan_jobs.
#
def list_data_scan_jobs
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::Dataplex::V1::DataScanService::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Cloud::Dataplex::V1::ListDataScanJobsRequest.new

  # Call the list_data_scan_jobs method.
  result = client.list_data_scan_jobs request

  # The returned object is of type Gapic::PagedEnumerable. You can iterate
  # over elements, and API calls will be issued to fetch pages as needed.
  result.each do |item|
    # Each element is of type ::Google::Cloud::Dataplex::V1::DataScanJob.
    p item
  end
end

REST

データ品質スキャンジョブの履歴を表示するには、dataScans.jobs.list メソッドを使用します。

ジョブ ステータス

データスキャン ジョブのステータスは次のとおりです。

  • PENDING: ジョブは作成されましたが、まだ実行されていません。この状態では、スキャンはインフラストラクチャをアクティブに設定するか、スロットを取得します。このフェーズは、スキーマの複雑さとリソース競合に応じて 10 ~ 20 秒以上かかることがあります。

  • RUNNING: ジョブが実行中です。

  • CANCELING: ジョブはキャンセル中です。

  • CANCELLED: ジョブが正常にキャンセルされました。

  • SUCCEEDED: ジョブが正常に完了します。集計やメタデータの同期などの後処理ステップにより、完了ステータスが実際のクエリ完了から最大 60 秒遅れることがあります。

  • FAILED: エラーのためジョブが失敗します。集計やメタデータの同期などの後処理ステップにより、完了ステータスが実際のクエリ完了から最大 60 秒遅れることがあります。

  • SUCCEEDED_WITH_ERRORS: ジョブは正常に完了しましたが、実行中にエラーが発生しました。

モニタリングのベスト プラクティス

データスキャン ジョブをモニタリングする際は、次のベスト プラクティスを念頭に置いてください。

  • 積極的なポーリングを避ける: 積極的なポーリング(たとえば、1 ~ 5 秒ごとに GetJob または同等のものを呼び出す)を避けます。積極的なポーリングは API 割り当てを無駄にし、状態遷移を加速させません。

  • 指数バックオフを使用する: 繰り返しポーリングが避けられない場合は、10 ~ 15 秒から始まる指数バックオフを使用します。

  • 非同期イベント ドリブン デカップリングを使用する(推奨): 同期 API ポーリングの代わりに、Cloud Audit Logs(cloudaudit.googleapis.com)をリッスンする Eventarc トリガーを使用します。これらのトリガーを使用して、DataScan ジョブ完了イベントが発生するとすぐにダウンストリーム ワークフローを開始できます。このアプローチでは、API ポーリングの上限を回避し、割り当てを節約し、認識されるレイテンシを短縮します。

データ品質スキャンの結果へのアクセスを許可する

組織内のユーザーがスキャン結果を表示できるようにするには、次の操作を行います。

  1. Google Cloud コンソールで、Knowledge Catalog の [データのプロファイリングと品質] ページに移動します。

    [データのプロファイリングと品質] に移動

  2. 結果を共有するデータ品質スキャンをクリックします。

  3. [権限] タブをクリックします。

  4. 手順は次のとおりです。

    • プリンシパルにアクセス権を付与するには、[ アクセス権を付与] をクリックします。関連するプリンシパルに Dataplex DataScan データ閲覧者ロールを付与します。
    • プリンシパルからアクセス権を削除するには、Dataplex DataScan データ閲覧者ロールを削除するプリンシパルを選択します。[アクセス権を削除] をクリックし、プロンプトが表示されたら確定します。

Logging でアラートを設定する

Cloud Logging のログを使用してデータ品質エラーのアラートを設定する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで、Logging の [ログ エクスプローラ] に移動します。

    [ログ エクスプローラ] に移動

  2. [クエリ] ウィンドウで、クエリを入力します。サンプルクエリをご覧ください。

  3. [クエリを実行] をクリックします。

  4. [アラートを作成] をクリックします。サイドパネルが開きます。

  5. アラート ポリシー名を入力し、[次へ] をクリックします。

  6. クエリを確認します。

    1. [ログをプレビュー] をクリックして、クエリをテストします。条件に一致するログが表示されます。

    2. [次へ] をクリックします。

  7. 通知の間隔を設定し、[次へ] をクリックします。

  8. アラートの通知先を定義し、[保存] をクリックしてアラート ポリシーを作成します。

または、Google Cloud コンソールで [Monitoring] > [アラート] に移動し、アラートを構成して編集することも可能です。

gcloud

サポートされていません。

REST

Logging でアラートを設定する方法を確認する。

ジョブレベルまたはディメンション レベルのアラートを設定するためのサンプルクエリ

  • データ品質スキャンのデータ品質全体のエラーアラートを設定するサンプルクエリ。

    resource.type="dataplex.googleapis.com/DataScan"
    AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED"
    AND resource.labels.resource_container="projects/112233445566"
    AND resource.labels.datascan_id="a0-test-dec6-dq-3"
    AND NOT jsonPayload.dataQuality.passed=true
    
  • 特定のデータ品質スキャンのディメンション(一意性など)のデータ品質エラーに関するアラートを設定するサンプルクエリ。

    resource.type="dataplex.googleapis.com/DataScan"
    AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED"
    AND resource.labels.resource_container="projects/112233445566"
    AND resource.labels.datascan_id="a0-test-dec6-dq-3"
    AND jsonPayload.dataQuality.dimensionPassed.UNIQUENESS=false
    
  • テーブルのデータ品質エラーに関するアラートを設定するサンプルクエリ。

    • Knowledge Catalog レイクで編成されていない BigQuery テーブルに対するデータ品質エラーのアラートを設定します。

      resource.type="dataplex.googleapis.com/DataScan"
      AND jsonPayload.dataSource="//bigquery.googleapis.com/projects/test-project/datasets/testdataset/table/chicago_taxi_trips"
      AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED"
      AND resource.labels.resource_container="projects/112233445566"
      AND NOT jsonPayload.dataQuality.passed=true
      
    • Knowledge Catalog レイクに編成された BigQuery テーブルに対するデータ品質エラーのアラートを設定します。

      resource.type="dataplex.googleapis.com/DataScan"
      AND jsonPayload.dataSource="projects/test-project/datasets/testdataset/table/chicago_taxi_trips"
      AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED"
      AND resource.labels.resource_container="projects/112233445566"
      AND NOT jsonPayload.dataQuality.passed=true
      

ルールごとのアラートで設定するサンプルクエリ

  • データ品質スキャンに指定されたカスタムルール名を使用して、失敗したすべてのデータ品質ルールのアラートを設定するサンプルクエリ。

    resource.type="dataplex.googleapis.com/DataScan"
    AND jsonPayload.ruleName="custom-name"
    AND jsonPayload.result="FAILED"
    
  • データ品質スキャンの特定の評価タイプで失敗したすべてのデータ品質ルールのアラートを設定するサンプルクエリ。

    resource.type="dataplex.googleapis.com/DataScan"
    AND jsonPayload.evalutionType="PER_ROW"
    AND jsonPayload.result="FAILED"
    
  • データ品質スキャンに使用されるテーブル内の列に対して、失敗したすべてのデータ品質ルールのアラートを設定するサンプルクエリ。

    resource.type="dataplex.googleapis.com/DataScan"
    AND jsonPayload.column="CInteger"
    AND jsonPayload.result="FAILED"
    

データ品質エラーのトラブルシューティング

行レベルのルールがエラーになるジョブごとに、Knowledge Catalog はエラーになったレコードを取得するクエリを提供します。このクエリを実行して、ルールと一致しなかったレコードを表示します。

コンソール

  1. Google Cloud コンソールで、Knowledge Catalog の [データのプロファイリングと品質] ページに移動します。

    [データのプロファイリングと品質] に移動

  2. レコードのトラブルシューティングを行うデータ品質スキャンの名前をクリックします。

  3. [ジョブ履歴] タブをクリックします。

  4. データ品質エラーを特定したジョブのジョブ ID をクリックします。

  5. 表示されたジョブ ウィンドウの [ルール] セクションで、[失敗したレコードを取得するクエリ] 列を見つけます。失敗したルールの [クエリをクリップボードにコピー] をクリックします。

  6. BigQuery でクエリを実行して、ジョブの失敗の原因となったレコードを確認します。

gcloud

サポートされていません。

REST

  1. データ品質エラーが特定されたジョブを取得するには、dataScans.get メソッドを使用します。

    レスポンス オブジェクトの failingRowsQuery フィールドにクエリが表示されます。

  2. BigQuery でクエリを実行して、ジョブの失敗の原因となったレコードを確認します。

Knowledge Catalog は、ルール作成時にデバッグクエリが含まれている場合は、デバッグクエリも実行します。デバッグクエリの結果は、各ルールの出力に含まれます。この機能はプレビュー版です。

コンソール

サポートされていません。

gcloud

サポートされていません。

REST

データ品質エラーが特定されたジョブを取得するには、dataScans.get メソッドを使用します。レスポンス オブジェクトの debugQueriesResultSets フィールドにデバッグクエリの結果が表示されます。

特定のテーブルのデータ品質スキャンを管理する

このドキュメントの手順では、 Google Cloud コンソールの Knowledge Catalog の [データのプロファイリングと品質] ページを使用して、プロジェクト全体でデータ プロファイル スキャンを管理する方法について説明します。

特定のテーブルを操作するときに、データ プロファイル スキャンを作成して管理することもできます。 Google Cloud コンソールのテーブルの Knowledge Catalog ページで、[データ品質] タブを使用します。手順は次のとおりです。

  1. Google Cloud コンソールで、Knowledge Catalog の [検索] ページに移動します。

    検索に移動

    テーブルを検索して選択します。

  2. [データ品質] タブをクリックします。

  3. 結果が Knowledge Catalog メタデータとして公開されているデータ品質スキャンがテーブルにあるかどうかに応じて、次の方法でテーブルのデータ品質スキャンを操作できます。

    • データ品質スキャンの結果が公開されている: 最新のスキャン結果がページに表示されます。

      このテーブルのデータ品質スキャンを管理するには、[データ品質スキャン] をクリックし、次のオプションから選択します。

      • 新しいスキャンを作成: 新しいデータ品質スキャンを作成します。詳細については、このドキュメントのデータ品質スキャンを作成するをご覧ください。テーブルの詳細ページからスキャンを作成すると、テーブルが事前に選択されます。

      • 今すぐ実行: スキャンを実行します。

      • スキャン構成を編集: 表示名、フィルタ、スケジュールなどの設定を編集します。

        データ品質ルールを編集するには、[データ品質] タブで [ルール] タブをクリックします。[ルールの変更] をクリックします。ルールを更新して、[保存] をクリックします。

      • スキャン権限を管理: スキャン結果にアクセスできるユーザーを制御します。詳細については、このドキュメントのデータ品質スキャンの結果へのアクセスを許可するをご覧ください。

      • 過去の結果を見る: 以前のデータ品質スキャンジョブの詳細情報を表示します。詳細については、このドキュメントのデータ品質スキャン結果を表示する過去のスキャン結果を表示するのセクションをご覧ください。

      • すべてのスキャンを表示: このテーブルに適用されるデータ品質スキャンのリストを表示します。

    • データ品質スキャンの結果が公開されていない: 次のオプションから選択します。

      • データ品質スキャンの作成: 新しいデータ品質スキャンを作成します。詳細については、このドキュメントのデータ品質スキャンを作成するをご覧ください。テーブルの詳細ページからスキャンを作成すると、テーブルが事前に選択されます。

      • 既存のスキャンを表示: このテーブルに適用されるデータ品質スキャンの一覧を表示します。

データ品質スキャンを更新する

既存のデータ品質スキャンのさまざまな設定(表示名、フィルタ、スケジュール、データ品質ルールなど)を編集できます。

コンソール

  1. Google Cloud コンソールで、Knowledge Catalog の [データのプロファイリングと品質] ページに移動します。

    [データのプロファイリングと品質] に移動

  2. データ品質スキャンの名前をクリックします。

  3. 表示名、フィルタ、スケジュールなどの設定を編集するには、[編集] をクリックします。値を編集し、[保存] をクリックします。

  4. データ品質ルールを編集するには、スキャンの詳細ページで [現在のルール] タブをクリックします。[ルールの変更] をクリックします。ルールを更新して、[保存] をクリックします。

gcloud

データ品質スキャンの説明を更新するには、gcloud dataplex datascans update data-quality コマンドを使用します。

gcloud dataplex datascans update data-quality DATASCAN \
--location=LOCATION \
--description=DESCRIPTION

次のように置き換えます。

  • DATASCAN: 更新するデータ品質スキャンの名前。
  • LOCATION: データ品質スキャンが作成された Google Cloud リージョン。
  • DESCRIPTION: データ品質スキャンの新しい説明。

C#

C#

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある C# の設定手順を行ってください。詳細については、Knowledge Catalog C# API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

using Google.Cloud.Dataplex.V1;
using Google.LongRunning;
using Google.Protobuf.WellKnownTypes;

public sealed partial class GeneratedDataScanServiceClientSnippets
{
    /// <summary>Snippet for UpdateDataScan</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void UpdateDataScanRequestObject()
    {
        // Create client
        DataScanServiceClient dataScanServiceClient = DataScanServiceClient.Create();
        // Initialize request argument(s)
        UpdateDataScanRequest request = new UpdateDataScanRequest
        {
            DataScan = new DataScan(),
            UpdateMask = new FieldMask(),
            ValidateOnly = false,
        };
        // Make the request
        Operation<DataScan, OperationMetadata> response = dataScanServiceClient.UpdateDataScan(request);

        // Poll until the returned long-running operation is complete
        Operation<DataScan, OperationMetadata> completedResponse = response.PollUntilCompleted();
        // Retrieve the operation result
        DataScan result = completedResponse.Result;

        // Or get the name of the operation
        string operationName = response.Name;
        // This name can be stored, then the long-running operation retrieved later by name
        Operation<DataScan, OperationMetadata> retrievedResponse = dataScanServiceClient.PollOnceUpdateDataScan(operationName);
        // Check if the retrieved long-running operation has completed
        if (retrievedResponse.IsCompleted)
        {
            // If it has completed, then access the result
            DataScan retrievedResult = retrievedResponse.Result;
        }
    }
}

Go

Go

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Go の設定手順を行ってください。詳細については、Knowledge Catalog Go API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。


//go:build examples

package main

import (
	"context"

	dataplex "cloud.google.com/go/dataplex/apiv1"
	dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := dataplex.NewDataScanClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &dataplexpb.UpdateDataScanRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#UpdateDataScanRequest.
	}
	op, err := c.UpdateDataScan(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}

	resp, err := op.Wait(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

Java

Java

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Java の設定手順を行ってください。詳細については、Knowledge Catalog Java API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

import com.google.cloud.dataplex.v1.DataScan;
import com.google.cloud.dataplex.v1.DataScanServiceClient;
import com.google.cloud.dataplex.v1.UpdateDataScanRequest;
import com.google.protobuf.FieldMask;

public class SyncUpdateDataScan {

  public static void main(String[] args) throws Exception {
    syncUpdateDataScan();
  }

  public static void syncUpdateDataScan() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (DataScanServiceClient dataScanServiceClient = DataScanServiceClient.create()) {
      UpdateDataScanRequest request =
          UpdateDataScanRequest.newBuilder()
              .setDataScan(DataScan.newBuilder().build())
              .setUpdateMask(FieldMask.newBuilder().build())
              .setValidateOnly(true)
              .build();
      DataScan response = dataScanServiceClient.updateDataScanAsync(request).get();
    }
  }
}

Python

Python

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Python の設定手順を行ってください。詳細については、Knowledge Catalog Python API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import dataplex_v1


def sample_update_data_scan():
    # Create a client
    client = dataplex_v1.DataScanServiceClient()

    # Initialize request argument(s)
    data_scan = dataplex_v1.DataScan()
    data_scan.data.entity = "entity_value"

    request = dataplex_v1.UpdateDataScanRequest(
        data_scan=data_scan,
    )

    # Make the request
    operation = client.update_data_scan(request=request)

    print("Waiting for operation to complete...")

    response = operation.result()

    # Handle the response
    print(response)

Ruby

Ruby

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Ruby の設定手順を行ってください。詳細については、Knowledge Catalog Ruby API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

require "google/cloud/dataplex/v1"

##
# Snippet for the update_data_scan call in the DataScanService service
#
# This snippet has been automatically generated and should be regarded as a code
# template only. It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in https://cloud.google.com/ruby/docs/reference.
#
# This is an auto-generated example demonstrating basic usage of
# Google::Cloud::Dataplex::V1::DataScanService::Client#update_data_scan.
#
def update_data_scan
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::Dataplex::V1::DataScanService::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Cloud::Dataplex::V1::UpdateDataScanRequest.new

  # Call the update_data_scan method.
  result = client.update_data_scan request

  # The returned object is of type Gapic::Operation. You can use it to
  # check the status of an operation, cancel it, or wait for results.
  # Here is how to wait for a response.
  result.wait_until_done! timeout: 60
  if result.response?
    p result.response
  else
    puts "No response received."
  end
end

REST

データ品質スキャンを編集するには、dataScans.patch メソッドを使用します。

データ品質スキャンを削除する

コンソール

コンソール

  1. Google Cloud コンソールで、Knowledge Catalog の [データのプロファイリングと品質] ページに移動します。

    [データのプロファイリングと品質] に移動

  2. 削除するスキャンをクリックします。

  3. [削除] をクリックし、プロンプトが表示されたら確定します。

gcloud

gcloud

データ品質スキャンを削除するには、gcloud dataplex datascans delete コマンドを使用します。

gcloud dataplex datascans delete DATASCAN \
--location=LOCATION \
--async

次の変数を置き換えます。

  • DATASCAN: 削除するデータ品質スキャンの名前。
  • LOCATION: データ品質スキャンが作成された Google Cloud リージョン。

C#

C#

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある C# の設定手順を行ってください。詳細については、Knowledge Catalog C# API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

using Google.Cloud.Dataplex.V1;
using Google.LongRunning;
using Google.Protobuf.WellKnownTypes;

public sealed partial class GeneratedDataScanServiceClientSnippets
{
    /// <summary>Snippet for DeleteDataScan</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void DeleteDataScanRequestObject()
    {
        // Create client
        DataScanServiceClient dataScanServiceClient = DataScanServiceClient.Create();
        // Initialize request argument(s)
        DeleteDataScanRequest request = new DeleteDataScanRequest
        {
            DataScanName = DataScanName.FromProjectLocationDataScan("[PROJECT]", "[LOCATION]", "[DATASCAN]"),
            Force = false,
        };
        // Make the request
        Operation<Empty, OperationMetadata> response = dataScanServiceClient.DeleteDataScan(request);

        // Poll until the returned long-running operation is complete
        Operation<Empty, OperationMetadata> completedResponse = response.PollUntilCompleted();
        // Retrieve the operation result
        Empty result = completedResponse.Result;

        // Or get the name of the operation
        string operationName = response.Name;
        // This name can be stored, then the long-running operation retrieved later by name
        Operation<Empty, OperationMetadata> retrievedResponse = dataScanServiceClient.PollOnceDeleteDataScan(operationName);
        // Check if the retrieved long-running operation has completed
        if (retrievedResponse.IsCompleted)
        {
            // If it has completed, then access the result
            Empty retrievedResult = retrievedResponse.Result;
        }
    }
}

Go

Go

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Go の設定手順を行ってください。詳細については、Knowledge Catalog Go API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。


//go:build examples

package main

import (
	"context"

	dataplex "cloud.google.com/go/dataplex/apiv1"
	dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := dataplex.NewDataScanClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &dataplexpb.DeleteDataScanRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#DeleteDataScanRequest.
	}
	op, err := c.DeleteDataScan(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}

	err = op.Wait(ctx)
	if err != nil {
		// TODO: Handle error.
	}
}

Java

Java

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Java の設定手順を行ってください。詳細については、Knowledge Catalog Java API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

import com.google.cloud.dataplex.v1.DataScanName;
import com.google.cloud.dataplex.v1.DataScanServiceClient;
import com.google.cloud.dataplex.v1.DeleteDataScanRequest;
import com.google.protobuf.Empty;

public class SyncDeleteDataScan {

  public static void main(String[] args) throws Exception {
    syncDeleteDataScan();
  }

  public static void syncDeleteDataScan() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (DataScanServiceClient dataScanServiceClient = DataScanServiceClient.create()) {
      DeleteDataScanRequest request =
          DeleteDataScanRequest.newBuilder()
              .setName(DataScanName.of("[PROJECT]", "[LOCATION]", "[DATASCAN]").toString())
              .setForce(true)
              .build();
      dataScanServiceClient.deleteDataScanAsync(request).get();
    }
  }
}

Python

Python

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Python の設定手順を行ってください。詳細については、Knowledge Catalog Python API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import dataplex_v1


def sample_delete_data_scan():
    # Create a client
    client = dataplex_v1.DataScanServiceClient()

    # Initialize request argument(s)
    request = dataplex_v1.DeleteDataScanRequest(
        name="name_value",
    )

    # Make the request
    operation = client.delete_data_scan(request=request)

    print("Waiting for operation to complete...")

    response = operation.result()

    # Handle the response
    print(response)

Ruby

Ruby

このサンプルを試す前に、クライアント ライブラリを使用した Knowledge Catalog のクイックスタートにある Ruby の設定手順を行ってください。詳細については、Knowledge Catalog Ruby API のリファレンス ドキュメントをご覧ください。

Knowledge Catalog への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

require "google/cloud/dataplex/v1"

##
# Snippet for the delete_data_scan call in the DataScanService service
#
# This snippet has been automatically generated and should be regarded as a code
# template only. It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in https://cloud.google.com/ruby/docs/reference.
#
# This is an auto-generated example demonstrating basic usage of
# Google::Cloud::Dataplex::V1::DataScanService::Client#delete_data_scan.
#
def delete_data_scan
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::Dataplex::V1::DataScanService::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Cloud::Dataplex::V1::DeleteDataScanRequest.new

  # Call the delete_data_scan method.
  result = client.delete_data_scan request

  # The returned object is of type Gapic::Operation. You can use it to
  # check the status of an operation, cancel it, or wait for results.
  # Here is how to wait for a response.
  result.wait_until_done! timeout: 60
  if result.response?
    p result.response
  else
    puts "No response received."
  end
end

REST

REST

データ品質スキャンを削除するには、dataScans.delete メソッドを使用します。

次のステップ