Вставьте данные JSON в базу данных SQL, используя Airflow/python

Я извлек данные из API с помощью Airflow. Данные извлекаются из API и сохраняются в облачном хранилище в формате JSON.

Следующим шагом является вставка данных в базу данных SQL. У меня есть несколько вопросов:

  • Должен ли я делать это в Airflow или использовать другой ETL, например AWS Glue/Azure Data factory?
  • Как вставить данные в БД SQL? Я гуглю «как вставить данные в базу данных SQL с помощью python»? Я нашел решение, которое зацикливается на всех записях JSON и вставляет данные по одной записи за раз. Это не очень эффективно. Как-то иначе я могу это сделать?
  • Любые другие рекомендации и лучшие практики о том, как вставить данные JSON в сервер SQL?

Я пока не выбрал конкретную БД, поэтому не стесняйтесь выбирать ту, которая, по вашему мнению, подходит лучше всего.

Спасибо!

Какое облачное хранилище вы используете?

Aswin 21.11.2022 11:16
Как настроить Tailwind CSS с React.js и Next.js?
Как настроить Tailwind CSS с React.js и Next.js?
Tailwind CSS - единственный фреймворк, который, как я убедился, масштабируется в больших командах. Он легко настраивается, адаптируется к любому...
LeetCode запись решения 2536. Увеличение подматриц на единицу
LeetCode запись решения 2536. Увеличение подматриц на единицу
Увеличение подматриц на единицу - LeetCode
Переключение светлых/темных тем
Переключение светлых/темных тем
В Microsoft Training - Guided Project - Build a simple website with web pages, CSS files and JavaScript files, мы объясняем, как CSS можно...
Отношения "многие ко многим" в Laravel с методами присоединения и отсоединения
Отношения "многие ко многим" в Laravel с методами присоединения и отсоединения
Отношения "многие ко многим" в Laravel могут быть немного сложными, но с помощью Eloquent ORM и его моделей мы можем сделать это с легкостью. В этой...
В PHP
В PHP
В большой кодовой базе с множеством различных компонентов классы, функции и константы могут иметь одинаковые имена. Это может привести к путанице и...
Карта дорог Беладжар PHP Laravel
Карта дорог Беладжар PHP Laravel
Laravel - это PHP-фреймворк, разработанный для облегчения разработки веб-приложений. Laravel предоставляет различные функции, упрощающие разработку...
0
1
109
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете использовать Airflow просто как планировщик для запуска некоторых скриптов python/bash в определенное время с некоторыми правилами зависимостей, но вы также можете воспользоваться преимуществами операторов и перехватчиков, предоставляемых сообществом Airflow.

Что касается части ETL, Airflow не является инструментом ETL. Если вам нужны конвейеры ETL, вы можете запускать их и управлять ими с помощью Airlfow, но для их создания вам потребуется сервис/инструмент ETL (Spark, Athena, Glue, ...).

Чтобы вставить данные в БД, вы можете создать свой собственный скрипт python/bash и запустить его или использовать существующие операторы. У вас есть несколько общих операторов и хуков для postgress, MySQL и различных баз данных (MySQL , postgres , oracle , mssql ), а также есть некоторые другие оптимизированные операторы и хуки для каждого облачного сервиса. ( AWS RDS , GCP Cloud SQL , GCP Spanner...), если вы хотите использовать один из управляемых/бессерверных сервисов, я рекомендую использовать его операторов, а если вы хотите развернуть свой service на кластере VM или K8S, вам нужно использовать общие.

Airflow поддерживает почти все популярные облачные сервисы, поэтому попробуйте выбрать поставщика облачных услуг, исходя из стоимости, производительности, знаний команды и других потребностей вашего проекта, и вы обязательно найдете хороший способ достичь своей цели с помощью Airlfow.

  • Вы можете использовать Фабрику данных Azure или Azure Synapse Analytics для перемещения данных из файла Json на сервер SQL. На данный момент Фабрика данных Azure поддерживает более 90 соединителей. (Дополнительные сведения о соединителях, поддерживаемых фабрикой данных, см. в документе MS Обзор соединителя — Фабрика данных Azure и Azure Synapse).

Изображение:1 Некоторые разъемы, поддерживаемые ADF.

  • Обратитесь к документам MS по предварительным требованиям и Требуемым разрешениям для подключения облачного хранилища Google к ADF.

  • Используйте исходный коннектор в качестве хранилища Google Cloud при копировании. Ссылка: Копирование данных из облачного хранилища Google — Фабрика данных Azure и Azure Synapse | Обучение Майкрософт

  • Возьмите разъем SQL DB для приемника.

  • ADF поддерживает параметр автоматического создания таблицы, если в базе данных SQL Azure не создана таблица. Кроме того, вы можете сопоставить столбцы источника и приемника в настройках сопоставления.

Другие вопросы по теме