Create the BigQuery AWS connection

進行状況を確認

/ 25

Create the BigQuery Dataset and External Table

進行状況を確認

/ 25

Query the External Table

進行状況を確認

/ 25

Export query results to AWS S3

進行状況を確認

/ 25

このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
このコンテンツはまだモバイル デバイス向けに最適化されていません。
快適にご利用いただくには、メールで送信されたリンクを使用して、デスクトップ パソコンでアクセスしてください。

GSP1075

Google Cloud セルフペース ラボ

概要

このラボでは、AWS で BigQuery Omni を使用する方法を学びます。BigQuery Omni を使用すると、AWS S3 に保存されているデータに対して BigQuery 分析を実行できます。Google Cloud BigQuery と AWS S3 の間に承認済み接続を作成し、データを移動することなく S3 バケットに存在するデータに対してクエリを実行し、クエリの結果を AWS S3 バケットに書き戻します。このラボは、Google が公開している BigQuery Omni ガイドをベースにしています。

アーキテクチャの概要

アーキテクチャの概要

目標

このラボでは、次のタスクの実行方法について学びます。

  • Google Cloud と AWS の間の接続を作成する
  • BigQuery Omni が AWS S3 バケット内のデータを読み取れるように権限を付与する
  • AWS S3 バケット内の元データを参照する BigQuery 外部テーブルを作成する
  • AWS S3 データに対してクエリを実行する
  • クエリ結果を AWS S3 バケットにエクスポートする

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 右側の [ラボの設定とアクセス] パネルには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • このラボで使用する一時的な認証情報(ユーザー名とパスワード)
    • このラボを行うために必要なその他の情報(ある場合)

    ラボのタイマーはページの上部に表示され、残り時間が示されます。

  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示された場合は、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの設定とアクセス] パネルでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの設定とアクセス] パネルでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで指定された認証情報を使用する必要があります。ご自身の Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後のページはクリックして先に進みます。

    • 利用規約に同意します。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

しばらくすると、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニューのアイコンと検索フィールド

タスク 1. BigQuery AWS 接続を作成する

BigQuery Omni は、Google Cloud からの承認済み接続を介して Amazon S3 のデータにアクセスします。接続ごとに独自の Amazon Web Services(AWS)の Identity and Access Management(IAM)ユーザーが設定されています。AWS IAM のロールを使用してユーザーに権限を付与します。AWS IAM ロールのポリシーにより、それぞれの接続で BigQuery がアクセスできるデータが決まります。

注: このラボでは、Google Cloud と AWS の両方のコンソールを使用します。タスクの説明に従って双方のタブやウィンドウを切り替えます。

BigQuery の AWS IAM ポリシーを作成する

  1. AWS Management Console にログインします。ラボのペインにある [Open AWS Console] ボタンをクリックし、提供されたユーザー名とパスワードでログインします。

  2. 上部の検索バーで「Amazon S3」を検索し、[S3] を選択します。このラボで使用できるように、データが事前入力された、 という名前のリージョン バケットがすでに用意されています。以降の手順で使用するため、このバケット名をコピーします。

  3. 上部の検索バーで「AWS Identity and Access Management(IAM)」を検索し、[IAM] を選択します。

  4. 左側のペインで [Policies] を選択し、bigquery-omni-connection-policy をクリックします。

  5. [JSON] タブをクリックし、[Edit] をクリックして、次の内容をエディタに貼り付けます。<BUCKET_NAME> のすべてのインスタンスを、ステップ 2 でコピーした S3 バケット名に置き換えます。

{ "Statement": [ { "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::<BUCKET_NAME>" ], "Sid": "BucketLevelAccess" }, { "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::<BUCKET_NAME>", "arn:aws:s3:::<BUCKET_NAME>/*" ], "Sid": "ObjectLevelGetAccess" }, { "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::<BUCKET_NAME>", "arn:aws:s3:::<BUCKET_NAME>/*" ], "Sid": "ObjectLevelPutAccess" } ], "Version": "2012-10-17" }
  1. [Next] をクリックします。

  2. [Save changes] をクリックします。

BigQuery の AWS IAM を検証する

  1. 左側のペインで [Roles] を選択します。

  2. bigquery-omni-connection ロールをクリックします。

  3. ARN をコピーします。形式は次のようになります。<ACCOUNT_ID> は AWS のアカウント ID です。

arn:aws:iam::<ACCOUNT_ID>:role/bigquery-omni-connection

ロールの ARN をコピーしました

BigQuery AWS 接続を作成する

  1. Google Cloud コンソールのナビゲーション メニューから、[BigQuery] > [Studio] に移動します。

  2. [エクスプローラ] ペインに切り替え、[+ データを追加] を選択します。

