Мы используем BigQuery религиозно и имеем две таблицы, которые по существу обновлялись параллельно с помощью разных процессов. Проблема, которую я имею, у нас нет уникального идентификатора для таблиц, и цель состоит в том, чтобы объединить две таблицы с нулевым дублированием, если это возможно. Уникальный идентификатор состоит из двух столбцов.BigQuery DeDuplication на двух столбцах как уникальный ключ
Я пробовал различные 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. Ожидал: ")" ...
Честно говоря, если бы я мог сделать это в одном запросе, я был бы счастлив. Мне нужно извлечь из двух таблиц и создать новый с уникальными данными.
Любая помощь?
Что около двух таблиц, хотя. Я не хочу обманывать один стол, а другой стол. Наверное, я могу писать в таблицу, а затем переписывать в таблицу ... – Dovy
это было направлено: o) - в любом случае добавлена вторая таблица - идея состоит в том, чтобы дедуплировать комбинированные данные (из обеих таблиц) и записывать их в окончательный чистый стол. надеюсь, это то, что вы хотели достичь. –
Ты в огне мой друг. – Dovy