Как непрерывно объединять два набора данных с одной и той же схемой без дублирования строк? - PullRequest
0 голосов
/ 06 мая 2019

На Google Cloud Platform у меня несколько платежных аккаунтов. Для каждой платежной учетной записи я создал запланированный экспорт в BigQuery, который выполняется несколько раз в день.

Однако я хотел бы получить обзор всех моих платежных аккаунтов. Я хочу создать таблицу основных данных со всеми моими учетными записями.

Все таблицы данных имеют одинаковую схему. Некоторые примеры полей:

cost:FLOAT
sku:STRING
service:STRING

Я уже успешно соединил две таблицы данных с помощью запроса JOIN:

SELECT * FROM `TABLE 1`
UNION ALL 
  SELECT * FROM `TABLE 2`

После того, как я сделал этот запрос, я нажал «Сохранить результаты» -> «Таблица BigQuery». Однако я считаю, что это всего лишь разовый экспорт.

Я бы хотел обновлять это регулярно (скажем, раз в 3 часа), не дублируя записи.

Как я могу непрерывно объединять эти таблицы данных, не допуская дублирования строк? Другими словами, как добавить новые записи в мою новую основную таблицу для новых записей, которые входят в обе таблицы?

1 Ответ

1 голос
/ 06 мая 2019

Использовать представление:

create view v_t as
    select * from `TABLE 1`
    union all
    select * from `TABLE 2`;

Это всегда будет актуально, поскольку ссылки на таблицы ссылаются при запросе к ним.

Примечание: представление можно создать с помощьюинтерфейс запроса BQ, запустив запрос и выбрав «создать представление».На самом деле вам не нужно запускать запрос, но я всегда делаю это просто для уверенности.

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