![見出し画像](https://assets.st-note.com/production/uploads/images/63246540/rectangle_large_type_2_818a9b5908cb392bf8ba9ac168e47bc4.png?width=1200)
1. BigQueryで複数のテーブルを一括削除する方法
BigQueryで複数のテーブル(dataset.table)を一括削除する方法をご紹介します。
BigQueryでテーブルを削除する方は様々ですが、今回は1パターンご紹介します。
1. Cloud Shellターミナルのbq コマンドでテーブルを削除
2. SQLでテーブルを削除(後日追記予定)
BigQueryやデータ分析に関するお仕事のご相談はTwitter、Linkedinからお願いいたします。
Cloud Shellターミナルのbqコマンドでテーブルを削除
前準備:削除テーブル一覧の用意
bqコマンドで一括削除するために、前準備を行います。
以下のクエリをBigQueryで実行することで、bqのテーブル削除コマンドの一覧を用意することができます。
SELECT
CONCAT("bq rm -f -t ",table_schema,".", table_name, ";" )
FROM データセット名.INFORMATION_SCHEMA.TABLES
WHERE
table_name LIKE "テーブル名_%"
ORDER BY table_name
上記のクエリの実行例をご紹介します。
例えば、overall_results.test_YYYYMMDDのようなテーブルがあったとします。
![画像1](https://assets.st-note.com/production/uploads/images/63245996/picture_pc_1f58b23d044e04fb91a809d5798798c2.png?width=1200)
overall_results.test_20210901、overall_results.test_20210902、overall_results.test_20210903の3テーブルを削除したいとします。
この場合、以下のクエリを実行してbqコマンドの実行分を3行用意します。
SELECT
CONCAT("bq rm -f -t ",table_schema,".", table_name, ";" )
FROM overall_results.INFORMATION_SCHEMA.TABLES
WHERE
-- LIKEなどを用いて対象テーブルのみに絞り込みます
table_name LIKE "test_202109%"
ORDER BY table_name
以下は実行結果になります。
![画像2](https://assets.st-note.com/production/uploads/images/63246018/picture_pc_45adeefbffba82ca8d46c59900aba72a.png?width=1200)
スプレッドシートに削除用コマンドをコピー
「SAVE RESULTS」からGoogleスプレッドシートにコピーします。
また、bqコマンドの実行文+空行をコピーします。
![画像3](https://assets.st-note.com/production/uploads/images/63246028/picture_pc_7c4142a0a7812f1e3c05311ddf05c58d.png?width=1200)
Cloud Shellの起動
Cloud Consoleからbqコマンドを利用するために、Cloud Shellをアクティブにする必要があります。
こちらのURLをクリックし、Cloud Shellをアクティブにします。
https://console.cloud.google.com/bigquery?cloudshell=true&hl=ja&_ga=2.45188900.1447178286.1633947971-2037873899.1633947971
Cloud Shellにコマンドをペースト
Cloud Shellにbqコマンドをペーストすると、削除が実行されます。
※誤ったテーブルが指定されていないか確認の上、ペーストすることをおすすめします。
![画像4](https://assets.st-note.com/production/uploads/images/63246035/picture_pc_ac29c6814e2088c93d16cc415f35533f.png?width=1200)
これで削除が完了しました。
間違えて削除したテーブルの復元
間違えて削除したテーブルも7日以内であれば、テーブルを復元することができます。
bqコマンドで復元する例をご紹介します。
bq cp mydataset.mytable@1418864998000 mydataset.newtable
説明
bq cp データセット名.テーブル名@テーブルが存在していたときのUNIXタイムスタンプ データセット名.新しいテーブル名
参考記事
以下の記事でその他のテーブル削除方法が紹介されています。
もし気に入っていただけたら、ぜひサポートお願いします!