powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Apache Airflow для ETL
25 сообщений из 53, страница 2 из 3
Apache Airflow для ETL
    #40106302
Бумбараш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик
Полковник.,

А почему не apache nifi?

когда работал 2-3 года с найфаем он был не очень. Простые действия делались какими-то непонятными приседаниями. Смысла его использовать по сравнению с Airflow, который очень простой, я не увидел. По крайней мере для батчевых загрузок точно.
Может быть в задачах стриминга он выглядет более лучше, но их было мало.
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40111637
Александр Бердышев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вы реализуете процесс версионирования/патчинга ETL-процедур (dags)?
GitLab -> CI/CD.
Пушим даг в мастер - он выкатывается в airflow.
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40112119
montoya.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Полковник.
Подниму тему вопросом. Читаю доки, написано, что лучше трансформацию данеых в dag-е не делать, что бы не жрал память, а вызывать заранее созданный на python файл в котором сделать необходимую обработку. Это так? Есть какие то ещё рекомендации?
Ещё вопрос если нужно передавать параметры(переменные) между подпрограммами обработки данных, то как это лучше сделать, через переменные airflow или ещё как то?


сам недавно начал новый стак осваивать.
все Tрансформации делаю на уровнях баз
если это MS SQL то соответтсвенно процедурки и т.д.
airflow + python использую сугубо для выстраивания последовательностей запуска.

если datalake типа snowflake сейчас читаю мат часть по DBT(Data Build Tool)

глобальные переменные храню в airflow variables - красиво и секьюрно.
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40112120
montoya.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Александр Бердышев
Как вы реализуете процесс версионирования/патчинга ETL-процедур (dags)?
GitLab -> CI/CD.
Пушим даг в мастер - он выкатывается в airflow.

+1
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40112122
Полковник.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
montoya.,

Подскажи как осуществляешь передачу данных база-база, тоже sql оператором? Хранишь ли данные в промежутке, типа одним таском достал, положил во временное хранение, вторым таском отправил в другую базу из временного хранения, если да, то в каком виде? Или все в одном операторе - достал в курсор, из него отправил в другую базу?
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40112198
montoya.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Полковник.
montoya.,

Подскажи как осуществляешь передачу данных база-база, тоже sql оператором? Хранишь ли данные в промежутке, типа одним таском достал, положил во временное хранение, вторым таском отправил в другую базу из временного хранения, если да, то в каком виде? Или все в одном операторе - достал в курсор, из него отправил в другую базу?


для обмена внутрикорпаративной сети мужду базами пока airflow не гонял, тут по классике на SSIS всё делаю.
но думаю, что я бы врядле строил архитектуру с временным хранением, напрямую бы как-то пулял.

для внешних интеграций сейчас настраиваю обмен между внешним источником данных и snowflake
в данном случае использую промежуточно Azure Blob
т.е. забираю с внешнего источника и без стейджинга пихаю в Blob в том первозданном виде как отдаёт источник.
для приёмника выбрал именно blob так как шо взял то и впихнул, удобно.
для участка snowlake-azure blob - сейчас читаю про DBT, тулза для Трансформации внутри хранилища. именно эта штука обеспечивает гибкую настройку трансформации именно ВНУТРИ хранилища а не в пути где-то.
на финише будет powerBI с источником ввиде snowflake.

опыта пока не много, сам учусь, но тема мне нравиться)
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40112200
montoya.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
для обмена между MS SQL и внешними получателями
тут всё одим оператором
запускаются процедуры на MS SQL
готовят данные
и потом курсором их пихаю или в api или ftp
кому как.
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40112295
2wheels
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
montoya., посмотри в сторону SnowPipe для загрузки из Azure Blob Storage в Snowflake. В сочетании с Table Stream (фишка Snowflake) работает отлично. Если все-таки не подходит, попробуй External Tables, они дадут существенный прирост в производительности для Parquet-файлов.
по dbt рекомендую вот этот курс: https://www.udemy.com/course/learn-dbt-from-scratch/
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40112299
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Полковник.
Подскажи как осуществляешь передачу данных база-база, тоже sql оператором? Хранишь ли данные в промежутке, типа одним таском достал, положил во временное хранение, вторым таском отправил в другую базу из временного хранения, если да, то в каком виде? Или все в одном операторе - достал в курсор, из него отправил в другую базу?