データを追加

  1. [ストレージ / データレイク] のチェックボックスをオンにします。[特徴量データソース] で [Amazon S3]、[BigQuery Omni フェデレーション] の順に選択します。

  2. [外部データソース] ペインで、次の情報を入力します。

    • [接続タイプ] で、[AWS 上の Lakehouse(BigQuery Omni 経由)] を選択します。
    • [接続 ID] に、接続リソースの識別子として「bq-omni-aws-connector」と入力します。
    • [接続ロケーション] で aws-us-east-1 を選択します。
    • 省略可: [わかりやすい名前] を入力します。後で修正が必要になった場合、わかりやすい名前だと接続リソースを簡単に識別できます。
    • 省略可: [説明] に、この接続リソースの説明を入力します。
    • [AWS ロール ID] に、前のステップでコピーした IAM ロール ARN を arn:aws:iam::AWS_ACCOUNT_ID:role/ROLE_NAME の形式で入力します。
  3. [接続を作成] をクリックします。

  4. BigQuery の従来のエクスプローラに戻り、プロジェクト名の横にあるプルダウンをクリックして、[外部接続] リストにある新しく作成した接続に移動します。

BigQuery 接続リソース情報

  1. BigQuery Google ID をメモしておきます。これは、各接続に固有の Google プリンシパルです。この BigQuery Google ID をコピーします。これは次のセクションで使用します。

BigQuery の Google Identity は次のようになります。

BigQuery Google identity: 114999259451445753095

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 BigQuery AWS 接続を作成する

AWS ロールに信頼関係を追加する

信頼関係により、ロールポリシーで指定されているロールと S3 データへのアクセス権を BigQuery AWS 接続で使用します。

  1. AWS IAM コンソールに戻ります。

  2. 左側のペインで [Roles] を選択します。

  3. bigquery-omni-connection ロールを選択します。

  4. [Maximum session duration] が [12 hours] に設定されていることを確認します。各クエリは最大 6 時間実行できるため、この期間で追加の再試行を 1 回行うことができます。セッション継続時間を 12 時間以上に増やしても、追加の再試行は行えません。詳細については、クエリ / 複数ステートメント クエリ実行時間の上限をご覧ください。

  5. [Trust Relationships] タブを選択し、[Edit trust policy] をクリックします。

  6. ポリシーの内容を次のように置き換えます。BIGQUERY_IDENTITY は、「BigQuery AWS 接続を作成する」の手順でコピーした BigQuery Google ID に置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "accounts.google.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "accounts.google.com:sub": "<BIGQUERY_IDENTITY>" } } } ] }
  1. [Update Policy] をクリックします。

これで接続が使用できるようになりました。

注: AWS でのロールの割り当てに対しては、伝播遅延が発生することがあります。新しい接続の使用中にこのタイプのエラーが発生した場合は、しばらくしてから再試行すると問題が解決することがあります。

タスク 2. AWS S3 外部テーブルに対してクエリを実行する

BigQuery Omni は Amazon S3 に保存されているデータを管理しません。S3 データにアクセスするには、外部テーブルを定義します。データは BigQuery マネージド ストレージに保存されないため、このテーブルは外部テーブルと呼ばれます。詳細については、外部テーブルをご覧ください。

BigQuery データセットを作成する

このセクションでは、AWS S3 バケットと同じリージョンに BigQuery データセットを作成します。

  1. Google Cloud コンソールで [BigQuery] ページに移動して、データセットを作成します。

  2. [従来のエクスプローラ] ペインで、プロジェクト名の横にあるその他アイコンをクリックし、[データセットを作成] を選択します。

  3. [データセットの作成] ページで、次の情報を入力します。

    • [データセット ID] に「bq_omni_demo」と入力します。
    • [データのロケーション] で aws-us-east-1 を選択します。
  4. [データセットを作成] をクリックします。

外部テーブルを作成する

このセクションでは、上記のデータセットに外部テーブルを作成します。

  1. この BigQuery エクスプローラで、プロジェクトを開き、作成した bq_omni_demo データセットを選択します。

  2. 詳細パネルで [テーブルを作成] をクリックします。

  3. [テーブルの作成] ページの [ソース] セクションで、次の操作を行います。

    • [テーブルの作成元] で [Amazon S3] を選択します。
    • [S3 パスを選択] に「s3://[S3 bucket name]/taxi-data_green_trips_table.csv」と入力します。
      • [S3 bucket name] を に置き換えます。
    • [ファイル形式] で [CSV] を選択します。
