Amazon Web Services ブログ

データ転送を簡素化: Amazon AppFlow を利用した Google BigQuery から Amazon S3 への転送

昨今のデータドリブンな世界では、様々なプラットフォーム間でデータを簡単に移動して分析できることが不可欠です。フルマネージド型のデータ統合サービスである Amazon AppFlow は AWS サービスと SaaS アプリケーション間のデータ転送を効率化する最前線に立ってきており、現在は Google BigQuery にも対応しています。このブログ記事では、Amazon AppFlowの Google BigQuery コネクタがGoogle のデータウェアハウスから Amazon Simple Storage Service (Amazon S3) にデータを転送するプロセスを簡略化する手法と、マルチクラウドデータアクセスの民主化を含めたデータ専門家や組織にとっての大きなメリットについて解説します。

Amazon AppFlow の概要

Amazon AppFlow は Google BigQuery 、 Salesforce 、 SAP 、 Hubspot 、 ServiceNow などの SaaS アプリケーションと、 Amazon S3 や Amazon Redshift などの AWS サービスの間におけるデータの安全な転送を数回のクリックで実現できるフルマネージドなデータ統合サービスです。 Amazon AppFlow では、ほぼ全ての規模のデータフローを任意の頻度(定期実行、ビジネスイベントへの対応、オンデマンド)で実行できます。フィルタリングや検証などのデータ変換機能の設定だけで、すぐに使用できる豊富なデータをフローの一部として生成できます。 Amazon AppFlow では転送中のデータが自動的に暗号化され、 AWS PrivateLink と統合された SaaS アプリケーションではデータがパブリックなインターネットを通るのを制限できるため、セキュリティ上の脅威にさらされるリスクが軽減されます。

Google BigQuery コネクタのご紹介

Google BigQuery コネクタは Google のデータウェアハウスの分析機能を利用し、 BigQuery からのデータを簡単に統合、分析、保存、または追加の処理を行い、実用的なインサイトに変換したいと考えている組織に可能性をもたらします。

アーキテクチャ

Amazon AppFlow を使って Google BigQuery から Amazon S3 にデータを転送するアーキテクチャを確認してみましょう。

  1. データソースを選択する: Amazon AppFlow でデータソースとして Google BigQuery を選択します。データを抽出するテーブルまたはデータセットを指定します。
  2. フィールドマッピングと変換: Amazon AppFlow の直感的なビジュアルインターフェースを使ってデータ転送を設定します。必要に応じてデータフィールドをマッピングし、変換を適用してデータを要件に合わせることができます。
  3. 転送頻度:データ転送の頻度(毎日、毎週、毎月など)を設定できます。柔軟に設定でき、自動化に役立ちます。
  4. 送信先:データの送信先として S3 バケットを指定します。 Amazon AppFlow は効率的にデータを転送し、 Amazon S3 ストレージからデータにアクセスできるようにします。
  5. 消費: Amazon Athena を利用して Amazon S3 上のデータを分析します。

前提条件

このソリューションで使われるデータセットは合成患者集団シミュレータであり Apache License 2.0 に基づくオープンソースプロジェクトである Synthea により生成されるものです。

Amazon AppFlow と Google BigQuery アカウントの接続

この投稿では、 Google アカウント、適切な権限を持つ OAuth クライアント、および Google BigQuery データを利用します。 Amazon AppFlow から Google BigQuery にアクセスできるようにするには、事前に新しい OAuth クライアントを設定する必要があります。設定手順については、 Google BigQuery connector for Amazon AppFlow をご参照ください。

Amazon S3 の設定

Amazon S3 の全てのオブジェクトはバケットに保存されます。 Amazon S3 にデータを保存する前に、結果を保存する S3 バケットを作成する必要があります。

Amazon AppFlow の結果を保存するための新しいS3バケットの作成

