MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MERGE REPLACE atômico em nível de linha no BigQuery


INSERT é compatível com BigQuery DML

por exemplo
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   

então, você deve ser bom para ir com seu ETL

Ok, entendo - acho que neste caso MERGE não será aplicado, pois INSERT pode ser feito SOMENTE para a cláusula NOT MATCH. Alguém pode descobrir como enganar o MERGE para funcionar neste caso, mas enquanto isso a solução abaixo faz o que você deseja alcançar - acho que sim :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`)