CData SSIS Components を使用して QuickBooks のデータを Google BigQuery にマイグレーション
Google BigQuery は、サーバーレスで高いスケーラビリティとコスト効率を備えたデータウェアハウスであり、組織がビッグデータを実用的なインサイトに変換できるよう設計されています。
CData SSIS Components は、SQL Server Integration Services を拡張し、さまざまなソースやデスティネーションからデータを簡単にインポート・エクスポートできるようにします。
この記事では、BigQuery へのエクスポート時のデータ型マッピングの考慮事項を確認し、CData SSIS Components for QuickBooks と BigQuery を使用してQuickBooks のデータを 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
-
コンポーネントは INTERVAL 型を文字列として表現します。クエリで INTERVAL 型が必要な場合は、BigQuery SQL の INTERVAL フォーマットを使用して INTERVAL を指定する必要があります:
QuickBooks データ連携について
CData は、QuickBooks のライブデータへのアクセスと統合を簡素化します。お客様は CData の接続機能を以下の目的で活用しています:
- ローカルとリモートの両方の会社ファイルにアクセスできます。
- エディションと地域を問わず接続できます:QuickBooks Premier、Professional、Enterprise、Simple Start エディション 2002+、およびカナダ、ニュージーランド、オーストラリア、英国エディション 2003+。
- SQL ストアドプロシージャを使用して、取引の無効化やクリア、リストの統合、エンティティの検索などのアクションを実行できます。
お客様は、Power BI、Tableau、Excel などのお気に入りのツールと QuickBooks データを定期的に統合し、QuickBooks データをデータベースやデータウェアハウスに統合しています。
はじめに
前提条件
- Visual Studio 2022
- Visual Studio 2022 用 SQL Server Integration Services Projects 拡張機能
- CData SSIS Components for Google BigQuery
- CData SSIS Components for QuickBooks
プロジェクトの作成とコンポーネントの追加
-
Visual Studio を開き、新しい Integration Services プロジェクトを作成します。
- Control Flow 画面に新しい Data Flow Task を追加し、Data Flow Task を開きます。
-
Data Flow Task に CData QuickBooks Source コントロールと CData GoogleBigQuery Destination コントロールを追加します。
QuickBooks ソースの設定
以下の手順に従って、QuickBooks への接続に必要なプロパティを指定します。
-
CData QuickBooks Source をダブルクリックしてソースコンポーネントエディタを開き、新しい接続を追加します。
-
CData QuickBooks Connection Manager で接続プロパティを設定し、接続をテストして保存します。
ローカルQuickBooks インスタンスへの接続には接続プロパティ入力は不要です。
CData 製品は、リモートコネクタ経由でQuickBooks にリクエストを作成します。リモートコネクタはQuickBooks と同じマシン上で動作し、軽量の組み込みWeb サーバーを介して接続を受け入れます。サーバーはSSL/TLS をサポートし、ユーザーにリモートマシンからのセキュアな接続を可能にします。
初めて接続するときは、CData 製品をQuickBooks で認証する必要があります。詳しくは、ヘルプドキュメントの「Using the Remote Connector」を参照してください。
-
接続を保存後、「Table or view」を選択し、Google BigQuery にエクスポートするテーブルまたはビューを選択して、CData QuickBooks Source Editor を閉じます。
Google BigQuery デスティネーションの設定
QuickBooks Source を設定したら、Google BigQuery 接続を設定してカラムをマッピングします。
-
CData Google BigQuery Destination をダブルクリックしてデスティネーションコンポーネントエディタを開き、新しい接続を追加します。
-
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 つだけが報告されます。
-
接続を保存後、Use a Table メニューでテーブルを選択し、Action メニューで Insert を選択します。
-
Column Mappings タブで、入力カラムからデスティネーションカラムへのマッピングを設定します。
プロジェクトの実行
これでプロジェクトを実行できます。SSIS Task の実行が完了すると、SQL テーブルのデータが選択したテーブルにエクスポートされます。