めもめも

データエンジニアリング、機械学習について書いてます

BigQueryの複数テーブルを同時に削除するワンライナー

以下のコマンドを、Cloud SDKがインストール済みの環境で実行すると、特定の文字列を含むテーブルを同時に削除することが可能です。

bq ls -a {データセット名} | grep {テーブル名に含まれる共通の文字列} | awk ‘{print $1}’ | xargs -n 1 bq --project_id {プロジェクトID} --dataset_id {データセット名} rm -f

使用例

プロジェクト名が「test-project」、データセット名が「test-dataset」、テーブル名のプレフィックスが「test-table」の場合。

bq ls -a test-dataset | grep test-table| awk ‘{print $1}’ | xargs -n 1 bq --project_id test-project --dataset_id test-dataset rm -f

最後に

シャーディングテーブルなど、共通のプレフィックスを含むテーブルを同時に削除したいときに使えると思います。