CData SSIS Components を使用して Azure Data Catalog のデータを Google BigQuery にマイグレーション

Cameron Leblanc
Cameron Leblanc
Technology Evangelist
CData SSIS Tasks for Azure Data Catalog と Google BigQuery を使用して、Azure Data Catalog のデータを Google BigQuery に簡単にプッシュできます。

Google BigQuery は、サーバーレスで高いスケーラビリティとコスト効率を備えたデータウェアハウスであり、組織がビッグデータを実用的なインサイトに変換できるよう設計されています。

CData SSIS Components は、SQL Server Integration Services を拡張し、さまざまなソースやデスティネーションからデータを簡単にインポート・エクスポートできるようにします。

この記事では、BigQuery へのエクスポート時のデータ型マッピングの考慮事項を確認し、CData SSIS Components for Azure Data Catalog と BigQuery を使用してAzure Data Catalog のデータを Google BigQuery にマイグレーションする方法を説明します。

データ型マッピング

Google BigQuery スキーマ CData スキーマ

STRING, GEOGRAPHY, JSON, INTERVAL

string

BYTES

binary

INTEGER

long

FLOAT

double

NUMERIC, BIGNUMERIC

decimal

BOOLEAN

bool

DATE

date

TIME

time

DATETIME, TIMESTAMP

datetime

STRUCT

下記参照

ARRAY

下記参照


STRUCT 型と ARRAY 型

Google BigQuery は、1 つの行に複合値を格納するための STRUCT と ARRAY という 2 種類の型をサポートしています。Google BigQuery の一部では、これらは RECORD 型および REPEATED 型としても知られています。

STRUCT は、名前でアクセスでき、異なる型を持つことができる固定サイズの値のグループです。コンポーネントは struct をフラット化し、ドット表記の名前でフィールドにアクセスできるようにします。これらのドット表記の名前は引用符で囲む必要があることに注意してください。

ARRAY は、同じ型の値で任意のサイズを持つことができるグループです。コンポーネントは配列を単一の複合値として扱い、JSON 集約として報告します。これらの型は組み合わせることができ、STRUCT 型が ARRAY フィールドを含んだり、ARRAY フィールドが STRUCT 値のリストになったりする場合があります。

特別な考慮事項

  • Google BigQuery には、DATETIME(タイムゾーンなし)と TIMESTAMP(タイムゾーンあり)の両方のデータ型があり、CData SSIS Components はローカルマシンのタイムゾーンに基づいて datetime にマッピングします。
  • Google BigQuery では、NUMERIC 型は 38 桁の精度と小数点以下最大 9 桁をサポートし、BIGNUMERIC 型は 76 桁の精度と小数点以下最大 38 桁をサポートします。CData SSIS Components for Google BigQuery は精度/スケールを自動検出しますが、Destination コンポーネントでは高精度カラムを手動でマッピングできます。
  • INTERVAL データ型:
    • コンポーネントは INTERVAL 型を文字列として表現します。クエリで INTERVAL 型が必要な場合は、BigQuery SQL の INTERVAL フォーマットを使用して INTERVAL を指定する必要があります:
      YEAR-MONTH DAY HOUR:MINUTE:SECOND.FRACTION
    • 例えば、「5 年と 11 ヶ月、マイナス 10 日と 3 時間と 2.5 秒」という値は正しいフォーマットでは以下のようになります:
      5-11 -10 -3:0:0.2.5

前提条件

プロジェクトの作成とコンポーネントの追加

  1. Visual Studio を開き、新しい Integration Services プロジェクトを作成します。
  2. Control Flow 画面に新しい Data Flow Task を追加し、Data Flow Task を開きます。
  3. Data Flow Task に CData Azure Data Catalog Source コントロールと CData GoogleBigQuery Destination コントロールを追加します。

Azure Data Catalog ソースの設定

