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. Dieses Dokument enthält Anweisungen und Beispiele zum Verbinden SQLAlchemy zu Query Service hinzu und beginnen Sie mit der Verwendung von Python, um mit Ihren Datenbanken zu interagieren.
SQLAlchemy ist ein Objekt Relational Mapper (ORM) und ein Python Codebibliothek, mit der in einer SQL-Datenbank gespeicherte Daten in Python Objekte. Anschließend können Sie CRUD-Vorgänge für Daten ausführen, die im Platform Data Lake gespeichert sind, indem Sie Python Code. Dadurch entfällt die Notwendigkeit, Daten nur mit PSQL zu verwalten.
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.
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 in der Handbuch zu Anmeldeinformationen.
Obwohl Port 80 der empfohlene Anschluss für eine Verbindung mit Query Service ist, können Sie auch Port 5432 verwenden.
Wenn Sie ablaufende Anmeldeinformationen (wie in der Abbildung oben gezeigt) verwenden, um eine Verbindung zu Query Service herzustellen, läuft die Sitzungsdauer für Ihre Verbindung nach dem in den Einstellungen Ihres Unternehmens festgelegten Zeitraum ab. Standardmäßig beträgt dieser Zeitraum 24 Stunden. Weitere Informationen finden Sie in der Dokumentation . Client mit nicht ablaufenden Anmeldedaten verbindenoder wie die Sitzungsdauer für Ihre ablaufenden Anmeldedaten ändern.
Sobald Sie Zugriff auf Ihre QS-Anmeldeinformationen haben, öffnen Sie Ihre Python Editor der Wahl.
In Python Editor, importieren Sie die urllib.parse.quote
und speichern Sie jede Berechtigungsvariable als Parameter. Die urllib.parse
bietet eine Standardoberfläche, über die URL-Zeichenfolgen in Komponenten unterteilt werden können. 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:
Verwendung Pythondrei Anführungszeichen, um Ihre mehrzeilige Kennwortzeichenfolge einzugeben.
from urllib.parse import quote
host = "<YOUR_HOST>"
port = "<YOUR_PORT>"
dbname = "<YOUR_DATABASE>"
user = "<YOUR_USERNAME>"
password = quote('''
<YOUR_PASSWORD>
''')
Das Kennwort, das Sie für die Verbindung angeben SQLAlchemy zu Experience Platform läuft ab, wenn Sie ablaufende Anmeldedaten verwenden. Siehe Abschnitt "Anmeldeinformationen" für weitere Informationen.
Importieren Sie nach der Erstellung der Variablen die create_engine
und erstellen Sie eine Zeichenfolge, um Ihre Query Service-Anmeldedaten in SQLAlchemiy zu kompilieren und zu formatieren. Die create_engine
-Funktion 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 die connect_args
, um zusätzliche Suchbegriffargumente einzugeben. Es wird empfohlen, den SSL-Modus auf require
. Siehe Dokumentation zu SSL-Modi für weitere Informationen zu akzeptierten Werten.
Im folgenden Beispiel wird die Python Code, 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'})
Das Kennwort, das Sie für die Verbindung angeben SQLAlchemy zu Experience Platform läuft ab, wenn Sie ablaufende Anmeldedaten verwenden. Siehe Abschnitt "Anmeldeinformationen" für weitere Informationen.
Sie können jetzt Platform-Daten mit Python. Das folgende Beispiel gibt ein Array von Query Service-Tabellennamen zurück.
from sqlalchemy import inspect
insp = inspect(engine)
print(insp.get_table_names())