30

Google Bigquery のテーブルからデータの一部を削除するためのサポートを追加する計画を知っている人はいますか? 現在私たちが抱えている問題は、時間の経過とともに収集したデータ ポイントの分析に使用していることです。過去 X 日間のデータに対してクエリを実行したいのですが、過去 X 日間のデータの後は、データを BigQuery に保存する必要がなくなりました。

データを削除するために現在考えられる唯一の方法は、データのテーブル全体を削除してから、それを再作成し、X 日間のデータをロードすることです。ただし、これにはデータを毎日の CSV ファイルにも保存する必要があり、最適ではありません。

この問題を処理する方法に関する推奨事項、または近い将来に行削除クエリがある場合は?

4

7 に答える 7

38

2016年の更新:BigQueryで行を削除および更新できるようになりました-Fh

https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax


ユースケースを説明していただきありがとうございます。BigQueryは、設計上、追加のみです。現在、既存のデータセットからの単一行または行のバッチの削除はサポートされていません。

現在、「ローテーション」ログシステムを実装するには、次のいずれかを行う必要があります。1.毎日新しいテーブルを作成する(必要に応じて古いテーブルを削除する)2。データをテーブルに追加し、時間/日付でクエリする

実際には、毎日新しいテーブルを作成することをお勧めします。BigQueryはクエリされたデータの量に応じて課金されるため、大規模なデータセット全体を毎回クエリするよりも、これが最も経済的です。

ちなみに、現在どのようにデータを収集していますか?

于 2012-05-15T15:48:37.980 に答える
3

また、該当する場合は、BigQuery の OMIT RECORD IF を試して、削除するアイテム以外のすべてのアイテムを返すこともできます。次に、そのクエリ結果から新しいテーブルを作成します。

(Google リファレンス ドキュメントからの例)

SELECT * FROM
  publicdata:samples.github_nested

OMIT RECORD IF
  COUNT(payload.pages.page_name) <= 80;

ソース: https://cloud.google.com/bigquery/query-reference

于 2016-07-15T13:57:27.930 に答える