以下の手順に従って、Azure Data Catalog への接続に必要なプロパティを指定します。

  1. CData Azure Data Catalog Source をダブルクリックしてソースコンポーネントエディタを開き、新しい接続を追加します。
  2. CData Azure Data Catalog Connection Manager で接続プロパティを設定し、接続をテストして保存します。

    Azure Data Catalog 接続プロパティの取得・設定方法

    OAuth 認証で接続

    Azure Data Catalog の認証にはOAuth を使用します。CData 製品では組込みOAuth が利用できるので、接続プロパティを設定することなく接続を試行するだけで、ブラウザ経由でAAS に認証できます。詳しい設定方法については、ヘルプドキュメントの「Azure Data Catalog への認証」セクションを参照してください。

    設定は任意ですが、CatalogName プロパティを設定することでAzure Data Catalog から返されるカタログデータを明示的に指定できます。

    CatalogName:Azure Data Catalog に紐づいているカタログ名に設定。空のままにすると、デフォルトのカタログが使用されます。カタログ名は、「Azure Portal」->「データカタログ」->「カタログ名」から取得できます。

  3. 接続を保存後、「Table or view」を選択し、Google BigQuery にエクスポートするテーブルまたはビューを選択して、CData Azure Data Catalog Source Editor を閉じます。

Google BigQuery デスティネーションの設定

Azure Data Catalog Source を設定したら、Google BigQuery 接続を設定してカラムをマッピングします。

  1. CData Google BigQuery Destination をダブルクリックしてデスティネーションコンポーネントエディタを開き、新しい接続を追加します。
  2. CData GoogleBigQuery Connection Manager で接続プロパティを設定し、接続をテストして保存します。
    • Google は OAuth 認証標準を使用しています。個々のユーザーに代わって Google API にアクセスするには、埋め込み資格情報を使用するか、独自の OAuth アプリを登録できます。 OAuth を使用すると、サービスアカウントを使用して Google Apps ドメイン内のユーザーに代わって接続することもできます。サービスアカウントで認証するには、アプリケーションを登録して OAuth JWT 値を取得します。 OAuth 値に加えて、DatasetId と ProjectId を指定します。OAuth の使用ガイドについては、ヘルプドキュメントの「Getting Started」章を参照してください。

    便利な接続プロパティ

    • QueryPassthrough: True に設定すると、クエリは Google BigQuery に直接渡されます。
    • ConvertDateTimetoGMT: True に設定すると、コンポーネントはローカルマシンの時刻ではなく、日時値を GMT に変換します。
    • FlattenObjects: デフォルトでは、コンポーネントは STRUCT カラムの各フィールドを独自のカラムとして報告し、STRUCT カラム自体は非表示にします。False に設定すると、トップレベルの STRUCT は展開されず、独自のカラムとして残ります。このカラムの値は JSON 集約として報告されます。
    • SupportCaseSensitiveTables: このプロパティを true に設定すると、同じ名前で大文字小文字が異なるテーブルは、すべてメタデータで報告されるように名前が変更されます。デフォルトでは、プロバイダーはテーブル名を大文字小文字を区別しないものとして扱うため、複数のテーブルが同じ名前で大文字小文字が異なる場合、メタデータでは 1 つだけが報告されます。
  3. 接続を保存後、Use a Table メニューでテーブルを選択し、Action メニューで Insert を選択します。
  4. Column Mappings タブで、入力カラムからデスティネーションカラムへのマッピングを設定します。

プロジェクトの実行

これでプロジェクトを実行できます。SSIS Task の実行が完了すると、SQL テーブルのデータが選択したテーブルにエクスポートされます。

はじめる準備はできましたか?

Azure Data Catalog SSIS Component の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

Azure Data Catalog Icon Azure Data Catalog SSIS Components お問い合わせ

パワフルなSSIS Source & Destination Components で、SQL Server とAzure Data Catalog をSSIS ワークフローで連携。

Azure Data Catalog Data Flow Components を使って、Azure Data Catalog データを簡単に同期。データ同期、ローカルバックアップ、ワークフロー自動化に最適!