私は BigQuery を初めて使用します。ご協力をお願いします。他の人に役立つように、ケースを一般的なものにしようとしています。私はそれがかなり基本的であり、何かが欠けていると確信しています...
「マスター」と「新規」の 2 つのデータセットがあります。マスターにはいくつかの列が含まれており、すでに多くの行があります。新しいデータセットをマスター リストにマージしたいのですが、この新しいデータセットのエントリのすべての列に値がある場合とない場合があります。さらに、新しいリストの値は、マスター リストに既に存在する場合と存在しない場合があります。両方に 1 つの一意/主キーがあります (例: Col1) 例:
主人:
Col1 | Col2 | Col3 | Col4
Val11 | Val12 | Val13 | Val14
ヴァル21 | ヴァル22 | ヴァル23 | Val24
Val31 | Val32 | Val33 | Val34
新しい:
Col1 | Col5 | Col6
Val11 | Val15 | ヌル
ヴァル41 | ヴァル45 | Val46
ここに私の質問があります:
1) 2 つのデータセットをマージするには、どのような bigquery を作成する必要がありますか? 次の要件があります: a) レコードで値をマージする必要があります。そこに表示されるはずです。b) 「競合」がある場合は、古い値を新しい値で上書きする必要があります
これは基本的に完全な外部結合だと思いますが、BigQuery は内部結合と左外部結合のみをサポートしています...
2) 可能であれば、さらにネストされたロジックを使用して、2b) をより洗練された方法で実行できるようにしたいと考えています。その 1 つの列の元の値を上書き/保持しないでください (そのレコードの他の値は影響を受けません)。
3) 可能であれば、さらにネストされたロジックを使用して、「val34 と val36 が両方とも TRUE の場合、val38 も TRUE に設定し、そうでない場合は val37 が X の場合、val38 をバツ"
さて、これらは 3 つの異なるが関連する質問です。いずれかで私を助けることができれば、それは本当に素晴らしいことです. ところで、データセットが大きすぎて通常の DB では処理できないため、bigquery を使用しています。これは、チーム全体で簡単に共有できる非常に便利なツールだからです。
あなたの助けと指針に感謝します!
ps ここに BigQuery のドキュメントがあります https://developers.google.com/bigquery/query-reference