Влияние оператора слияния на запрос пользователей - PullRequest
0 голосов
/ 05 июня 2019

Я использую приведенный ниже вид оператора Merge для объединения текущей таблицы и новой таблицы данных. Мне было интересно, что произойдет с запросом, который пользователь запускает при выполнении оператора Merge. Это покажет противоречивые результаты?

MERGE dataset.Inventory T
USING dataset.NewArrivals S
ON T.ProductID = S.ProductID
WHEN MATCHED THEN
UPDATE SET quantity = T.quantity + S.quantity
WHEN NOT MATCHED THEN
  INSERT (ProductID, quantity) VALUES (ProductID, quantity)

Ответы [ 2 ]

0 голосов
/ 05 июня 2019

Из документов:

Оператор MERGE - это оператор DML, который может объединять операции INSERT, UPDATE и DELETE в один оператор и выполнять операции атомарно.

Где " выполняет операции атомарно " означает, что пользователи будут получать согласованные результаты.

0 голосов
/ 05 июня 2019

BigQuery предоставляет свойство, известное как изоляция моментальных снимков, поэтому вы никогда не увидите частичных результатов. Чтобы узнать, как это работает, посмотрите этот доклад из GCP Next .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...