Gestire i dati di Experience Platform utilizzando Python e SQLAlchemy
- Argomenti:
- Query
Creato per:
- Utente
- Sviluppatore
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. In questo documento vengono fornite istruzioni ed esempi per connettere SQLAlchemy a Query Service e iniziare a utilizzare Python per interagire con i database.
SQLAlchemy è un Object Relational Mapper (ORM) e una libreria di codici Python in grado di trasferire i dati archiviati in un database SQL in oggetti Python. È quindi possibile eseguire operazioni CRUD sui dati contenuti nel data lake di Experience Platform utilizzando il codice Python. Questo elimina la necessità di gestire i dati utilizzando solo PSQL.
Introduzione
Per acquisire le credenziali necessarie per la connessione di SQLAlchemy ad Experience Platform, è necessario avere accesso all'area di lavoro Query nell'interfaccia utente di Experience Platform. Se al momento non disponi dell’accesso all’area di lavoro Query, contatta l’amministratore dell’organizzazione.
Query Service credenziali
Per trovare le credenziali, accedi all'interfaccia utente di Experience 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 la guida delle credenziali.
Sebbene la porta 80 sia la porta consigliata per una connessione a Query Service, è possibile utilizzare anche la porta 5432.
Una volta ottenuto l'accesso alle credenziali QS, apri l'editor Python scelto.
Memorizza credenziali in Python
Nell'editor Python, importare la libreria urllib.parse.quote
e salvare ogni variabile di credenziali come parametro. Il modulo urllib.parse
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>
''')
Crea un'istanza del motore [#create-engine]
Dopo aver creato le variabili, importare la funzione create_engine
e creare una stringa per compilare e formattare le credenziali di Query Service in SQLAlchemy. La funzione 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 ad Experience Platform utilizzando client di terze parti. Come parte del motore, utilizzare connect_args
per immettere argomenti aggiuntivi per parole chiave. Si consiglia di impostare la modalità SSL su require
. Consulta la documentazione sulle modalità SSL per ulteriori informazioni sui valori accettati.
Nell'esempio seguente viene visualizzato il codice Python 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 possibile eseguire query sui dati di Experience Platform utilizzando 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())