S3 バケットを作成するために、以下の手順を実施します。

  1. Amazon S3 の AWS マネジメントコンソールからバケットを作成をクリックします。
  2. グローバルで一意のバケット名を入力します(例: appflow-bq-sample )。
  3. バケットを作成をクリックします。

Amazon Athena の結果を保存するための新しい S3 バケットの作成

S3 バケットを作成するために、以下の手順を実施します。

  1. Amazon S3 の AWS マネジメントコンソールからバケットを作成をクリックします。
  2. グローバルで一意のバケット名を入力します(例: athena-results )。
  3. バケットを作成をクリックします。

AWS Glue データカタログのユーザーロール( IAM ロール)

フローとともに転送されるデータをカタログ化するためには、 AWS Identity and Access Management (IAM) における適切なユーザーロールが必要です。このロールを Amazon AppFlow に提供して、 AWS Glue Data Catalog 、テーブル、データベース、およびパーティションを作成するために必要なアクセス権限を付与します。

必要なアクセス権限を持つ IAM ポリシーの例については、 Identity-based policy examples for Amazon AppFlow をご参照ください。

デザインのチュートリアル

それでは、実際のユースケースから Amazon AppFlow の Google BigQuery コネクタがどのように動くかを見てみましょう。このユースケースでは、 Amazon AppFlow を使って Google BigQuery からの履歴データを Amazon S3 にアーカイブし長期保存と分析を行います。

Amazon AppFlow の設定

Google アナリティクスから Amazon S3 にデータを転送するための新しい Amazon AppFlow フローを作成します。

  1. Amazon AppFlow コンソールフローを作成をクリックします。
  2. フロー名を入力します(例: my-bq-flow )。
  3. 必要なタグを追加します。例えば、キーには envには dev と入力します。

  1. 次へをクリックします。
  2. 送信元名Google BigQuery を選択します。
  3. 新規接続を作成をクリックします。
  4. OAuth クライアント IDクライアントシークレット、そして接続名を入力します(例: bq-connection )。

  1. ポップアップウィンドウで、 amazon.com が Google BigQuery API にアクセスすることを許可するかと聞かれたら許可を選択します。

  1. Google BigQuery オブジェクトを選択テーブルを選択します。
  2. Google BigQuery サブオブジェクトを選択BigQuery プロジェクト名を選択します。
  3. Google BigQuery サブオブジェクトを選択データベース名を選択します。
  4. Google BigQuery サブオブジェクトを選択テーブル名を選択します。
  5. 送信先名Amazon S3 を選択します。
  6. バケットの詳細では、前提条件として Amazon AppFlow の結果を保存するために作成した Amazon S3 バケットを選択します。
  7. プレフィックスとして raw を入力します。

  1. 次に、 AWS Glue データカタログの設定を指定して、さらに分析するためのテーブルを作成します。
    1. 前提条件で作成したユーザーロール( IAM ロール)を選択します。
    2. 新しいデータベースを作成します(例: healthcare )。
    3. テーブルプレフィックスを指定します(例: bq )。

  1. オンデマンドで実行を選択します。

  1. 次へをクリックします。
  2. 手動でフィールドをマッピングするを選択します。
  3. Allergies テーブルから送信元フィールド名として次の6つのフィールドを選択します。
    1. Start
    2. Patient
    3. Code
    4. Description
    5. Type
    6. Category
  4. フィールドを直接マッピングするを選択します。

  1. 次へをクリックします。
  2. フィルターを追加するセクションで、次へをクリックします。
  3. フローを作成をクリックします。

フローの実行

新しいフローを作成したら、オンデマンドで実行できます。

  1. Amazon AppFlow コンソールで、 my-bq-flow を選択します。
  2. フローを実行をクリックします。


このチュートリアルでは、分かりやすいようにジョブのオンデマンド実行を選択してください。実際には、スケジュールされたジョブを選択して、新しく追加されたデータのみを定期的に抽出できます。

Amazon Athena を経由したクエリ

