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.
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.
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.
Se utilizzi le credenziali in scadenza (come mostrato nell’immagine precedente) per connetterti a Query Service, la durata della sessione per la connessione scadrà dopo il periodo di tempo impostato definito nelle impostazioni della tua organizzazione. Per impostazione predefinita, questo periodo è di 24 ore. Consulta la documentazione per scoprire come connettere un client con credenziali senza scadenza, o come modifica la durata della sessione per le credenziali in scadenza.
Una volta che hai accesso alle tue credenziali QS, apri il tuo Python editor di scelta.
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:
Utilizzare Pythontre virgolette per immettere la stringa di password su più righe.
from urllib.parse import quote
host = "<YOUR_HOST>"
port = "<YOUR_PORT>"
dbname = "<YOUR_DATABASE>"
user = "<YOUR_USERNAME>"
password = quote('''
<YOUR_PASSWORD>
''')
Password fornita per la connessione SQLAlchemy L'Experience Platform di a scadrà se si utilizzano le credenziali di scadenza. Consulta la sezione delle credenziali per ulteriori informazioni.
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'})
Password fornita per la connessione SQLAlchemy L'Experience Platform di a scadrà se si utilizzano le credenziali di scadenza. Consulta la sezione delle credenziali per ulteriori informazioni.
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())