bq ツールを使用する
このチュートリアルでは、BigQuery 用の Python ベースのコマンドライン インターフェース(CLI)ツールである bq
を使用して、データセットの作成、サンプルデータの読み込み、テーブルのクエリを行う方法について説明します。このチュートリアルを完了すると、bq
と、CLI を使用して BigQuery を操作する方法を理解できます。
すべての bq
コマンドとフラグの詳細なリファレンスについては、bq コマンドライン ツールのリファレンスをご覧ください。
このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、「ガイドを表示」をクリックしてください。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
BigQuery API が有効になっている。
新しいプロジェクトを作成している場合は、BigQuery API が自動的に有効になっています。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
新しいブラウザタブで次の URL を開き、米国社会保障局のデータをダウンロードします。
https://www.ssa.gov/OACT/babynames/names.zip
ファイルを抽出します。
データセット スキーマの詳細については、抽出した
NationalReadMe.pdf
ファイルをご覧ください。データの内容を確認するには、
yob2024.txt
ファイルを開きます。このファイルには、名前、出生時の性別、その名前の子供の数の値がカンマ区切りで含まれています。このファイルにはヘッダー行がありません。ファイルを作業ディレクトリに移動します。
Cloud Shell で作業している場合は、
、[アップロード] の順にクリックし、[ファイル選択] をクリックして、 [詳細] yob2024.txt
ファイルを選択し、[アップロード] をクリックします。ローカルシェルで作業している場合は、bq ツールを実行しているディレクトリにファイル
yob2024.txt
をコピーまたは移動します。
ドキュメントから Cloud Shell を起動した場合は、次のコマンドを入力してプロジェクト ID を設定します。これにより、各 CLI コマンドでプロジェクト ID を指定する必要がなくなります。
gcloud config set project PROJECT_ID
PROJECT_ID は、実際のプロジェクト ID に置き換えます。
次のコマンドを入力して、
babynames
という名前のデータセットを作成します。bq mk --dataset babynames
出力は次のようになります。
Dataset 'babynames' successfully created.
データセット
babynames
がプロジェクトに表示されていることを確認します。bq ls --datasets=true
出力は次のようになります。
datasetId ------------- babynames
babynames
データセットで、ソースファイルyob2024.txt
をnames2024
という名前の新しいテーブルに読み込みます。bq load babynames.names2024 yob2024.txt name:string,assigned_sex_at_birth:string,count:integer
出力は次のようになります。
Upload complete. Waiting on bqjob_r3c045d7cbe5ca6d2_0000018292f0815f_1 ... (1s) Current status: DONE
テーブル
names2024
がbabynames
データセットに表示されることを確認します。bq ls --format=pretty babynames
出力は次のようになります。出力を簡素化するために、一部の列は省略されています。
+-----------+-------+ | tableId | Type | +-----------+-------+ | names2024 | TABLE | +-----------+-------+
新しい
names2024
テーブルのテーブル スキーマがname: string
、assigned_sex_at_birth: string
、count: integer
であることを確認します。bq show babynames.names2024
出力は次のようになります。出力を簡素化するために、一部の列は省略されています。
Last modified Schema Total Rows Total Bytes ----------------- ------------------------------- ------------ ------------ 14 Mar 17:16:45 |- name: string 31904 607494 |- assigned_sex_at_birth: string |- count: integer
データ内の最も人気のある女の子の名前を特定します。
bq query \ 'SELECT name, count FROM babynames.names2024 WHERE assigned_sex_at_birth = "F" ORDER BY count DESC LIMIT 5'
出力は次のようになります。
+-----------+-------+ | name | count | +-----------+-------+ | Olivia | 14718 | | Emma | 13485 | | Amelia | 12740 | | Charlotte | 12552 | | Mia | 12113 | +-----------+-------+
データの中から最も人気の低い男の子の名前を特定します。
bq query \ 'SELECT name, count FROM babynames.names2024 WHERE assigned_sex_at_birth = "M" ORDER BY count ASC LIMIT 5'
出力は次のようになります。
+---------+-------+ | name | count | +---------+-------+ | Aaran | 5 | | Aadiv | 5 | | Aadarsh | 5 | | Aarash | 5 | | Aadrik | 5 | +---------+-------+
ソースデータは出現数が 5 未満の名前を除外するので、最小数は 5 です。
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
babynames
データセットを削除します。bq rm --recursive=true babynames
--recursive
フラグは、names2024
テーブルを含むデータセット内のすべてのテーブルを削除します。出力は次のようになります。
rm: remove dataset 'myproject:babynames'? (y/N)
削除コマンドを確定するには、「
y
」と入力します。- bq ツールの使用の詳細を確認する。
- BigQuery サンドボックスについて学習する。
- BigQuery へのデータの読み込みの概要について詳細を確認する。
- BigQuery でのデータのクエリについて詳細を学習する。
このチュートリアルで使用する Google Cloud プロジェクトの課金を有効にしない場合は、BigQuery サンドボックスでデータを読み込んでクエリを実行します。BigQuery サンドボックスを使用すると、一部の BigQuery 機能を無料で使用して、BigQuery を試すことができます。
ソースデータを含むファイルをダウンロードする
ダウンロードするファイルには、人気のある新生児の名前に関する約 7 MB のデータが含まれます。これは米国社会保障局から提供されています。
このデータの詳細については、米国社会保障局の人気の名前の背景情報をご覧ください。
データセットを作成する
テーブルにデータを読み込む
テーブルデータをクエリする
クリーンアップ
このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、リソースを含む Google Cloud プロジェクトを削除します。
プロジェクトを削除する
BigQuery サンドボックスを使用して一般公開データセットをクエリした場合、そのプロジェクトでは課金は有効になっていないため、プロジェクトを削除する必要はありません。課金をなくす最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。
プロジェクトを削除するには:
リソースを削除する
既存のプロジェクトを使用した場合は、作成したリソースを削除します。