0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BigQueryよく使うコマンド集(基本操作まとめ)

Posted at

BigQueryとは

BigQueryは、Google Cloudが提供するフルマネージドなエンタープライズデータウェアハウスです。その最大の特徴は、ペタバイト規模のデータを秒単位で分析できる高速性と、サーバーレスで運用が容易である点にあります。

主な特徴:

  • サーバーレス: インフラの管理やスケーリングについて心配する必要がありません。Googleがすべてを管理します。

  • 高速性: 分散型クエリエンジンにより、大規模なデータセットに対しても非常に高速な分析が可能です。

  • スケーラビリティ: データの増加に合わせて自動的にスケールします。

  • 費用対効果: データのストレージとクエリの実行に対して課金される従量課金制です。クエリは処理されたデータ量に基づいて課金されます。

  • SQL互換性: 標準SQLをサポートしており、既存のSQL知識を活かせます。

  • データ連携: Google Cloudの様々なサービス(Cloud Storage, Cloud Dataflow, Looker Studioなど)と容易に連携できます。また、外部データソース(Amazon S3, Azure Blob Storageなど)へのクエリも可能です。

  • 機械学習(BigQuery ML): SQLを使ってBigQuery内で機械学習モデルを構築・実行できます。

BigQueryの構成要素:

  • プロジェクト: Google Cloudのすべてのリソースをまとめる最上位の論理的なコンテナです。BigQueryのリソースもプロジェクト内に作成されます。

  • データセット: テーブルやビュー、モデルなどを格納する論理的なコンテナです。データベースにおけるスキーマのようなものです。

  • テーブル: 実際のデータを格納する場所です。リレーショナルデータベースのテーブルと同様に、列と行で構成されます。

  • ビュー: クエリの結果を仮想的なテーブルとして定義したものです。データはビューには格納されず、ビューが参照されるたびに基になるテーブルから取得されます。

  • ジョブ: BigQueryで行われるすべての操作(クエリの実行、データのロード/エクスポートなど)は「ジョブ」として実行されます。

BigQueryのコマンドの説明(bqコマンドラインツール)

bqコマンドラインツールは、BigQueryリソースを管理するためのコマンドラインインターフェースです。Google Cloud SDKに含まれています。

よく使うコマンドをいくつか紹介します。

プロジェクトとデータセットの操作

プロジェクトの設定:


gcloud config set project <PROJECT_ID>

BigQueryを含むGoogle Cloudリソースを操作する前に、操作対象のプロジェクトを設定します。

データセットの作成:


bq mk <DATASET_ID>
例: bq mk my_new_dataset

データセットの一覧表示:


bq ls

データセットの詳細表示:


bq show <DATASET_ID>
例: bq show my_new_dataset

データセットの削除:


bq rm -r <DATASET_ID>

-r オプションは、データセット内のすべてのテーブルも削除します。

テーブルの操作

テーブルの作成(スキーマを指定して空のテーブルを作成):


bq mk --table <DATASET_ID>.<TABLE_ID> <SCHEMA>

例: bq mk --table my_new_dataset.my_table my_column:STRING,another_column:INTEGER

JSONファイルからテーブルを作成(スキーマ自動検出):


bq load --source_format=NEWLINE_DELIMITED_JSON <DATASET_ID>.<TABLE_ID> <JSON_FILE_PATH>

CSVファイルからテーブルを作成:


bq load --source_format=CSV <DATASET_ID>.<TABLE_ID> <CSV_FILE_PATH> <SCHEMA>

または、スキーマを自動検出させる場合は --autodetect オプションを使用します。


bq load --source_format=CSV --autodetect <DATASET_ID>.<TABLE_ID> <CSV_FILE_PATH>

テーブルの一覧表示:


bq ls <DATASET_ID>
例: bq ls my_new_dataset

テーブルの詳細表示(スキーマ確認など):


bq show <DATASET_ID>.<TABLE_ID>
例: bq show my_new_dataset.my_table

テーブルのデータプレビュー:


bq head <DATASET_ID>.<TABLE_ID>

テーブルの削除:


bq rm <DATASET_ID>.<TABLE_ID>

クエリの実行

クエリの実行:


bq query --use_legacy_sql=false 'SELECT * FROM `project_id.dataset_id.table_id` LIMIT 100'

--use_legacy_sql=false は、標準SQLを使用することを示します(強く推奨)。

ファイルからクエリを実行:


bq query --use_legacy_sql=false --file=<QUERY_FILE_PATH>

ジョブの操作

実行中のジョブの一覧表示:


bq ls -j

特定のジョブの詳細表示:


bq show -j <JOB_ID>

よく使うクエリ10選

これらの情報で、BigQueryの基本的な理解と操作に役立つかと思います。
BigQueryは非常に奥深いサービスなので、公式ドキュメントも併せて参照されることをお勧めします。

1891年 ヴィクトリア朝のシャーロックホームズの世界に3名の生成AIが突如現れる。
現代社会の不可思議なビジネス課題をこの3名の生成AIが謎に迫る

  • ビジネスコンテンツ × ミステリー × 生成AIの世界観をお楽しみください。

こちらの数値がBigQueryで取得した数値を1日1回自動更新する仕組みにしています。

こちらはGA4のデータを集計して1日1回自動更新する仕組みでやっています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?