Каков хороший подход для пассивного приема пакетных данных (клиент pu sh) с помощью Google Cloud? - PullRequest
2 голосов
/ 06 февраля 2020

Я внедряю свой первый конвейер для «автоматического» ввода данных в моей компании. Наш клиент не хочет, чтобы мы делали какие-либо вызовы в своей базе данных (даже создавали реплику и т. Д. c). Лучшее решение, которое я до сих пор считал, - это конечная точка (пусть они отправляют sh данные в хранилище), поэтому мы можем использовать их и выполнять весь процесс обработки данных. Мой облачный провайдер - Google Cloud, и мой клиент использует MySQL Server.

Я читал много тем в Интернете и получил следующие ссылки:

Google Cloud Data Lifecycle - Для пакетной обработки немного говорится об облачном хранилище, Cloud Transfer Appliance, Transfer Appliance

Подписанные URL-адреса - Эти URL-адреса являются ограниченными по времени ресурсами для доступа, например, к Google Cloud. Хранение и запись данных в него.

Мое простое решение - подписанные URL-адреса пользователей -> Облачное хранилище -> Поток данных -> BigQuery. Это хороший подход?

Подводя итог, я ищу рекомендации о передовых методах и возможных способах позволить пользователю вставлять данные в GCP без раскрытия его данных или моей инфраструктуры.

Ограничения :

  • Клиент будет отправлять данные периодически (один раз в день при приеме внутрь)
  • Данные полуструктурированы (я создам и внутренний конвейер для выполнения преобразований)
  • После препроцесс, данные должны быть отправлены в BigQuery

1 Ответ

2 голосов
/ 07 февраля 2020

Подписанные URL-адреса и поток данных здесь могут не понадобиться. Подписанные URL-адреса обычно используются, когда вы не хотите, чтобы пользователи имели учетную запись Google для доступа к облачному хранилищу, но также учитывают необходимость при возобновляемых загрузках . Если вы знаете, что при отправке данных у вашего клиента будет учетная запись Google, ее можно пропустить (особенно если тайм-ауты для защиты закрытых ключей не нужны, поскольку код выполняется в серверной части, а не в мобильном приложении клиента, например). Вы можете просто создать базовое c веб-приложение с App Engine, которое будет использоваться клиентом для выполнения ежедневной операции pu sh, которая затем будет загружать его в хранилище Cloud Storage, выполняя возобновляемую загрузку, App Engine также должен убедиться, что файлы находятся в правильном формате и соответствуют определенным ограничениям c, которые вы определите перед его загрузкой.

Что касается потока данных, так как его лучше всего использовать для потоковой передачи, а в вашем случае это Пассивный пакетный прием, оплата услуги, которая постоянно работает, когда необходимо, чтобы преобразование происходило только один раз в день, может оказаться не лучшим подходом. Более эффективно было бы использовать Облачные функции для предварительной обработки и применения преобразований, которые были бы инициированы на уведомление об изменении объекта в корзине Cloud Storage. Затем функция отправит sh данные в BigQuery с использованием своего API.

Полный поток будет таким: Веб-приложение App Engine очищает дамп -> API хранилища -> Уведомление об изменении объекта корзины -> Функция облачного триггера (CF) -> CF загружает объект -> CF выполняет преобразование -> CF сохраняет строки в BigQuery

GAE -> GCS -> CF -> BQ

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