Verwalten von Platform-Daten mit Python und SQLAlchemy
Erfahren Sie, wie Sie SQLAlchemie für mehr Flexibilität bei der Verwaltung Ihrer Adobe Experience Platform-Daten einsetzen können. Für diejenigen, die mit SQL nicht so vertraut sind, kann SQLAlchemy die Entwicklungszeit bei der Arbeit mit relationalen Datenbanken erheblich verbessern. In diesem Dokument finden Sie Anweisungen und Beispiele zum Verbinden von SQLAlchemy mit Query Service und zum Verwenden von Python für die Interaktion mit Ihren Datenbanken.
SQLAlchemy ist ein Objekt Relational Mapper (ORM) und eine Python Code-Bibliothek, die in einer SQL-Datenbank gespeicherte Daten in Python -Objekte übertragen können. Anschließend können Sie CRUD-Vorgänge für Daten ausführen, die im Platform Data Lake gespeichert sind, indem Sie den Code Python verwenden. Dadurch entfällt die Notwendigkeit, Daten nur mit PSQL zu verwalten.
Erste Schritte
Um die erforderlichen Anmeldeinformationen zum Verbinden von SQLAlchemy mit Experience Platform zu erhalten, benötigen Sie Zugriff auf den Arbeitsbereich „Abfragen“ in der Platform-Benutzeroberfläche. Wenden Sie sich an Ihren Organisationsadministrator, wenn Sie derzeit keinen Zugriff auf den Arbeitsbereich "Abfragen"haben.
Query Service Anmeldedaten credentials
Um Ihre Anmeldeinformationen zu finden, melden Sie sich bei der Platform-Benutzeroberfläche an und wählen Sie im linken Navigationsbereich die Option Abfragen und dann Anmeldeinformationen aus. Eine vollständige Anleitung zum Auffinden Ihrer Anmeldedaten finden Sie im Benutzerhandbuch zu Anmeldedaten.
Obwohl Port 80 der empfohlene Anschluss für eine Verbindung mit Query Service ist, können Sie auch Port 5432 verwenden.
Sobald Sie Zugriff auf Ihre QS-Anmeldeinformationen haben, öffnen Sie den gewünschten Python-Editor.
Anmeldeinformationen in Python speichern store-credentials
Importieren Sie in Ihren Python-Editor die Bibliothek urllib.parse.quote
und speichern Sie jede Berechtigungsvariable als Parameter. Das Modul urllib.parse
bietet eine Standardschnittstelle, um URL-Zeichenfolgen in Komponenten zu unterteilen. Die Anführungsfunktion ersetzt Sonderzeichen in der URL-Zeichenfolge, damit die Daten für die Verwendung als URL-Komponenten sicher sind. Nachfolgend finden Sie ein Beispiel für den erforderlichen Code:
from urllib.parse import quote
host = "<YOUR_HOST>"
port = "<YOUR_PORT>"
dbname = "<YOUR_DATABASE>"
user = "<YOUR_USERNAME>"
password = quote('''
<YOUR_PASSWORD>
''')
Erstellen einer Engine-Instanz [#create-engine]
Nachdem die Variablen erstellt wurden, importieren Sie die Funktion create_engine
und erstellen Sie eine Zeichenfolge, um Ihre Query Service-Anmeldedaten in SQLAlchemiy zu kompilieren und zu formatieren. Die Funktion create_engine
wird dann zum Erstellen einer Engine-Instanz verwendet.
create_engine
gibt eine Instanz einer Engine zurück. Die Verbindung zu Query Service wird jedoch erst geöffnet, wenn eine Abfrage aufgerufen wird, für die eine Verbindung erforderlich ist.SSL muss beim Zugriff auf Platform mit Clients von Drittanbietern aktiviert sein. Verwenden Sie als Teil Ihrer Engine den connect_args
, um zusätzliche Suchbegriffargumente einzugeben. Es wird empfohlen, den SSL-Modus auf require
festzulegen. Weitere Informationen zu akzeptierten Werten finden Sie in der Dokumentation zu SSL-Modi .
Im folgenden Beispiel wird der Code Python angezeigt, der zum Initialisieren einer Engine und einer Verbindungszeichenfolge erforderlich ist.
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'})
Sie können jetzt Platform-Daten mit Python abfragen. Das folgende Beispiel gibt ein Array von Query Service-Tabellennamen zurück.
from sqlalchemy import inspect
insp = inspect(engine)
print(insp.get_table_names())