2017-04-24 9 views
1

で重複を避け、ドキュメントにそれは言われています:伝統的なRDBMSとは異なりiがBigQueryので働いていたBigQuery

を、プライマリ/セカンダリまたは 行-IDキーの概念はありません。必要に応じて、 テーブルスキーマの列を識別します。

pkと同じように重複して挿入する方法は知っていますか? よろしくお願いいたします。

答えて

3

まず、事実を明確にしましょう。重複しないで挿入することはできません。

Bigqueryは、大きなデータセットに適した管理データウェアハウスです。伝統的なデータベースの代わりではありません。

1日あたり最大96個のDML(更新、削除)操作しか実行できません。これは設計によるものです。それはあなたがデータ湖のようにBQのように考えるように強制するので、低いです。

Bigqueryでは、実際にはすべてのデータを取り込みますが、すべてがデザインによってのみ追加されます。つまり、設計上、更新ごとに新しい行を保持するデータベースがあります。したがって、最新のデータを使用する場合は、最後の行を選択して使用する必要があります。

私たちは、実際には、同じ行に追加するすべての新しいアップデートの洞察力を活用しています。たとえば、エンドユーザーがサインアップフローで国を選択するのにどれくらいの時間がかかったかを検出できます。私たちは国のドロップダウンを持っているので、国にスクロールするまでに時間がかかり、指標がこれを示しました.BQで2つの先行国が選択され、後に1つが選択され、時間選択に基づいてプロセスを最適化することができます。現在、国のドロップダウンリストには、最近/頻繁に表示される国が5つありますので、ユーザーはスクロールして国を選択する必要はなくなります。

つまり、新しい行を常に追加するには、Streaming Insertの機能を使用します。次に、ウィンドウ関数to pick last rowを使用してSQLクエリを作成します。

行を更新することも、テーブルごとにBigQuery limits DML statements〜96としてレコードに追加することもできません。