>100 Views
March 19, 26
スライド概要
①Google Cloud環境でのデータウェアハウス等を利用したデータ分析領域におけるナレッジを蓄積する。
②BigQuery(BQ)_DataLake 接続対応案件で利用する想定の構成を事前に検証することで、今後の案件を円滑に進められるようにする。
上記2点を目的に、AWSのS3バケット、RedshfitをデータソースとしてBigQueryへのデータ連携し、スプレッドシートに結果を出力する流れを4パターンに分けて検証しました。
エヌアイデイの若手メンバーが参加し、基礎技術の習得と実践的な経験を目的とした社内の技術検証取り組みの資料です。
株式会社エヌアイデイの公式アカウントです。ソフトウェア開発、システム構築、システム運用まで幅広いICTサービスを提供する、1967年創業の独立系IT企業です。 NIDエンジニアの社内取り組みや登壇資料を共有します。
マルチクラウド実践: AWSデータ×BigQuery連携検証 2026年3月27日 (検証実施時期:2024年8-10月) 株式会社エヌアイデイ ICTデザイン事業部ANA部第2課 Copyright(c)2025 NID All Rights Reserved 1
参加メンバー&検証年月 ICTデザイン事業部ANA部第2課 原 菜摘 (1年目 ※検証当時) ICTデザイン事業部ANA部第2課 船渡川 碧 (1年目 ※検証当時) ICTデザイン事業部ANA部第2課 S.Y. ※2024年8月~10月検証実施 (1年目 ※検証当時)
目次 1. 導入 2. 検証方針 3. BigQuery-S3連携 4. BigQuery-RedShift連携 5. BigQuery-SpreadSheet連携 6. BigQuery-S3 EventDriven連携 7. 検証結果 8. S3-BigQuery連携パターン ※本資料に登場する会社名・製品・サービス名、ロゴマークなどは該当する各社の商号・商標または登録商標です。
1.導入 BigQueryとは BigQueryとは、ML、検索、地理空間分析、ビジネス インテリジェンスなどの 組み込み機能を使用してデータの管理と分析を支援するフルマネージドの データ分析プラットフォーム。
1.導入 なぜBigQueryを使用するのか 数ペタバイトといったビッグデータを高速に分析できる。 類似したサービスとしてAWS社が提供しているRedShiftがあるが、 BigQueryを選択する理由は既存のGoogle Platformとのサービス連携が 容易であること。
1.導入 検証目的 1.Google Cloud環境でのデータウェアハウス等を利用したデータ 分析領域における今後のソリューション提案に向けたナレッジを 蓄積する。 2.BigQuery(BQ)_DataLake 接続対応案件で利用する想定の構成を 事前に検証することで案件対応を円滑に進められるようにする。
2.検証方針 今回の検証ではAWSのS3バケット、Redshfitをデータソースとして BigQueryへのデータ連携し、スプレッドシートに結果を出力する流れを 以下の4パターンに分けて検証する。 1.S3からBigQueryへのデータ連携 2.RedShiftからBigQueryへのデータ連携 3.BigQueryからスプレッドシートへのデータ連携 4.S3イベントドリブンによるBigQueryへのデータ連携
3.BigQuery-S3連携 構成図
3.BigQuery-S3連携 手順 1.S3バケットに対してS3ReadOnly権限を持ったIAMユーザーの アクセスキーを払い出す。 2.BigQuery Data Transfer Serviceで転送ジョブを作成し、 S3URI、アクセスキー、シークレットキー、各種転送設定を行う。 3.転送ジョブを実行し、BigQueryにデータを連携する。
3.BigQuery-S3連携 IAMユーザーに割り当てるポリシー
3.BigQuery-S3連携 BigQuery Data Transfer Serviceの設定1
3.BigQuery-S3連携 BigQuery Data Transfer Serviceの設定2
3.BigQuery-S3連携 作成した転送ジョブを実行する 実行結果
3.BigQuery-S3連携 BigQueryのテーブルにデータが取り込まれていることを確認
4.BigQuery-RedShift連携 構成図
4.BigQuery-RedShift連携 手順 1.RedShiftのデータをcsv形式でS3バケットにアンロードする。 2.S3バケットに対してS3ReadOnly権限を持ったIAMユーザーの アクセスキーを払い出す。 3.BigQuery Data Transfer Serviceで転送ジョブを作成し、 S3URI、アクセスキー、シークレットキー、各種転送設定を行う。 4.転送ジョブを実行し、BigQueryにデータを連携する。
5.BigQuery-SpreadSheet連携 構成図
5.BigQuery-SpreadSheet連携 手順 1.Googleドライブの任意の箇所にスプレッドシートを作成する。 2.スプレッドシートからコネクテッドシートの設定を行い、 対象のBigQueryテーブルを選択する。
5.BigQuery-SpreadSheet連携 スプレッドシート→データコネクタ→BigQueryを選択
5.BigQuery-SpreadSheet連携 プロジェクト、データセット、テーブルを選択
5.BigQuery-SpreadSheet連携 新規シートに指定したBigQueryテーブルとデータ連携されている
6.BigQuery-S3 EventDriven連携 構成図
6.BigQuery-S3 EventDriven連携 手順 1.S3バケットに対してS3ReadOnly権限を持ち、対象のGoogle アカウントを信頼ポリシーに設定したIAMロールを作成する。 2.SQSキューを作成し、キューポリシーに対象のS3バケットを 設定する。 3.S3イベント通知に送信先をSQSキューに指定し、トリガーとして 「s3:ObjectCreated:*」を設定する。
6.BigQuery-S3 EventDriven連携 手順 4.Storage Transfer ServiceにIAMロール、S3バケット、SQSキューを 指定し、S3ーGCS間のデータ連携設定をする。 5.対象のGCSの「google.cloud.storage.object.v1.finalized」イベント をトリガーとするCloudFunctionを作成する。 6.CloudFunctionにBigQueryへのデータ取り込み処理を実装する。
6.BigQuery-S3 EventDriven連携 IAMロールにアタッチしているポリシー AmazonS3ReadOnlyAccess AmazonSQSFullAccess
6.BigQuery-S3 EventDriven連携 IAMロールに設定している信頼ポリシー
6.BigQuery-S3 EventDriven連携 SQSキューのキューポリシー
6.BigQuery-S3 EventDriven連携 S3イベント通知設定1
6.BigQuery-S3 EventDriven連携 S3イベント通知設定2
6.BigQuery-S3 EventDriven連携 Storage Transfer Service設定
6.BigQuery-S3 EventDriven連携 Cloud Function設定
6.BigQuery-S3 EventDriven連携 S3にファイルをアップロード
6.BigQuery-S3 EventDriven連携 Storage Transfer Serviceが実行されていることを確認。
7.検証結果 検証方針として挙げていた以下4パターンについて、 全て問題なく実現できることを確認した。 1.S3からBigQueryへのデータ連携 2.RedShiftからBigQueryへのデータ連携 3.BigQueryからスプレッドシートへのデータ連携 4.S3イベントドリブンによるBigQueryへのデータ連携
8.S3-BigQuery連携パターン ・S3→BigQuery間のデータ連携は大きく分けて以下の3パターン あるが、仕様の異なる部分があるため用途に応じて使い分けが必要。 ・Storage Transfer Service… アクセスキーの払い出しが必須のため、セキュリティ的に利用が難しい 場合がある。 ・BigQuery Omni… 今回の技術ソリューションでは検証できなかったが、IAMロールを 利用できるため、アクセスキーの払い出しが不要。 しかし対応リージョンが少なく、現状(検証当時)は日本のリージョンでは利用不可。 ・GCS経由… 上記同様IAMロールが利用できるが追加でGCSを利用するためコストが増える。