オプションの AWS Glue データカタログ設定を選択すると、データカタログが作成され Amazon Athena からクエリを実行できるようになります。

クエリ結果の保存場所を設定するように求められたら、設定タブに移動して管理を選択します。設定を管理で、前提条件で作成したAthena結果バケットを選択し、保存を選択します。

  1. Amazon Athena コンソールでデータソースとして AWSDataCatalog を選択します。
  2. 次に、データベースとして healthcare を選択します。
  3. これで AWS Glue クローラーによって作成されたテーブルを選択してプレビューできます。

  1. 次のようなカスタムクエリを実行し上位10のアレルギーを検索することもできます。

:以下のクエリから、テーブル名(ここでは bq_appflow_mybqflow_1693588670_latest )を実際生成されたテーブル名に置き換えてください。

SELECT type, 
category,
"description",
count(*) as number_of_cases 
FROM "healthcare"."bq_appflow_mybqflow_1693588670_latest"
GROUP BY type, 
category,
"description"
ORDER BY number_of_cases DESC
LIMIT 10;
  1. 実行をクリックします。


クエリの結果として件数で上位10のアレルギーが表示されます。

クリーンアップ

料金が発生しないようにするには、次の手順を実行して AWS アカウント内のリソースをクリーンアップしてください。

  1. Amazon AppFlow コンソールのナビゲーションペインでフローを選択します。
  2. フローのリストから、 my-bq-flow を選択し削除をクリックします。
  3. 削除と入力しフローを削除します。
  4. ナビゲーションペインから接続を選択します。
  5. コネクタから Google BigQuery を選択し、 bq-connector を選択した上で削除をクリックします。
  6. 削除と入力し接続を削除します。
  7. IAM コンソールのナビゲーションペインからロールを選択し、 AWS Glue クローラーのために作成したロールを選択した上で削除をクリックします。
  8. Amazon Athena コンソールを開きます。
    1. AWS Glue クローラーが作成した healthcare データベース配下のテーブルを削除します。
    2. healthcare データベースを削除します。
  9. Amazon S3 コンソールで Amazon AppFlow の結果バケットを検索し、空にするをクリックしてバケット内のオブジェクトを削除ます。その後、バケットを削除します。
  10. Amazon S3 コンソールで Amazon Athena の結果バケットを検索し、空にするをクリックしてバケット内のオブジェクトを削除ます。その後、バケットを削除します。
  11. Google BigQuery リソースを含むプロジェクトを削除して Google アカウントのリソースをクリーンアップします。クリーンアップの手順に従ってリソースを削除します。

まとめ

Amazon AppFlow の Google BigQuery コネクタは、 Google のデータウェアハウスから Amazon S3 へのデータ転送プロセスを効率化します。この統合により、分析、機械学習、アーカイブ、長期保存が簡素化され、 Google と AWS 両方のプラットフォームの分析機能を活用しようとしているデータ専門家や組織に大きなメリットをもたらします。

Amazon AppFlow を利用すると、データ統合の煩雑さが解消され、データから実用的な洞察を引き出すことに集中できます。履歴データをアーカイブする場合でも、複雑な分析を行う場合でも、機械学習のためのデータを準備する場合でも、このコネクタがプロセスを簡素化し、幅広いデータ専門家が利用できるようにします。

Amazon AppFlow を利用して Google BigQuery から Amazon S3 にデータを転送する方法に興味がある場合は、こちらのビデオチュートリアルをご覧ください。このチュートリアルでは、接続の設定からデータ転送フローの実行までの全体のプロセスを説明します。 Amazon AppFlow のより詳細な情報はこちらのページをご確認ください。


本記事は、Kartikay Khator、Kamen Sharlandjiev によるSimplify data transfer: Google BigQuery to Amazon S3 using Amazon AppFlowを翻訳したものです。 翻訳はソリューションアーキテクトのJang Soohyeongが担当しました。