コンテンツに移動
データベース

EDW 移行用データ検証ツールの紹介

2021年8月4日
https://storage.googleapis.com/gweb-cloudblog-publish/images/Google_Cloud_Databases.max-2600x2600.jpg
Google Cloud Japan Team

※この投稿は米国時間 2021 年 7 月 22 日に、Google Cloud blog に投稿されたものの抄訳です。

データの検証は、データ ウェアハウス、データベース、データレイクの移行プロジェクトにおいて重要なステップです。このステップには、ソーステーブルとターゲット テーブルの構造化データまたは半構造化データを比較し、各移行ステップ(データおよびスキーマの移行、SQL スクリプトの変換、ETL の移行など)の後にそれらが一致するかどうか検証する処理が必ず含まれます。

本日は、オープンソースの Python CLI ツールであるデータ検証ツール(DVT)についてご紹介します。異なる環境での検証を自動化し、再現性のあるソリューションを提供するツールです。このツールは、Ibis フレームワークを使用して、BigQuery、Cloud Spanner、Cloud SQL、Teradata などの多数のデータソースに接続します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/data_validation_toool.max-600x600.jpg

DVT を使う理由

クロス プラットフォームでのデータ検証は、簡単ではなく時間のかかる作業であり、多くのお客様はこのような作業を行うためにカスタム ソリューションを構築し、維持しなければなりません。DVT は、お客様が新たに Google Cloud に移行したデータを、オンプレミス システムの既存のデータと比較して検証するための標準的なソリューションを提供します。DVT は、既存の企業インフラストラクチャや ETL パイプラインと統合し、シームレスで自動化された検証を行うことができます。

ソリューション

DVT は、BigQuery、Cloud SQL、Spanner に加えて、サードパーティのデータベース プロダクトやファイル システムへの接続性を提供します。さらに、Cloud Composer、Cloud Functions、Cloud Run などの他の Google Cloud サービスにも簡単に統合できます。DVT は以下の接続タイプをサポートしています。

  • BigQuery

  • Cloud SQL

  • FileSystem(GCS、S3、またはローカル ファイル)

  • Hive

  • Impala

  • MySQL

  • Oracle

  • Postgres

  • Redshift

  • Snowflake

  • Spanner

  • SQL Server

  • Teradata

DVT は、テーブルレベルから行レベルまで、複数レベルのデータ検証機能を備えています。以下に、検証機能の一覧を示します。

テーブルレベル

  • テーブル行数

  • 行数によるグループ化

  • 列の集計

  • フィルタと制限

列レベル

  • スキーマ/カラム型データタイプ

行レベル

  • ハッシュ比較(BigQuery のみ)

未加工 SQL 探索

  • 異なるデータソースでカスタムクエリを実行

DVT の使用方法

データを検証するための最初のステップは、接続の作成です。前述のデータソースのいずれにも接続を作成できます。ここでは、BigQuery に接続する例を紹介します。

読み込んでいます...

これで、検証を行うことができます。これは、BigQuery と MySQL のテーブル間の検証の様子です。

読み込んでいます...

集計機能が提供されていない場合のデフォルトの検証は COUNT * です。このツールは、ソーステーブルの列数をカウントし、ターゲット テーブルのカウント数と一致するかどうかを検証します。

DVT は、データを検証しながら多くのカスタマイズをサポートしています。たとえば、複数のテーブルの検証、特定の列の検証の実行、検証へのラベルの追加が可能です。

読み込んでいます...

また、検証結果を YAML 設定ファイルに保存することもできます。これにより、以前の検証結果を保存したり、検証の設定を変更したりすることが可能です。`config-file` フラグを指定することで、YAML ファイルを生成できます。このフラグが指定された場合、検証は実行されず、ファイルの作成のみが行われますのでご注意ください。

読み込んでいます...

ここでは、GroupedColumn 検証用の YAML 設定ファイルの例を紹介します。

読み込んでいます...

YAML 設定ファイルを作成した後は、ごく簡単な手順で検証を実行できます。

読み込んでいます...

検証レポートは、標準出力(デフォルト)または結果ハンドラに出力できます。このツールは現在、結果ハンドラとして BigQuery をサポートしています。

BigQuery に出力するには、`--bq-result-handler` または `-bqrh` フラグを追加するだけです。

読み込んでいます...

以下は、BigQuery での検証結果の例です。BigQuery での検証レポートの完全なスキーマを表示するにはここをクリックしてください。

https://storage.googleapis.com/gweb-cloudblog-publish/images/query_results_Fwb2CWR.max-700x700.jpg

スタートガイド

DVT をデータ移動プロセスに組み込む準備はできましたか?こちらから PyPi でツールをご確認いただけます。ツールへのご意見は GitHub 経由でお寄せください。Google は、このツールをお客様にとっていっそう便利なものにするために、新しい機能を積極的に取り入れています。検証作業を快適に行えるようになれば幸いです。

-戦略的クラウド エンジニア Neha Nene

-マネージャー、クラウドデータ エンジニア James Fu

投稿先