Vai al contenuto principale
BlogConnessioni e Hooks in Apache Airflow
Apache AirflowApache per i Big Data

Connessioni e Hooks in Apache Airflow

4 Nov 20246 min lettura
SC

Stanislao Corvino

Dottore Commercialista · Data Evangelist

In Apache Airflow, le Connessioni e i Hooks sono componenti chiave per interagire con risorse esterne come database, API e sistemi di file. Questi strumenti ti permettono di automatizzare flussi di lavoro complessi collegandoti a fonti di dati e servizi esterni in modo sicuro e riutilizzabile.

Cos’è una Connection in Airflow

Una Connection memorizza le credenziali e i parametri di accesso a un sistema esterno. Ogni connessione è definita da:

  • Conn Id: un identificatore univoco
  • Conn Type: il tipo (Postgres, MySQL, HTTP, S3, ecc.)
  • Host, Schema, Login, Password, Port
  • Extra: parametri aggiuntivi in formato JSON

Come configurare le connessioni

1. Interfaccia Web

Vai su Admin > Connections nella UI di Airflow.

2. Variabili d’ambiente

export AIRFLOW_CONN_MY_POSTGRES_DB='postgresql://user:pass@host:5432/dbname'

3. Secrets Backend

Per produzione, usa AWS Secrets Manager, HashiCorp Vault o Google Secret Manager.

Cos’è un Hook

Un Hook è un’interfaccia Python che utilizza una Connection per interagire con un sistema esterno. I Hooks più utilizzati:

  • PostgresHook, MySqlHook, S3Hook, HttpHook, SlackHook

Esempio pratico

from airflow.providers.postgres.hooks.postgres import PostgresHook

def extract_data(**context):
    hook = PostgresHook(postgres_conn_id='my_postgres_db')
    records = hook.get_records("SELECT * FROM orders")
    return records

Best Practice

  • Non inserire mai credenziali nel codice dei DAG
  • Usa nomi di Connection ID descrittivi
  • Utilizza un Secrets Backend in produzione
  • Testa le connessioni dalla UI prima di usarle

Le Connessioni e i Hooks sono fondamentali per costruire pipeline di dati sicure e manutenibili in Apache Airflow.

Tag:
Apache AirflowBig DataHooksConnections

Articoli correlati