MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MERGE REPLACE atomico a livello di riga in BigQuery

INSERT è supportato da BigQuery DML

per esempio

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   

quindi, dovresti essere a posto con il tuo ETL

Ok, capisco - penso che in questo caso MERGE non si applicherà poiché INSERT può essere eseguito SOLO per la clausola NOT MATCH. Qualcuno potrebbe capire come far funzionare MERGE in questo caso, ma nel frattempo la soluzione di seguito fa ciò che vuoi ottenere - penso di sì :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`)