始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create BigQuery dataset and tables
/ 20
Load data into event table
/ 20
Create nested and repeated fields
/ 20
Create partitioned tables
/ 20
Create clustered tables
/ 20
BigQuery では、データを BigQuery データセットに整理し、列名とデータ型を使用して各テーブルのスキーマ(または構造)を定義します。テーブルのスキーマは、BigQuery がテーブル内のデータにアクセスして処理する速度と効率を左右するため、BigQuery のクエリのパフォーマンスと費用に影響を与える場合があります。BigQuery は柔軟なスキーマをサポートしており、データを書き換えることなくスキーマを変更できます。
このラボの目的は、Snowflake のプロフェッショナルが効果的な BigQuery テーブル スキーマの設計と実装を開始するうえで必要な知識とスキルを提供することです。このラボを完了すると、Snowflake のプロフェッショナルは、BigQuery でテーブル スキーマを設計、最適化、クエリする方法についてより深く理解できるようになります。
このラボでは、データを保存する BigQuery データセットとテーブルを作成し、非正規化されたデータの関係を維持するネストされたフィールドと繰り返しフィールドを作成し、クエリのパフォーマンスを最適化するためにパーティション分割テーブルとクラスタ化テーブルを作成します。
このラボでは、次の方法について学びます。
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
シークレット ウィンドウを使用して Google Skills にログインします。
ラボのアクセス時間(例: 1:15:00)に注意し、時間内に完了できるようにしてください。
一時停止機能はありません。必要な場合はやり直せますが、最初からになります。
準備ができたら、[ラボを開始] をクリックします。
ラボの認証情報(ユーザー名とパスワード)をメモしておきます。この情報は、Google Cloud コンソールにログインする際に使用します。
[Google コンソールを開く] をクリックします。
[別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。 他の認証情報を使用すると、エラーや料金が発生します。
利用規約に同意し、再設定用のリソースページをスキップします。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側のパネルには、このラボで使用する必要がある一時的な認証情報が表示されます。
ユーザー名をコピーし、[Google Console を開く] をクリックします。 ラボでリソースが起動し、別のタブで [アカウントの選択] ページが表示されます。
[アカウントの選択] ページで [別のアカウントを使用] をクリックします。[ログイン] ページが開きます。
[接続の詳細] パネルでコピーしたユーザー名を貼り付けます。パスワードもコピーして貼り付けます。
しばらくすると、このタブで Cloud コンソールが開きます。
BigQuery では、データ定義言語(DDL)を使用してデータセットとテーブルを作成できます。また、SQL ステートメント LOAD DATA を使用して、1 つ以上のファイルから、データを新規または既存のテーブルに読み込むこともできます。
DDL ステートメントを使用して BigQuery データセットとテーブルを作成する方法、および LOAD DATA SQL ステートメントを使用してデータを読み込む方法について詳しくは、CREATE SCHEMA ステートメント、CREATE TABLE ステートメント、LOAD DATA ステートメントに関するドキュメントをご覧ください。
このタスクでは、DDL を使用して BigQuery にデータセットとテーブルを作成し、LOAD DATA ステートメントを使用して新しいテーブルにデータを読み込みます。
[Cloud Console の BigQuery へようこそ] メッセージ ボックスが開きます。このメッセージ ボックスには、クイックスタート ガイドとリリースノートへのリンクが表示されます。
[完了] をクリックします。
SQL ワークスペースのツールバーで、[エディタ] アイコンをクリックして SQL クエリエディタを開きます。
このクエリは、ticket_sales という名前の新しい BigQuery データセットを作成します。DDL ステートメントでは、SCHEMA という用語はテーブル、ビュー、その他のリソースの論理的なコレクションを指します。これは BigQuery ではデータセットと呼ばれます。
このクエリは、ticket_sales データセットに sales という名前の新しいテーブルを作成します。
データセットとテーブルが一覧表示されている [エクスプローラ] ペインを開き、テーブル名 sales をクリックします。
[詳細] タブと [プレビュー] タブをクリックして、テーブルの詳細情報を確認します。
テーブルにはまだデータがないことに注目してください。
このクエリでは、明示的なテーブル スキーマ定義を使用して、Cloud Storage の CSV ファイルから sales テーブルにデータを読み込みます。
[結果] ペインに、LOAD ステートメントが正常に実行されたことを示すメッセージが表示されます。
[プレビュー] タブのデータを更新するには、[更新](右上)をクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
ここまでで、BigQuery で SQL ステートメントを使用してデータセットとテーブルを作成し、データを読み込みました。別のテーブルを作成して、イベント情報のデータを読み込む練習をしましょう。
このクエリは、スキーマの自動検出を使用して、Cloud Storage の CSV ファイルから events テーブルにデータを読み込みます。
[結果] ペインに、LOAD ステートメントが正常に実行されたことを示すメッセージが表示されます。
[プレビュー] タブのデータを更新するには、[更新](右上)をクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
非正規化は、以前に正規化されたリレーショナル データセットの読み取りパフォーマンスを向上させるための一般的な手法です。BigQuery でデータを非正規化するために推奨される方法は、ネストされたフィールドと繰り返しフィールドを使用することです。データを完全にフラット化するのではなく、ネストされたフィールドと繰り返しフィールドを使用して、非正規化されたデータの関係を維持できます。
BigQuery のネストされたフィールドと繰り返しフィールドの詳細については、ネストされ繰り返されているフィールドを使用するをご覧ください。
このタスクでは、BigQuery でネストされたフィールドと繰り返しフィールドを作成してクエリを実行する方法を学習します。
ステップ 2 の SQL はステップ 1 の SQL と似ていますが、ARRAY_AGG 関数、STRUCT 関数、GROUP BY 関数が追加されていることに注目してください。
1 対多の関係の「1」側のデータが繰り返される代わりに、「多」側のデータが 1 つの構造体の配列に含まれるようになりました。
また、前のクエリを CREATE TABLE ステートメントでラップして、ネストされた階層テーブルを作成することもできます。
スキーマには、ネストされた繰り返しフィールド sales が含まれています。このフィールドには、各イベント販売の販売時間、販売数量、支払い価格、手数料が含まれています。
この新しいネストされた繰り返し構造により、クエリの書き方が変わります。
イベントごとの上位の手数料を確認したい場合はどうすればよいでしょうか?これには、配列内でのクエリが必要になります。そのためには、配列のネストを解除(またはフラット化)する必要があります。
sales 配列をフラット化してクエリできるようにするには、UNNEST 演算子を使用します。これによって、クエリの結果は配列に変換されます。
UNNEST を使用して配列をフラット化する方法について詳しくは、UNNEST 演算子に関するドキュメントをご覧ください。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
BigQuery でクエリによって処理されるバイト数を減らす方法の一つは、大きなテーブルをパーティションと呼ばれる小さなセグメントに分割し、適切なパーティションのデータのみが読み込まれるようにクエリにフィルタを含めることです。このプロセスはパーティション プルーニングと呼ばれ、クエリの費用を削減するために使用できます。
パーティション分割テーブルとパーティション プルーニングについて詳しくは、パーティション分割テーブルの概要とパーティション分割テーブルに対するクエリをご覧ください。
このタスクでは、時間単位のパーティション分割テーブル(基準は DATETIME 列)を作成してクエリを実行することで、クエリで処理されるバイト数を最小限に抑える方法を学習します。
クエリを実行する前に、BigQuery クエリ検証ツールによって、クエリで処理されるバイト数の見積もりが表示されます。このクエリの見積もりバイト数(15.12 MB)を確認します。
新しいクエリでは特定の日付の販売情報のみをリクエストしているにもかかわらず、処理されるバイト数がステップ 1 のクエリと同じ(15.12 MB)であることに注目してください。
クエリはパーティション分割テーブルに対して実行されるため、処理するデータ量が少なくなります(18.98 KB)。BigQuery ではパーティション プルーニングを使用して処理するデータ量を減らすことができるため、コストを削減し、クエリを高速化できます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
BigQuery でクエリ パフォーマンスを最適化する別の方法は、テーブル内の値をクラスタ化して、データを論理ストレージ ブロックに並べ替えてグループ化することです。クラスタ列でフィルタや集計を行うクエリは、テーブルやテーブル パーティション全体ではなく、クラスタ列に基づいて関連するブロックのみをスキャンします。このプロセスはブロック プルーニングと呼ばれ、結合、検索、グループ化、並べ替えを高速化できます。
クラスタ化テーブルとブロック プルーニングの詳細については、クラスタ化テーブルの概要とクラスタ化テーブルのクエリをご覧ください。
このタスクでは、クエリのパフォーマンスが最適化されるように、クラスタ化テーブルを作成してクエリを実行する方法を学習します。
このクエリでは、大量のデータ(この場合は 10 億行)を含む Google の一般公開データセットの 1 つを使用し、Wikipedia データのテーブルで言語ごとの閲覧数をカウントします。
シャッフルされたバイト数(619.68 KB)を確認します。
このコマンドの実行には数分かかることがあります。
同じクエリをクラスタ化テーブルに対して実行すると、シャッフルされるバイト数が少なくなる(47.98 KB)ことに注目してください。シャッフルされるバイト数が少ないほど、BigQuery での実行時間が短くなります。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Skills から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Copyright 2026 Google LLC All rights reserved. Google および Google のロゴは、Google LLC の商標です。その他すべての社名および製品名は、それぞれ該当する企業の商標である可能性があります。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください