2017-08-22 7 views
2

ALTER TABLE TABLE_NAME DROP COLUMN_NAMEのようなBigQueryテーブルからカラムを削除するオプションを探していますが、私がオンラインで見つけたのは、古いテーブルを削除して新しいテーブルを作成することでした。なぜBigQueryに列を削除するオプションがないのですか?

BigQueryでこのオプションを使用していない論理的な理由はありますか?

答えて

4

列を削除すると、テーブルを構成するすべてのCapacitor filesからデータが削除されることになりますが、これは高価な操作です。 BigQueryが単に列に関連するメタデータを削除しただけであれば、実際には照会できないファントム列がストレージに課金されますが、これは理想的ではありません。

逆に、列を追加すると、BigQueryは過去のファイルの欠落している列をすべてNULLという値を持つものとして扱います。変更する必要はありません。あなたが保持しない列を除く、元のテーブルから

  • 選択:

    は異なるオプションのカップルが列を削除することがあります。次に、結果の表をコピーし、元の表を上書きします。

  • 必要な列を含むテーブルの論理ビューを作成します。テーブルの代わりに論理ビューを照会すると、キャッシングやフィルタリングなど、基礎となるテーブルに触れることなく他の「変更」を行うことができます。欠点は、これ以上クエリを実行する必要がない古い列に対して課金されることです。
関連する問題