Давайте скажем честно - AirFlow это такой cron на стероидах, или open source Control-M. Это не среда производства вычислений, если вам этого хочется - идите к Informatica или NiFi. Еще - вспомнил что каждый такс может запускаться на своем вычислителе, не связанном с предыдущим таском.
Посему - в таске делаете с данными все, в том числе и сохранение в целевое место или буфер. Чтобы потом достать на следующем таске. Если это обмен db-db, то нужен sql оператор который это выполняет. Или через linked server, или через fdw (для postgre), или через pxf (для GreenPlum).
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40112315
Полковник.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ferdipux,

Да с этим то в е понятно, у нас запрещено линковать сервера, тем более разные. Поэтому с одной стороны пишут, что хранить данные и обрабатывпть в тасках нельзя, но если надо то можно, примеров таких навалом. Кстати, что такое в этом случае курсор? Прочитал из oracle в курсор, бросил из курсора в postgres, где курсор хранит данные?
ETL использовать нельзя, я писал уже, ищем альтернативу пентахе для себя, мы роемся в данных, ETL есть, но что бы на нем что то делать нужно кучу документов написать и пройти согласований, тогда м.б. через месяц ты получишь данные в своей табличке, а когда на них посмотришь, то поймёшь, что это не та табличка, нужна другая
Трудно все, вообщем.
Я по курсам достаточно много получил информации и много чего уже делаю, но беспрактик тоже нужно у кого то подсмотреть.
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40112341
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полковник.

Да с этим то в е понятно, у нас запрещено линковать сервера, тем более разные. Поэтому с одной стороны пишут, что хранить данные и обрабатывпть в тасках нельзя, но если надо то можно, примеров таких навалом. Кстати, что такое в этом случае курсор? Прочитал из oracle в курсор, бросил из курсора в postgres, где курсор хранит данные?

курсор в оракле то же самое что и в мсскл, в нем нет данных. это просто описания квери и указатель до куда потребитель вытянул данные.
если не полноценный ETL, то перекинуть данные думаю сейчас лишь 2 способа из простых:
1. питончиком, как я понимаю он вытянет в данные оперативу (датафрейм) и если не вывалится out of memory, сможет этот пандас датафрейм записать в постгрес. вероятно силами одного единственного коннекта.
2. спарком. я такую задачку на коленках решал java+spring+spark и запускал на обычной линуксовой машине. у спарка больше шансов не вывалится с OOM и он сможет в параллель выкачивать/закачивать. схема та же, читайет датафрейм, его же записывает по jdbc. я спарком закачивал стейджинг таблицы, если все хорошо выполнял MERGE statement (стейджинг в target табличку) уже средствами субд
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40112343
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Полковник.
Поэтому с одной стороны пишут, что хранить данные и обрабатывпть в тасках нельзя, но если надо то можно, примеров таких навалом. Кстати, что такое в этом случае курсор? Прочитал из oracle в курсор, бросил из курсора в postgres, где курсор хранит данные?

Курсор - это надстройка над Psycopg cursor .
Вообще, стукнитесь в e-mail лички, похоже что у нас общие задачи и проблемы :). Будет занятно пообщаться.
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40112347
Полковник.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1,

Буду spark смотреть.
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40112350
Полковник.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ferdipux,

Ну да, я про этот курсор спрашивал.
У меня задачка факультативная, я не могу ей много времени посвящать, поэтому лучше тут обсуждать, чем в личке.
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40112412
montoya.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2wheels
montoya., посмотри в сторону SnowPipe для загрузки из Azure Blob Storage в Snowflake. В сочетании с Table Stream (фишка Snowflake) работает отлично. Если все-таки не подходит, попробуй External Tables, они дадут существенный прирост в производительности для Parquet-файлов.
по dbt рекомендую вот этот курс: https://www.udemy.com/course/learn-dbt-from-scratch/


Спасибо, обязательно почитаю! Меня тема попёрла, аж уснуть не могу))))

Snowpipe, если не ошибаюсь, это приложение как sql console
Я с помощью него большие csv гонял в snowflake с локального сервера.
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40112501
2wheels
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
montoya.

Snowpipe, если не ошибаюсь, это приложение как sql console