注: サポートされている形式は、AVRO、PARQUET、ORC、CSV、NEWLINE_DELIMITED_JSON、Google スプレッドシートです。 重要: S3 パスにスペースが含まれているとエラーが発生するため、必ず削除してください。
  1. [テーブルの作成] ページの [送信先] セクションで、次の操作を行います。

    • [データセット名] で bq_omni_demo を選択します。
    • [テーブル名] フィールドに「bq-omni-table」と入力します。
    • [テーブルタイプ] が [外部テーブル] に設定されていることを確認します。
    • [接続 ID] で、プルダウンから該当する接続 ID を選択します。
    • [スキーマ] セクションで、[自動検出] チェックボックスをオンにします。
  2. [テーブルを作成] をクリックします。

注: テーブル スキーマはソースファイルから自動検出されるため、指定する必要はありません。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 BigQuery データセットと外部テーブルを作成する

タスク 3. 外部テーブルを作成して AWS S3 データをクエリする

BigQuery Omni を使用すると、外部テーブルに対して BigQuery テーブルと同じようにクエリを実行できます。インタラクティブ クエリの結果の最大サイズは 10 GB(プレビュー)です。詳細については、制限事項をご覧ください。クエリ結果が 10 GB を超える場合は、Amazon S3 にエクスポートすることをおすすめします。クエリ結果は BigQuery の一時テーブルに保存されます。

外部テーブルに対してクエリを実行する

  1. bq-omni-table の詳細ページで [クエリ] をクリックすると、新しいエディタが開きます。

  2. クエリエディタで次のステートメントを入力します。

SELECT * FROM `{{{project_0.project_id|S3 bucket name}}}.bq_omni_demo.bq-omni-table`
  1. [実行] をクリックします。

次のような出力が表示されます。

クエリ結果

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 外部テーブルに対してクエリを実行する

タスク 4. クエリ結果を AWS S3 にエクスポートする

BigQuery Omni を使用すると、BigQuery 外部テーブルに対するクエリの結果を Amazon S3 にエクスポートできます。

クエリ結果をエクスポートする

BigQuery Omni は、既存のコンテンツが存在するかどうかに関係なく、指定した Amazon S3 のロケーションにコンテンツを書き込みます。エクスポート クエリでは、既存のデータを上書きすることも、クエリ結果を既存のデータと混在させることもできます。[クエリエディタ] フィールドで、Google 標準 SQL エクスポート クエリを実行する必要があります。Google 標準 SQL は Google Cloud コンソールのデフォルトの構文です。以下のテンプレートを使用できます。

EXPORT DATA WITH CONNECTION `CONNECTION_REGION.CONNECTION_NAME` \ OPTIONS(uri="s3://BUCKET_NAME/PATH", format="FORMAT", ...) \ AS QUERY

次の値を置き換える必要があります。

  • CONNECTION_REGION: 接続が作成されたリージョン。
  • CONNECTION_NAME: S3 バケットへの書き込みに必要な権限を使用して作成した接続名。
  • BUCKET_NAME: データを書き込む Amazon S3 バケット。
  • PATH: エクスポートされるファイルを書き込むパス。
  • FORMAT: ファイル形式(JSON、AVRO、CSV)を指定。
  • QUERY: BigQuery 外部テーブルに保存されているデータを分析するためのクエリ。
  1. このラボでは、クエリがあらかじめ入力されています。このクエリをエディタに貼り付けます。
EXPORT DATA WITH CONNECTION `aws-us-east-1.bq-omni-aws-connector` OPTIONS(uri="s3://{{{project_0.project_id|S3 bucket name}}}/exports/*", format="CSV") AS SELECT * FROM `{{{project_0.project_id|S3 bucket name}}}.bq_omni_demo.bq-omni-table`
  1. [実行] をクリックします。

次のような出力が表示されます。

Successfully exported 15417 rows into 1 files.
  1. S3 バケットに移動し、データが exports ディレクトリにエクスポートされていることを確認します。

AWS コンソールでクエリ結果を S3 バケットにエクスポートする

これで、エクスポート クエリを正常に実行し、S3 バケットにファイルを作成できました。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 クエリ結果を AWS S3 にエクスポートする

お疲れさまでした

このラボでは、Google Cloud と AWS の間の接続を作成し、BigQuery Omni が AWS S3 バケットのデータを読み取れるようにしました。次に、AWS S3 バケット内の元データを参照する BigQuery 外部テーブルを作成し、データに対してクエリを実行して、クエリ結果を AWS S3 バケットにエクスポートしました。

次のステップと詳細情報

BigQuery Omni の詳細については、以下をご覧ください。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2026 年 5 月 18 日

ラボの最終テスト日: 2026 年 2 月 19 日

Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名とパスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボを実行するには、シークレット モードまたはシークレット ブラウジング ウィンドウを使用することをおすすめします。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。