Gestire i dati di Platform tramite Python e SQLAlchemy
Scopri come utilizzare SQLAlchemy per una maggiore flessibilità nella gestione dei dati Adobe Experience Platform. Per coloro che non hanno familiarità con SQL, SQLAlchemy può migliorare notevolmente i tempi di sviluppo quando si lavora con i database relazionali. Questo documento fornisce istruzioni ed esempi per la connessione SQLAlchemy a Query Service e iniziare a utilizzare Python per interagire con i database.
SQLAlchemy è un Object Relational Mapper (ORM) e Python libreria di codici in grado di trasferire i dati memorizzati in un database SQL in Python oggetti. Puoi quindi eseguire operazioni CRUD sui dati conservati nel data lake di Platform utilizzando Python codice. Questo elimina la necessità di gestire i dati utilizzando solo PSQL.
Introduzione
Per acquisire le credenziali necessarie per la connessione SQLAlchemy ad Experience Platform, devi avere accesso all’area di lavoro Query nell’interfaccia utente di Platform. Se al momento non disponi dell’accesso all’area di lavoro Query, contatta l’amministratore dell’organizzazione.
Query Service credenziali credentials
Per trovare le credenziali, accedi all’interfaccia utente di Platform e seleziona Query dal menu di navigazione a sinistra, seguito da Credenziali. Per le istruzioni complete su come trovare le credenziali di accesso, leggere guida alle credenziali.
Sebbene la porta 80 sia la porta consigliata per una connessione a Query Service, è possibile utilizzare anche la porta 5432.
Una volta che hai accesso alle tue credenziali QS, apri il tuo Python editor di scelta.
Memorizza credenziali in Python store-credentials
Nel tuo Python editor, importa urllib.parse.quote
e salva ciascuna variabile di credenziali come parametro. Il urllib.parse
Il modulo fornisce un’interfaccia standard per suddividere le stringhe URL in componenti. La funzione delle virgolette sostituisce i caratteri speciali nella stringa URL per rendere i dati sicuri da utilizzare come componenti URL. Di seguito è riportato un esempio del codice richiesto:
from urllib.parse import quote
host = "<YOUR_HOST>"
port = "<YOUR_PORT>"
dbname = "<YOUR_DATABASE>"
user = "<YOUR_USERNAME>"
password = quote('''
<YOUR_PASSWORD>
''')
Creare un’istanza del motore [#create-engine]
Dopo la creazione delle variabili, importa create_engine
e creare una stringa per compilare e formattare le credenziali di Query Service in SQLAlchemy. Il create_engine
viene quindi utilizzata per creare un’istanza del motore.
create_engine
restituisce un'istanza di un motore. Tuttavia, non apre la connessione a Query Service finché non viene chiamata una query che richiede una connessione.SSL deve essere abilitato quando si accede a Platform utilizzando client di terze parti. Come parte del motore, utilizza connect_args
per immettere argomenti aggiuntivi per la parola chiave. Si consiglia di impostare la modalità SSL su require
. Consulta la Documentazione sulle modalità SSL per ulteriori informazioni sui valori accettati.
L’esempio seguente mostra il Python codice necessario per inizializzare un motore e una stringa di connessione.
from sqlalchemy import create_engine
db_string = "postgresql://{user}:{password}@{host}:{port}/{dbname}".format(
user=user,
password=password,
host=host,
port = port,
dbname = dbname
)
engine = create_engine(db_string, connect_args={'sslmode':'require'})
Ora puoi eseguire query sui dati di Platform tramite Python. L’esempio riportato di seguito restituisce una matrice di nomi di tabella di Query Service.
from sqlalchemy import inspect
insp = inspect(engine)
print(insp.get_table_names())