нет, Snowpipe - это serverless служба для доставки данных. Запускается примерно раз в минуту, проверяет еслть ли новые файлы,и, если есть, грузит данные в таблицы. Там много интересных штук, например Snowpipe хранит метаданные файлов, загруженных за последние 64 дня и по умолчанию пропускает их. Но можно заставить грузить все (COPY INTO ... FORCE = TRUE).
Я делал проект, когда приложение сохраняло JSON в Azure Blob Storage, Snowpipe выгружал данные в Snowflake, а поверх уже были отчеты Power BI.

Вобщем, будут вопросы по Snowflake - willkommen ))
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40115195
montoya.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2wheels
montoya.

Snowpipe, если не ошибаюсь, это приложение как sql console


нет, Snowpipe - это serverless служба для доставки данных. Запускается примерно раз в минуту, проверяет еслть ли новые файлы,и, если есть, грузит данные в таблицы. Там много интересных штук, например Snowpipe хранит метаданные файлов, загруженных за последние 64 дня и по умолчанию пропускает их. Но можно заставить грузить все (COPY INTO ... FORCE = TRUE).
Я делал проект, когда приложение сохраняло JSON в Azure Blob Storage, Snowpipe выгружал данные в Snowflake, а поверх уже были отчеты Power BI.

Вобщем, будут вопросы по Snowflake - willkommen ))


спасибо!

курс udemy - прошёл.
ещё раз спасибо, очень понравился курс. особенно порадовала часть с best practice.
если есть ещё что по data engeniring - please send)

и есть вопрос по snowflake + dbt

суть: сейчас я стартую с маленького проекта в snowflake
но в перспективе собираемся полностью всё(а это много) хранилище двинуть туда.

суть вопроса Slow Changing Dimension в Snowflake
сейчас в MS SQL я все dimensions таблицы построил на temporal tables(system-versioned)(SCD 4го типа(по-моему) основная таблица + историческая )
в курсе был урок по snapshot который очень напомнил temporal технологию в мелкософте.

вопрос как best сделать SCD in Snowflake?

заранее спасибо.
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40115853
2wheels
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
montoya., с SCD4 я в практике не сталкивался к сожалению. Сразу скажу, Time Travel для этого не подходит - период хранения данных максимум 90 дней (на самом деле 97, но это + FileSafe). А так да, Snapshot в dbt выглядит подходящим.
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40118069
montoya.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2wheels
montoya., с SCD4 я в практике не сталкивался к сожалению. Сразу скажу, Time Travel для этого не подходит - период хранения данных максимум 90 дней (на самом деле 97, но это + FileSafe). А так да, Snapshot в dbt выглядит подходящим.


отдельную ветку для snowflake создам. вопросики полезли...
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40133319
redsunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А кто нить юзал apache camel? Если у кого есть опыт в продакшене расскажите пожалуйста.

Есть еще по airflow вопрос, можно ли там прикрутить обращение к unmanaged коду dll для вызова функций? У нас одна система так работает получение и отправка данных к ней через вызов функций из dll.
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40133336
redsunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Точнее так можно ли подключить в вызове питон кода из dag, вызвать unmanage code из dll
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40133411
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redsunrise,

используя PythonOperator вы можете запустить любой пайтон код
внутри которого подключить вашу dll и работать с ней
это больше вопрос не эирфлоу, а пайтона
только учитывайте, что воркер эирфлоу может запуститься на любом узле и поэтому ваша dll должна быть доступна на любом узле
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40133680
redsunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дедушка,
Спасибо за ответ, то что dll можно вызвать из python, это как раз вопросов не вызывает.
Как вы верно подметили интересовал вопрос видимости dll. Спасибо.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Apache Airflow для ETL
    #40138432
digitalberd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отличный инструмент, в 2023-2024 году практически стандарт отрасли.
...
Рейтинг: 0 / 0
Apache Airflow для ETL
    #40138674
Яков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
digitalberd [игнорируется] 

Возможно, но для моей задачи не подошел. Я так и не нашел оптимального решения.

Суть задачи
Написать Dags, которые на регулярной основе будут перекачивать данные из MS SQL (сервер 1c / винда) в PostgreSql (DWH / убунта)

По логам вижу, что скорость заливки - 1000 строк в секунду. А это очень медленно.
Думаю, что коннектор, который создается в AIRFLOW, использует ODBC - драйвер.

Ни платного, ни бесплатного OLE DB драйвера для линукса под MS SQL не нашел.
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 2 из 3
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Apache Airflow для ETL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]