Различные способы обновления таблицы BigQuery - PullRequest
0 голосов
/ 01 сентября 2018

В gcp мне нужно обновлять таблицу больших запросов всякий раз, когда файл (несколько форматов, таких как json, xml) загружается в корзину. У меня есть два варианта, но я не уверен, каковы плюсы / минусы каждого из них. Может кто-нибудь подсказать, какое решение лучше и почему?

Подход 1:

Файл загружен в корзину -> Функция запуска облака (которая обновляет таблицу bigquery) -> Bigquery

Подход 2:

Файл загружен в корзину -> Функция запуска облака (которая запускает задание потока данных) -> Поток данных -> Bigquery.

В производственной среде какой подход лучше подходит и почему? Если есть альтернативные подходы, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 01 сентября 2018

Это довольно широкий вопрос, поэтому я не удивлюсь, если за него проголосуют за закрытие. Тем не менее, я всегда буду идти № 2 (GCS -> CF -> Dataflow -> BigQuery).

Помните, что с Cloud Funtions существует максимальное время выполнения. Если вы запускаете задание загрузки из облачной функции, вам нужно будет включить в него логику для опроса и проверки состояния (задания загрузки в BigQuery асинхронны). Если это не удастся, вам нужно будет справиться с этим. Но что, если он все еще работает, и вы достигли максимального выполнения своей облачной функции?

По крайней мере, используя Dataflow, у вас нет проблемы максимального времени выполнения, и вы можете просто перезапустить ваш конвейер, если он потерпит неудачу по какой-то временной причине, например проблемы с сетью.

...