2017-04-18 13 views
1

私はbigQueryを理解し、それが私たちのニーズに合っているかどうかを確認しようとしています。 基本的な要件の1つは、ネストされた部分をメインレコードとは別に保存する必要があるように、ネストされた構造を保存することです。既存のレコードにネストされたデータを挿入する方法bigquery streaming

従業員のメインデータを保存した後、1分後に別のレコードが従業員の以前の職場に到着した場合(別のそのようなレコードが到着する可能性があります)

最初の従業員レコードを保存し、従業員の詳細を追加するために構造を更新する必要がある場合、この詳細も新しいレコードとして挿入され、既存のレコードを上書きしません。

これはどのようにbigQuerYで行うことができますか? 異なるデータソースがあるとしますか?

おかげ

答えて

2

優先にし、BigQueryの中で追加のみであることを格納するための方法をお勧めします。つまり、あなたは更新/削除を行うことが限られており、常に新しい行を即時に使用できます。

同じユーザーの行が流れているため、最後の行を選択して最新のプロファイルを取得するような方法でクエリを記述する必要があります。しかし、すべてのストリームの 'バージョン管理'があります。

つまり、常に新しい行を追加するにはStreaming Insert機能を使用します。その後、通常、ウィンドウ関数を使用してSQLクエリを実行し、最後の行を選択します。

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

+0

別のオプションは、さまざまな情報を持つ別々のテーブルを維持し、従業員IDに基づいて関連付けることです。 OPが複数の行にわたる情報の組み合わせを必要とするため、分析機能が複雑になる可能性があります。 –

関連する問題