BigQuery
Table of contents
- TOC
データ取得方法
WebAPI 経由で取得
メリット
- ツールの選択肢が幅広いので自社に適したアーキテクチャを選定できる。
デメリット
- 外部テーブルのデータ抽出に対応していない。
- 直接APIにリクエストを送る場合、大規模データの受け渡しはSQL実行ではなくジョブの発行・受け取りが必要となる。
データの流れ
- BigQuery → WebAPI → 任意のIntegrationソリューション (→ Amazon S3) → Amazon Redshift。
- BigQueryはデータ基盤ではなく、外部データソースという位置付けになる。
実現するテクノロジー
- Embulkのplugiin にて上記エンドポイントにリクエストを送る。
- AirflowのOperator にて上記エンドポイントにリクエストを送る。
- AWS Lambda等で定期バッチを作成し、上記エンドポイントにリクエストを送る。
- Amazon RedshiftからLambda UDF経由でAWS Lambdaを実行して、上記エンドポイントにリクエストを送る。
- trocco等のETL SaaSにて転送元:BigQuery 、転送先:Redshift を設定する。
- CData Syncによるレプリケーション を実施する。
関連:Integration
エクスポート
Google Cloud Storage へのエクスポート機能 を用いる。
メリット
- 安定したパフォーマンスで大規模データを受け渡せる。
- エクスポートはWebAPI、各プログラミング言語のライブラリ、SQLで指示できる。
デメリット
- 1GBを超えるデータは複数ファイルに分割される。
- ネストや繰り返しのあるデータはAvro、JSON、Parquet形式のみ対応している。
- JSON形式ではINT64(整数)型は文字列としてエンコードされ、一部の記号はUnicode表記に変換される。
データの流れ
- BigQuery → Cloud Storage → 任意のIntegrationソリューション (→ Amazon S3) → Amazon Redshift
- BigQuery や Cloud Storage はデータ基盤ではなく、外部データソースという位置付けになる。
実現するテクノロジー
- AWS Lambda等で定期バッチを作成し、エクスポート指示を出すように上記エンドポイントにリクエストを送る。
-
Amazon RedshiftからLambda UDF経由でAWS Lambdaを実行して、上記エンドポイントにリクエストを送る。
- Cloud Storage からのデータ連携方法は別ページを参照。