Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2822

bqコマンドでデータセットを指定するとデータセット配下のテーブルを削除するようにした

$
0
0

概要

お掃除等のタイミングで、不要になったデータセット配下のテーブルをまるっと削除したい時用のスクリプトを書きました。
データセットごと削除してしまうと、やっぱりあのテーブル必要だった!?と発覚したときに復元できないので、
データセットを削除せず、テーブルを削除するようにしています。

使い方

スクリプトを実行するときにデータセットIDを渡すだけです。
プロジェクトIDは明示的にスクリプト内に記載します。

bash bq_rm_dataset_tables.sh dataset_id

スクリプト

bq_rm_dataset_tables.sh
#!/bin/bash# project_id は明示的に固定しておくproject_id=hogehoge
dataset_id=$1# cf. https://qiita.com/okisanjp/items/7985ddb9b1b00f1617a9# mac は /bin/echo としないと -n がうまく動作しない
/bin/echo -n"bq rm ${project_id}:${dataset_id}.tables? [y/n]"read answer

if["$answer"="y"];then# 明示的に区切り文字を改行コードにするIFS=$'\n';# bq ls dataset | TABLE行のみ取得 | TABLE以降の文字列を削除 | 空白削除for LINE in`bq ls${project_id}:${dataset_id} | grep TABLE | sed's/TABLE.*//g' | sed's/ //g '`do
    yes | bq rm${project_id}:${dataset_id}.${LINE}done

fi

Viewing all articles
Browse latest Browse all 2822

Latest Images

Trending Articles