使用Python和SQLAlchemy管理平台資料
瞭解如何使用SQLAlchemy,以更靈活地管理Adobe Experience Platform資料。 對於不熟悉SQL的使用者,SQLAlchemy可以在使用關聯式資料庫時大幅縮短開發時間。 本檔案提供將SQLAlchemy連線至Query Service並開始使用Python與您的資料庫互動的指示和範例。
SQLAlchemy是物件關聯對應程式(ORM)和Python程式碼程式庫,可將儲存在SQL資料庫中的資料傳輸至Python物件。 接著,您可以使用Python程式碼,對Platform Data Lake中保留的資料執行CRUD作業。 如此一來,您就不需要只使用PSQL來管理資料。
快速入門
若要取得連線SQLAlchemy至Experience Platform的必要認證,您必須擁有平台UI中查詢工作區的存取權。 如果您目前無法存取查詢工作區,請聯絡您的組織管理員。
Query Service認證 credentials
若要尋找您的認證,請登入Platform UI並從左側導覽選取 查詢,接著選取 認證。 如需如何尋找登入認證的完整指示,請參閱認證指南。
雖然連線埠80是連線至查詢服務的建議連線埠,但您也可以使用連線埠5432。
存取您的QS認證後,請開啟您選擇的Python編輯器。
在Python中儲存認證 store-credentials
在您的Python編輯器中,匯入urllib.parse.quote
資料庫並將每個認證變數儲存為引數。 urllib.parse
模組提供標準介面,可將URL字串分成元件。 引號函式會取代URL字串中的特殊字元,讓資料可安全用作URL元件。 以下是必要程式碼的範例:
from urllib.parse import quote
host = "<YOUR_HOST>"
port = "<YOUR_PORT>"
dbname = "<YOUR_DATABASE>"
user = "<YOUR_USERNAME>"
password = quote('''
<YOUR_PASSWORD>
''')
建立引擎執行個體[#create-engine]
建立變數之後,匯入create_engine
函式並建立字串,以編譯並格式化您在SQLAlchemy中的查詢服務認證。 接著會使用create_engine
函式來建構引擎執行個體。
create_engine
傳回引擎的執行個體。 但是,在呼叫需要連線的查詢之前,它不會開啟到查詢服務的連線。使用協力廠商使用者端存取Platform時,必須啟用SSL。 做為引擎的一部分,請使用connect_args
輸入其他關鍵字引數。 建議您將SSL模式設定為require
。 如需接受值的詳細資訊,請參閱SSL模式檔案。
下列範例顯示初始化引擎和連線字串所需的Python程式碼。
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'})
您現在可以使用Python來查詢Platform資料。 下列範例會傳回查詢服務資料表名稱的陣列。
from sqlalchemy import inspect
insp = inspect(engine)
print(insp.get_table_names())