FastETL custom package Apache Airflow provider.
Project description
Framework fastETL, moderno, versátil, faz quase tudo.
O FastETL é um pacote de plugins do Airflow para construção de pipelines de dados para uma variedade de cenários comuns.
Principais funcionalidades:
- Replicação de tabelas full ou incremental em bancos de dados SQL Server e Postgres
- Carga de dados a partir do GSheets e de planilhas na rede Samba/Windows
- Extração de CSV a partir do SQL
- Consulta à API do DOU
Este framework é mantido por uma rede de desenvolvedores de diversas equipes do Ministério da Economia e é o resultado acumulado da utilização do Apache Airflow, uma ferramenta livre de código aberto, a partir de 2019.
Para governo: O fastETL é utilizado largamente para replicação de dados acessados via Quartzo (DaaS) do Serpro.
Instalação no Airflow
O FastETL implementa os padrões de plugins do Airflow e para ser
instalado basta que ele seja copiado para o diretório plugins
no
ambiente da instalação do Airflow.
Atualmente o FastETL depende do nosso ambiente do Airflow com Docker definido no repositório airflow2-docker. Caso utilize esse ambiente, o FastETl já vem integrado.
No futuro pretendemos transformá-lo em um plugin independente de um ambiente específico, contendo instruções para instalado em qualquer ambiente. O primeiro passo para isso será documentar as suas dependências.
Testes
A suíte de testes usa contêineres Docker para simular um ambiente completo de uso, inclusive com o Airflow e os bancos de dados. Por isso, para executar os testes, é necessário primeiro instalar o Docker e o docker-compose.
Para quem usa Ubuntu 20.04, basta digitar no terminal:
snap install docker
Para outras versões e sistemas operacionais, consulte a documentação oficial do Docker.
Para construir os contêineres:
make setup
Para rodar os testes execute:
make setup && make tests
Para desmontar o ambiente execute:
make down
Exemplo de uso
A principal funcionalidade do FastETL é o operador
DbToDbOperator
. Ele copia dados entre os bancos postgres
e
mssql
.
Aqui um exemplo:
from datetime import datetime
from airflow import DAG
from fastetl.operators.db_to_db_operator import DbToDbOperator
default_args = {
"start_date": datetime(2023, 4, 1),
}
dag = DAG(
"copy_db_to_db_example",
default_args=default_args,
schedule_interval=None,
)
t0 = DbToDbOperator(
task_id="copy_data",
source={
"conn_id": airflow_source_conn_id,
"schema": source_schema,
"table": table_name,
},
destination={
"conn_id": airflow_dest_conn_id,
"schema": dest_schema,
"table": table_name,
},
destination_truncate=True,
copy_table_comments=True,
chunksize=10000,
dag=dag,
)
Mais detalhes sobre os parâmetros e funcionamento do DbToDbOperator
nos arquivos:
Como colaborar
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file apache-airflow-providers-fastetl-0.0.4.tar.gz
.
File metadata
- Download URL: apache-airflow-providers-fastetl-0.0.4.tar.gz
- Upload date:
- Size: 70.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b877549b7878c53f69e9c45f6a4f92090d1dc170f7ccd53a9930a6ef47b94198 |
|
MD5 | a8a6794773391ec5a319ae20872bce28 |
|
BLAKE2b-256 | fccc509ec6f34e48d715af0efa16e8eb79f9ab9c128b627602323fc4419b278a |
File details
Details for the file apache_airflow_providers_fastetl-0.0.4-py3-none-any.whl
.
File metadata
- Download URL: apache_airflow_providers_fastetl-0.0.4-py3-none-any.whl
- Upload date:
- Size: 77.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3dcac2fa0b47f5687516a730cba600e066d62632ece2220fbb82bc9352502ca2 |
|
MD5 | 97a6d71eff670bb8115105b2d440411f |
|
BLAKE2b-256 | 1e238e4b5aa548a561a93f8e541136195a364968e76418ed2caeff7f2a471e74 |