2017-03-29 6 views
4

GCPコンソールで作成したテーブルからレコードを削除しようとしたときにGCP BigQuery Node.jsテーブル挿入機能で更新しようとすると、次のエラーが表示されます。BigQueryでストリーミングバッファを使用してテーブルを更新または削除しますか?

UPDATE or DELETE DML statements are not supported over table stackdriver-360-150317:my_dataset.users with streaming buffer

テーブルはストリーミング機能なしで作成されました。そして、私が書いている文書Tables that have been written to recently via BigQuery Streaming (tabledata.insertall) cannot be modified using UPDATE or DELETE statementsから。

一度レコードがこの関数でテーブルに挿入されると、レコードを削除する方法はありませんか?全く?そうであれば、テーブルを削除してゼロから再作成する必要があるのでしょうか?そうでない場合。この問題を回避する回避策をお勧めしますか?

ありがとうございます!

答えて

7

テーブルは、ストリーミングバッファを持っている場合、パーティションテーブルへのストリーミング場合、ストリーミングバッファのデータが_PARTITIONTIME擬似列のNULL値を有し、そうでもして、streamingBufferまたは名前付きセクションのtables.get応答をチェックし、チェックしますシンプルなWHEREクエリを確認できます。

Streamed dataは、テーブルへの最初のストリーミング挿入から数秒以内にリアルタイム分析に使用できますが、コピー/エクスポートなどの操作に使用できるようになるまで最大90分かかることがあります。すべてのバッファがクラスタ上に永続化されるように、おそらく最大90分待たなければなりません。クエリを使用して、ストリーミングバッファが空であるかどうかを確認することができます。

ロードジョブを使用してテーブルを作成する場合、ストリーミングバッファはありませんが、おそらく値をストリームします。

+0

答えをありがとう。それは役に立ちました。 streamingBufferがtables.get APIの応答から削除された翌日のレコードを削除することができました。 https://cloud.google.com/bigquery/docs/reference/rest/v2/tables/get。私はstreamingBufferがちょうど一時的な状態であることに気付きました。レコードを更新または削除するまで表示されなくなるまで待つだけです。あなたが上で説明したように。 – Diego

+0

質問のためのディエゴありがとう、私は同じ混乱を抱えていて、答えのための@ Pentium10に感謝します。 GCP Web UIからストリーミングバッファをチェックする方法はありますか?つまり、Node.js APIではなくtable.get? – Peza

+0

ストリーミングバッファに要素があるときは、はっきりとわかりました。あなたはテーブルのメタデータを見るときに 'リフレッシュ'を押すだけです。みんなありがとう! – Peza

関連する問題