Hantera plattformsdata med Python och SQLAlchemy

Lär dig hur du använder SQLAlchemy för större flexibilitet i hanteringen av dina Adobe Experience Platform-data. För dem som inte är lika bekanta med SQL kan SQLAlchemy avsevärt förbättra utvecklingstiden när de arbetar med relationsdatabaser. Det här dokumentet innehåller instruktioner och exempel för att ansluta SQLAlchemy till Query Service och börja använda Python för att interagera med databaser.

SQLAlchemy är en ORM (Object Relational Mapper) och en Python kodbibliotek som kan överföra data som lagras i en SQL-databas till Python objekt. Sedan kan du utföra CRUD-åtgärder på data som lagras inom sjön för plattformsdata med Python kod. Detta eliminerar behovet av att hantera data med enbart PSQL.

Komma igång

Hämta nödvändiga autentiseringsuppgifter för anslutning SQLAlchemy för Experience Platform måste du ha tillgång till arbetsytan Frågor i användargränssnittet för plattformen. Kontakta din organisationsadministratör om du inte har tillgång till arbetsytan Frågor.

Query Service autentiseringsuppgifter credentials

Logga in på användargränssnittet för plattformen och välj Queries från vänster navigering, följt av Credentials. Fullständiga anvisningar om hur du hittar dina inloggningsuppgifter finns i inloggningsguide.

Fliken Autentiseringsuppgifter med utgångsdatum för frågetjänsten är markerad.

Även om port 80 är den rekommenderade porten för en anslutning till Query Service kan du även använda port 5432.

IMPORTANT
Om du använder utgångna inloggningsuppgifter (enligt bilden ovan) för att ansluta till Query Service, kommer sessionstiden för din anslutning att upphöra efter den angivna tidsperiod som anges i organisationens inställningar. Som standard är den här perioden 24 timmar. Läs dokumentationen för att lära dig mer om ansluta en klient med autentiseringsuppgifter som inte upphör att gällaeller hur ändra sessionens livslängd för dina förfallande autentiseringsuppgifter.

När du har åtkomst till dina QS-autentiseringsuppgifter öppnar du Python valfri redigerare.

Lagra autentiseringsuppgifter i Python store-credentials

I Python redigeraren, importera urllib.parse.quote bibliotek och spara varje referensvariabel som en parameter. The urllib.parse -modulen innehåller ett standardgränssnitt för att dela upp URL-strängar i komponenter. Citattfunktionen ersätter specialtecken i URL-strängen för att göra data säkra att använda som URL-komponenter. Ett exempel på den kod som krävs visas nedan:

TIP
Använd Python's triple quotes to enter your multiple lines password string.
from urllib.parse import quote

host = "<YOUR_HOST>"

port = "<YOUR_PORT>"

dbname = "<YOUR_DATABASE>"

user = "<YOUR_USERNAME>"

password = quote('''
<YOUR_PASSWORD>
''')
NOTE
Lösenordet du anger för att ansluta SQLAlchemy Experience Platform upphör att gälla om du använder inloggningsuppgifterna. Se informationssektion för mer information.

Skapa en motorinstans [#create-engine]

När variablerna har skapats importerar du create_engine och skapa en sträng för att kompilera och formatera dina inloggningsuppgifter för frågetjänsten i SQLAlchemy. The create_engine används sedan för att konstruera en motorinstans.

NOTE
create_enginereturnerar en instans av en motor. Anslutningen till frågetjänsten öppnas dock inte förrän en fråga som kräver en anslutning anropas.

SSL måste vara aktiverat vid åtkomst till plattformen med tredjepartsklienter. Använd connect_args om du vill ange ytterligare nyckelordsargument. Du rekommenderas att ange SSL-läget till require. Se Dokumentation för SSL-lägen för mer information om godkända värden.

I exemplet nedan visas Python kod som krävs för att initiera en motor och anslutningssträng.

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'})
NOTE
Lösenordet du anger för att ansluta SQLAlchemy Experience Platform upphör att gälla om du använder inloggningsuppgifterna. Se informationssektion för mer information.

Du är nu redo att fråga efter plattformsdata med Python. Exemplet nedan returnerar en array med frågetjänsttabellnamn.

from sqlalchemy import inspect
insp = inspect(engine)
print(insp.get_table_names())
recommendation-more-help
ccf2b369-4031-483f-af63-a93b5ae5e3fb