У меня есть одна таблица информации о пользователях, где информация может поступать из нескольких источников. Мы можем получить информацию о пользователе из внутреннего использования системы, сторонних партнеров или моделей машинного обучения. Информация одного и того же типа может поступать из нескольких источников, и в этом случае я хотел бы добавить новую строку в таблицу, изменив значение столбца на самые последние данные.
Пример:
Столбцы таблицы: (идентификатор, имя, телефон, почтовый индекс, электронная почта, отметка времени)
Source A -> id = 1, name = John, telephone: xxx, zipcode: 60014
Source B -> id = 1, email: john@user.com, telephone: yyy
Источник A вставляет данные в 13:00, а источник B - в 1: 01:00.
Когда источник B заполняет таблицу, я хотел бы восстановить уже вставленный источник информации A, заполнить столбец электронной почты, обновить телефонный столбец, а затем добавить новую строку. Таким образом, результат будет:
id, name, telephone, zipcode, email, timestamp
1, John, yyy, 60014, john@user.com, 1:01
1, John, xxx, 60014, NULL, 1:00
В моих тестах BigQuery показывает очень высокую задержку для небольших запросов, поэтому очень дорого проверять таблицу при каждой вставке.
В лучшем случае я выполню это, учитывая, что источник A и источник B являются потоковыми потоками, поступающими из потока данных, но это не является обязательным требованием.
Возможно ли реализовать это с помощью Google BigQuery?