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
Hashes for apache-airflow-providers-fastetl-0.0.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b877549b7878c53f69e9c45f6a4f92090d1dc170f7ccd53a9930a6ef47b94198 |
|
MD5 | a8a6794773391ec5a319ae20872bce28 |
|
BLAKE2b-256 | fccc509ec6f34e48d715af0efa16e8eb79f9ab9c128b627602323fc4419b278a |
Hashes for apache_airflow_providers_fastetl-0.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3dcac2fa0b47f5687516a730cba600e066d62632ece2220fbb82bc9352502ca2 |
|
MD5 | 97a6d71eff670bb8115105b2d440411f |
|
BLAKE2b-256 | 1e238e4b5aa548a561a93f8e541136195a364968e76418ed2caeff7f2a471e74 |