Python per ingegneri dei dati.  Tecniche ETL avanzate per principianti |  di 💡Mike Shakhomirov |  Ottobre 2023

 | Intelligenza-Artificiale

Tecniche ETL avanzate per principianti

fotografato da Orgoglio SU Unsplash

In questa storia parlerò di tecniche avanzate di ingegneria dei dati in Python. Senza dubbio, Python è il linguaggio di programmazione per i dati più popolare. Durante i miei quasi dodici anni di carriera nell’ingegneria dei dati, ho riscontrato varie situazioni in cui il codice presentava problemi. Questa storia è un breve riassunto di come li ho risolti e ho imparato a scrivere codice migliore. Mostrerò alcune tecniche che rendono il nostro ETL più veloce e aiutano a migliorare le prestazioni del nostro codice.

Elenca le comprensioni

Immagina di scorrere un elenco di tabelle. In genere, faremmo questo:

data_pipelines = ('p1','p2','p3')
processed_tables = ()
for table in data_pipelines:
processed_tables.append(table)

Ma invece potremmo usare la comprensione delle liste. Non solo sono più veloci, ma riducono anche il codice rendendolo più conciso:

processed_tables = (table for table in data_pipelines)

Ad esempio, eseguire il looping di un file di grandi dimensioni con dati da trasformare (ETL) per ogni riga non è mai stato così semplice:

def etl(item):
# Do some data transformation here
return json.dumps(item)

data = u"\n".join(etl(item) for item in json_data)

Le comprensioni degli elenchi sono estremamente utili per l’elaborazione ETL di file di dati di grandi dimensioni. Immagina un file di dati che dobbiamo trasformare in un formato delimitato da nuova riga. Prova a eseguire questo esempio nel tuo ambiente Python:


import io
import json

def etl(item):
return json.dumps(item)

# Text file loaded as a blob
blob = """
(
{"id":"1","first_name":"John"},
{"id":"2","first_name":"Mary"}
)
"""
json_data = json.loads(blob)
data_str = u"\n".join(etl(item) for item in json_data)

print(data_str)
data_file = io.BytesIO(data_str.encode())

# This data file is ready for BigQuery as Newline delimited JSON
print(data_file)

L’output sarà a JSON delimitato da nuova riga. Questo è un formato standard per i dati nel data warehouse BigQuery ed è pronto per essere caricato nella tabella:

{"id": "1", "first_name": "John"}
{"id": "2", "first_name": "Mary"}
<_io.BytesIO object at 0x10c732430>

Generatori

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *