Потоковая передача данных и обновление вложенной записи BigQuery - PullRequest
0 голосов
/ 05 августа 2020

Мы настраиваем наш проект BigQuery и обсуждаем использование вложенных и повторяющихся полей . Мы не уверены в лучших методах обновления значений для повторяющейся записи.

Представьте, что у нас есть таблица супергероев, которая выглядит как

super_hero_id   | powers             | Date
----------------| -------------------|-------------
5               | Fly                | 2020-08-01
                | Change Skin Color  |
----------------|--------------------|-------------
6               | Shoot Lasers       | 2020 -08-01
                | Attract Metal      |
                | Become Transparent |
----------------|--------------------|-------------

Теперь предположим, что «супергерой 5» обнаруживает свой исходное происхождение и понимает, что он также обладает способностью «формировать воду», как лучше всего добавить эту информацию в аналитическую таблицу?

Мы видим два варианта:

  1. Обновить вложенную запись в таблице BigQuery пример . Однако BigQuery имеет ограничения на операции с таблицами в день, насколько мы понимаем, и сделать это на миллионах супергероев было бы невозможно.
  2. Используйте потоковые вставки для вставки новой строки в стол. Мы хотим изучить этот вариант, но, как мы его понимаем, это только вставляет данные в таблицу, поэтому наша таблица будет выглядеть как
super_hero_id   | powers             | Date
----------------| -------------------|-------------
5               | Fly                | 2020-08-01
                | Change Skin Color  |
----------------|--------------------|--------------
6               | Shoot Lasers       | 2020 -08-01
                | Attract Metal      |
                | Become Transparent |
----------------|--------------------|-------------
5               | Fly                | 2020-08-01
                | Change Skin Color  |
                | Shape Water        |
----------------|--------------------|--------------

Из-за нашей Вселенной l aws, у нас не может быть столбца детерминированной c даты для определения самой последней строки, и нам придется использовать функцию Номер строки для определения нашей последней строки.

Итак, два больших вопроса у нас есть

  1. Можно ли выполнить обновление с помощью Streaming Inserts? (мы так не думаем)
  2. Для того, чтобы последняя строка была как всегда полной, делаем мы.
    • Всегда читать предыдущую строку из Big Query, чтобы затем построить полную новую строку (невозможно)? ИЛИ
    • Всегда заполнять полные данные в нашей последней строке из другого источника?

Какие рекомендуемые подходы.

Спасибо за чтение. Любой ввод приветствуется

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