Дедупликация при загрузке в BigQuery

#python #google-bigquery

#python #google-bigquery

Вопрос:

У меня есть новые записи для вставки в BQ. Как мне добавить только те, которых там нет? Дедупликация при загрузке.

например, у меня есть в BQ

 id | text
-----
1 one
2 two
3 three
 

Я хочу добавить

 3 three 
4 four
 

и я хочу, чтобы в итоге

 1 one
2 two
3 three
4 four
 

(таким образом, для дедупликации 3 three записи).

Я хочу использовать скрипт на Python.

Ответ №1:

Вы всегда должны использовать операции на основе наборов. Просто используйте оператор MERGE . Сначала поместите их все в набор данных (я называю его источником) и объедините их в целевой набор данных (называемый target).

 MERGE dataset.target T
USING dataset.source S
ON T.id = S.id
WHEN NOT MATCHED
INSERT(id, text)
  VALUES(id, text)
 

Конечно, вы можете делать более мощные вещи, вы поняли идею. Отказ от ответственности: это не проверено.