Мы строго используем BigQuery и имеем две таблицы, которые, по сути, обновлялись параллельно разными процессами. У меня есть проблема: у нас нет уникального идентификатора для таблиц, и цель состоит в том, чтобы объединить две таблицы с нулевым дублированием, если это возможно. Уникальный идентификатор - это два объединенных столбца.
Я пробовал различные запросы на основе MySQL, но, похоже, ни один из них не работает в BigQuery. Итак, я отправляю сюда некоторую помощь. :)
Шаг 1. Скопируйте «чистую» таблицу в новую объединенную таблицу.
Шаг 2. Запросите "грязную" (старую) таблицу и вставьте все недостающие записи.
Попытка запроса 1:
SELECT
COUNT(c.*)
FROM
[flash-student-96619:device_data.device_datav3_20160530] AS old
WHERE NOT EXISTS (
SELECT
1
FROM
[flash-student-96619:device_data_v7_merged.20160530] AS new
WHERE
new.dsn = old.dsn
AND new.timestamp = old.timestamp
)
Ошибка: ошибка: 6.1–10.65. Одновременно может выполняться только один запрос.
Попытка запроса 2:
SELECT
*
FROM
[flash-student-96619:device_data.device_datav3_20160530]
WHERE
(dsn, timestamp) NOT IN (
SELECT
dsn,
timestamp
FROM
[flash-student-96619:device_data_v7_merged.20160530]
)
Ошибка: обнаружено "", "", "" в строке 6, столбце 7. Ожидалось: ")" ...
Честно говоря, если бы я мог сделать это одним запросом, я был бы счастлив. Мне нужно получить данные из двух таблиц и создать новую с уникальными данными.
Любая помощь?