BigQueryをbqコマンドから操作できるので、よく自分が使うコマンドをメモします。
テーブルの詳細情報の確認
bq show my-project:samples.test_tbl
Last modified Schema Total Rows Total Bytes Expritation Time Partitioning Clustered Fields Labels
---------------- ---------------- ------------ ------------- ------------- -------------------- ------------------ -------
12 Sep 10:20:30 |- id: string 12345678 91011121314
|- col1: integer
|- col2: integer
データセット配下のテーブル一覧出力
bq ls -n 1000 --format=pretty bigquery-public-data:samples
+-----------------+-------+--------+-------------------+------------------+
| tableId | Type | Labels | Time Partitioning | Clustered Fields |
+-----------------+-------+--------+-------------------+------------------+
| github_nested | TABLE | | | |
| github_timeline | TABLE | | | |
| gsod | TABLE | | | |
| natality | TABLE | | | |
| shakespeare | TABLE | | | |
| trigrams | TABLE | | | |
| wikipedia | TABLE | | | |
+-----------------+-------+--------+-------------------+------------------+
オプション | 説明 |
---|---|
--max_results または -n | 出力結果の最大数を指定 デフォルトは50 |
--format | 結果の出力形式を指定 pretty: フォーマットされたテーブル |
クエリを実行する(例:テーブル作成)
bq query --nouse_legacy_sql 'create table if not exists `my-project:samples.test_tbl`'
クエリを実行する(例:SQLファイルの実行)
bq query --project my-project --use_legacy_sql=false "`cat sample.sql`"
オプション | 説明 |
---|---|
--nouse_legacy_sql または --use_legacy_sql=false |
標準SQLクエリを使用 |
--use_legacy_sql | レガシーSQLを使用 |
テーブルをコピーする
bq cp my-project:samples.test_tbl_a my-project:samples.test_tbl_b
タイムトラベル機能で特定時点のテーブルに復元
bq cp -f [データセット名].[テーブル名]@-[現在時刻からの相対オフセット] [データセット名].[テーブル名]
# 例えば、データセット「samples」のテーブル「test_tbl_a」を1時間前の状態に復元したい場合は以下のコマンド
bq cp -f samples.test_tbl_a@-3600000 samples.test_tbl_a
参考:https://cloud.google.com/bigquery/docs/reference/bq-cli-reference?hl=ja