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.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7bef5cd76c1a7584cf76a4823c17b36395048bb0bcf7bc22944b62bfa4df9e3e |
|
MD5 | 8d40c464af8f6dce8cbb47e4e3d9b44f |
|
BLAKE2b-256 | 1286a49132eede2018b7d1cfba7865e1515a7b553acb461b26a9c0088d02b9ac |
Hashes for apache_airflow_providers_fastetl-0.0.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d35ece09476de670b5edac01c775fe785d5c60b1b1b561e1766938de6491d10 |
|
MD5 | dd8db9b4321ab33b9a8b556126098fb2 |
|
BLAKE2b-256 | 397c5ad37d73c84bcce5999296cc87edbf04935577dcd436c5c96b70dfafc685 |