Estrazione di dati non tabulari

ETL and ELT in Python

Jake Roach

Data Engineer

Estrazione di dati non tabulari

Pipeline ETL con la componente di estrazione evidenziata.

ETL and ELT in Python

Tipi di dati non tabulari

La maggior parte dei dati prodotti e usati è non strutturata

  • Testo
  • Audio
  • Immagine
  • Video
  • Spaziali
  • IoT

Fonti di dati non strutturati sottoposti a trasformazione.

1 https://mitsloan.mit.edu/ideas-made-to-matter/tapping-power-unstructured-data
ETL and ELT in Python

Lavorare con API e dati JSON

API (Application Programming Interface)

  • Software che si appoggia alle fonti dati
  • Evita l'interazione diretta col database

$$

Data engineer che usa un'API per interagire con un database.

JSON (JavaScript Object Notation)

  • Coppie chiave-valore
  • Nessuno schema fisso
  • Aspetto simile ai dictionaries
{
    "key": "value",
    ...
    "open": 0.121875
}
ETL and ELT in Python

Lettura di file JSON con pandas

{
    "timestamps": [863703000, 863789400, ...],
    "open": [0.121875, 0.098438, ...],
    "close": [...],
    "volume": [...]
}

Usa la funzione .read_json()

# Leggi un file JSON nel formato sopra
raw_stock_data = pd.read_json("raw_stock_data.json", orient="columns")
1 https://pandas.pydata.org/docs/reference/api/pandas.read_json.html
ETL and ELT in Python

Dati JSON annidati o non strutturati

I dati non sono sempre pronti per un DataFrame

  • Oggetti annidati
  • "Schema" variabile
{
    "863703000": {
        "volume": 1443120000,
        "price": {
            "close": 0.09791,
            "open": 0.12187
        }
    }, 
    "863789400": {
        ...
    }, ...
}
ETL and ELT in Python

Lettura di file JSON con json

import json

with open("raw_stock_data.json", "r") as file:
    # Carica il file in un dizionario
    raw_stock_data = json.load(file)

# Conferma il tipo della variabile raw_stock_data
print(type(raw_stock_data))
<class 'dict'>
ETL and ELT in Python

Esercitiamoci!

ETL and ELT in Python

Preparing Video For Download...