ETL для BigQuery с использованием воздушного потока без разрешения облачного хранилища / облачного SQL - PullRequest
0 голосов
/ 01 ноября 2019

Я сделал ETL из MySql в bigQuery с python, но, поскольку у меня нет разрешения на подключение облачного хранилища Google / облачного SQL, я должен вывести данные и разделы на последнюю дату, так просто, но это того не стоилопотому что это занимает много времени, можно использовать ETL, используя поток воздуха из MySql / mongo в bigQuery без облачного хранилища google / cloud sql?

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Действительно возможно синхронизировать базы данных MySQL с BigQuery с Airflow. Конечно, вам необходимо убедиться, что вы правильно аутентифицировали соединения с рабочим процессом Airflow DAG. Также убедитесь, что вы определили, какие столбцы из MySQL вы хотите получить и загрузить в BigQuery. Вы также хотите выбрать способ загрузки ваших данных. Вы хотите, чтобы он загружался постепенно или полностью? Не забудьте также сформулировать метод устранения дублирующих копий данных (de-duplicate).

Более подробную информацию по этой теме можно найти по этой ссылке: Как синхронизировать Mysql в Bigquery в реальном времени?

Вот отличный ресурс для настройки вашей учетной записи bigquery и аутентификаций: https://www.youtube.com/watch?v=fAwWSxJpFQ8

Вы также можете взглянуть на stichdata.com (https://www.stitchdata.com/integrations/mysql/google-bigquery/) TheИнтеграция Stitch MySQL позволит ETL преобразовать MySQL в Google BigQurey за считанные минуты и поддерживать его в актуальном состоянии без необходимости постоянно писать и поддерживать сценарии ETL. В этом случае не понадобится Google Cloud Storage или Cloud SQL.

ДляБолее подробную информацию об агрегировании данных для BigQuery с использованием Apache Airflow вы можете найти по ссылке ниже: https://cloud.google.com/blog/products/gcp/how-to-aggregate-data-for-bigquery-using-apache-airflow

0 голосов
/ 02 ноября 2019

С потоком воздуха или нет, самый простой и эффективный способ:

  • Извлечение данных из источника данных
  • Загрузка данных в файл
  • Перетащите файл в облачное хранилище
  • Запустите задание загрузки BigQuery для этих файлов (загрузка бесплатна)

Если вы хотите избежать создания файла и поместить его в облакоХранение, возможен другой способ, гораздо более сложный: поток данных в BigQuery.

Описанный так, он не выглядит очень сложным, но:

  • Вы должны поддерживать связь с источником и местом назначения в течение всего процесса
  • Вы должны обрабатывать ошибки (чтение и запись) и иметь возможность перезапуска напоследняя точка отказа
  • Вам необходимо выполнить массовую запись потока в BigQuery для оптимизации производительности. Размер кусков нужно выбирать с умом.
  • Бонус воздушного потока: для этого вам нужно определить и написать свой собственный оператор.

Кстати, я настоятельно рекомендуюследуйте первому решению.

Дополнительные советы : теперь BigQuery может напрямую запрашивать в базе данных Cloud SQL . Если вам все еще нужна база данных MySQL (для хранения в ней какой-либо ссылки), вы можете перенести ее в CloudSQL и выполнить соединение между хранилищем данных Bigquery и вашей ссылкой CloudSQL.

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