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

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

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

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

この記事では、BigQuery へのエクスポート時のデータ型マッピングの考慮事項を確認し、CData SSIS Components for Facebook Ads と BigQuery を使用してFacebook Ads のデータを 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 Facebook Ads Source コントロールと CData GoogleBigQuery Destination コントロールを追加します。

Facebook Ads ソースの設定

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

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

    Facebook Ads 接続プロパティの取得・設定方法

    ほとんどのテーブルで、アプリケーション認証と同様にユーザー認証を必要とします。Facebook Ads はユーザー認証にOAuth 標準を使用しています。Facebook への認証には、組み込み認証を使用してブラウザ経由で完結することもできますし、Facebook にアプリを登録することで独自のOAuthClientId、OAuthClientSecret、CallbackURL を取得することもできます。

    の設定方法については、ヘルプドキュメントの「OAuth」セクションを参照してください。

    任意で以下の項目を設定して、フィルタリングや集計を行うもできます。必要に応じてご利用ください。

    • Target:Facebook データのテーブルのいくつかはターゲットでフィルタリングできます。例えば、動画のコメントを取得するにはターゲットに動画のID を指定します。このプロパティは、クエリ結果を指定されたターゲットに合致するレコードにフィルタリングします。Target カラムを使ってクエリ毎にこの制限をかけることができます。
    • AggregateFormat:CData 製品は、いくつかのカラムを文字列集合として返します。例えば、エンティティのいいねデータは集計されて返されます。デフォルトでは、CData 製品はJSON で集計カラムを返します。集計をXML で返すことも可能です。
    • RetryLevel:このプロパティを使用して、特定の広告インサイトのクエリとエラーに対するクエリの自動再試行を制御します。
  3. 接続を保存後、「Table or view」を選択し、Google BigQuery にエクスポートするテーブルまたはビューを選択して、CData Facebook Ads Source Editor を閉じます。

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

Facebook Ads 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 テーブルのデータが選択したテーブルにエクスポートされます。

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

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

 ダウンロード

詳細:

Facebook Ads Icon Facebook Ads SSIS Components お問い合わせ

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

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