Skip to main content

FastETL custom package Apache Airflow provider.

Project description

Logotipo do FastETL. É um canivete tipo suiço com várias peças abertas

Framework fastETL, moderno, versátil, faz quase tudo.


CI Tests

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apache-airflow-providers-fastetl-0.0.5.tar.gz (70.3 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file apache-airflow-providers-fastetl-0.0.5.tar.gz.

File metadata

File hashes

Hashes for apache-airflow-providers-fastetl-0.0.5.tar.gz
Algorithm Hash digest
SHA256 2db974db7b85465fb88e83c65deef4e0c9b2800b2e108a994a9ce5b3f3f2fc38
MD5 d446232186d640558774416e8fad97f8
BLAKE2b-256 948fc6940a57458dd569ee5e5deba649236e1d23b7cc6a32de9b7b9b65ddbcd4

See more details on using hashes here.

File details

Details for the file apache_airflow_providers_fastetl-0.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for apache_airflow_providers_fastetl-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b1ed7256d4c60098dc01586a37c51082ecad0911dcfbe4a895b333c1ae5b2401
MD5 b939886dfca56bc75e8af3b3d7fd0643
BLAKE2b-256 3dd2f1376d77916e6fea18f0aebd66bfb16e96f0d8e6edd8a48192fd20cbe2ec

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page