MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Atomowe MERGE REPLACE na poziomie wiersza w BigQuery

INSERT jest obsługiwana przez BigQuery DML

na przykład

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   

więc powinieneś być dobry, aby iść ze swoim ETL

Ok, rozumiem - myślę, że w tym przypadku MERGE nie będzie miało zastosowania, ponieważ INSERT można wykonać TYLKO dla klauzuli NOT MATCH. Ktoś może wymyślić, jak oszukać MERGE, aby działał w tym przypadku, ale tymczasem poniższe rozwiązanie robi to, co chcesz osiągnąć - myślę, że tak :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`)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Meteor i DBRefs

  2. Mongo DB Design, osadzanie a relacje

  3. MongoDB działa, ale nie można się połączyć za pomocą powłoki

  4. Agregat Mongodb:przekonwertuj datę na inną strefę czasową

  5. Utwórz agregację danych Spring z zapytania agregującego MongoDb