MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Atomares MERGE REPLACE auf Zeilenebene in BigQuery

INSERT wird von BigQuery DML

unterstützt

zum Beispiel

MERGE dataset.Inventory T
USING dataset.NewArrivals S
ON FALSE
WHEN NOT MATCHED AND product LIKE '%washer%' THEN
  INSERT (product, quantity) VALUES(product, quantity)
WHEN NOT MATCHED BY SOURCE AND product LIKE '%washer%' THEN
  DELETE   

Sie sollten also mit Ihrer ETL

gut zurechtkommen

Ok, ich verstehe - ich denke, in diesem Fall wird MERGE nicht angewendet, da INSERT NUR für die NOT MATCH-Klausel durchgeführt werden kann. Jemand könnte herausfinden, wie man MERGE austrickst, um in diesem Fall zu funktionieren, aber in der Zwischenzeit tut die folgende Lösung, was Sie erreichen wollen - ich denke schon :o)

CREATE OR REPLACE TABLE `project.dataset.user_q` (user_id INT64, q STRING) AS
SELECT * FROM `project.dataset.user_q`
WHERE NOT user_id IN (SELECT DISTINCT user_id FROM `project.dataset.user_q_incoming`)
UNION ALL
SELECT * FROM `project.dataset.user_q_incoming`
WHERE user_id IN (SELECT DISTINCT user_id FROM `project.dataset.user_q`)