Google BigQuery-bqコマンドを使用すると、テーブルを作成、読み込み、クエリ、変更できます。
テーブルの削除に関するドキュメントは見つかりませんでした。方法を教えていただければ幸いです。
コマンドごとにpythonインターフェイスを記述する代わりに、bqツールの実装がはるかに簡単であることがわかりました。
ありがとう。
それを見つけた :
bq rm -f -t data_set.table_name
-t
テーブルの場合、-f
フォース、-r
指定されたデータセット内のすべてのテーブルを削除します
素晴らしいツール。
複数のテーブルを一括削除する方法はありますか? – activelearner
Bashでは、次のようなことができます。
for i in $(bq ls -n 9999 my_dataset | grep keyword | awk '{print $1}'); do bq rm -ft my_dataset.$i; done;
説明:
bq ls -n 9999 my_dataset
-データセット内の最大9999個のテーブルを一覧表示します| grep keyword
-前のコマンドの結果をgrepにパイプし、テーブルに共通するキーワードを検索します| awk '{print $1}'
-前のコマンドの結果をawkにパイプし、最初の列のみを出力しますdo bq rm -ft my_dataset.$i; done;
-データセットから各テーブルを削除します'do bq rm'を追加する前に、コマンドを実行して削除するテーブルを一覧表示することを強くお勧めします。このようにして、実際に削除したいテーブルのみを削除していることを確認できます。
[〜#〜] update [〜#〜]:引数-ft
はエラーを返すようになり、単に-f
プロンプトなしで強制的に削除するには:
for i in $(bq ls -n 9999 my_dataset | grep keyword | awk '{print $1}'); do bq rm -f my_dataset.$i; done;
bigquery_client = bigquery.Client() #Create a BigQuery service object
dataset_id='Name of your dataset'
table_id='Table to be deleted'
table_ref = bigquery_client.dataset(dataset_id).table(table_id)
bigquery_client.delete_table(table_ref) # API request
print('Table {}:{} deleted.'.format(dataset_id, table_id))
データセットにテーブルも含まれている場合。そして、テーブルを含むデータセットを一度に削除したいのですが、コマンドは次のとおりです。
!bq rm -f -r serene-boulder-203404:Temp1 # It will remove complete data set along with the tables in it
データセットが空の場合は、次のコマンドも使用できます。次のコマンドを使用するには、そのデータセット内のすべてのテーブルを削除したことを確認してください。そうしないと、エラーが生成されます(データセットはまだ使用中です)。
#Now remove an empty dataset using bq command from Python
!bq rm -f dataset_id
print("dataset deleted successfully !!!")
コマンドライン_for loop
_を使用して1か月のテーブルデータを削除しましたが、これはテーブルの名前に依存しています。
for %d in (01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31) DO bq rm -f -t dataset.tablename_201701%d