Презентация кастомного ETL сервиса на Airflow для оркестрации миграции данных между ElasticSearch, Postrgresql, SQLite
проект создан для демонстрации Airflow, со следующими фичами
- проект упакован в Docker Compose и запущен на VPS
- миграция из SQLite в Postgresql для внутренних служб корпорации
- миграция из Postgresql в Elasticseach для организации полнотекстового поиска по данным
- миграция из любой базы в любую базу через:
- задание параметров в DAG Params
- операторы ветвления Airflow
- логирование с помощью logging
- линтер flake8
- login airflow
- pass airflow
- _AIRFLOW_1
- host: 5.35.83.245
- port: 5432
- database: movies_database
- login app
- pass 123qwe
http://5.35.83.245:9200/content/_search?pretty=true
- git clone
- docker compose up -d --build
- Connection Id movies_pg_db
- Connection Type Postgres
- Host movies_pg_db
- Schema movies_database
- Login app
- Password 123qwe
- Port 5432
- Extra {"cursor": "RealDictCursor"}
- Connection Id movies_es_db
- Connection Type Elasticseach
- Host movies_es_db
- Port 9200
- Connection Id movies_sqlite_db_in
- Connection Type SQLite
- Schema db_in.sqlite
- Connection Id movies_sqlite_db_out
- Connection Type SQLite
- Schema db_out.sqlite
- in_db_id: movies_pg_db
- id_db_params: {"schema": "content"}
- out_db_id: movies_pg_db
- out_db_params: {"schema": "content", "table": "film_work"}
- in_db_id: movies_es_db
- in_out_id: movies_es_db
- id_db_params и out_db_params: {"index": "content"}
- id_db_params и out_db_params: можно не заполнять
- film_id, title (выбрать из списка доступные поля)
- chunk_size *: 10