使用Python和SQLAlchemy管理Experience Platform数据
- 主题:
- 查询
创建对象:
- 用户
- 开发人员
了解如何使用SQLAlchemy以更灵活地管理Adobe Experience Platform数据。 对于不熟悉SQL的人来说,SQLAlchemy可以在使用关系数据库时大大缩短开发时间。 本文档提供了将SQLAlchemy连接到查询服务并开始使用Python与数据库交互的说明和示例。
SQLAlchemy是对象关系映射器(ORM)和Python代码库,可以将存储在SQL数据库中的数据转换为Python对象。 然后,您可以使用Python代码对Experience Platform数据湖中保留的数据执行CRUD操作。 这消除了仅使用PSQL管理数据的需要。
快速入门
要获取将SQLAlchemy连接到Experience Platform所需的凭据,您必须有权访问Experience Platform UI中的查询工作区。 如果您当前无权访问查询工作区,请联系您的组织管理员。
Query Service凭据
若要查找凭据,请登录到Experience Platform UI,然后从左侧导航中选择 查询,然后选择 凭据。 有关如何查找登录凭据的完整说明,请参阅凭据指南。
虽然端口80是连接查询服务的推荐端口,但您也可以使用端口5432。
访问QS凭据后,打开您选择的Python编辑器。
在Python中存储凭据
在Python编辑器中,导入urllib.parse.quote
库并将每个凭据变量另存为参数。 urllib.parse
模块提供了一个标准接口,用于将URL字符串分解为组件。 quote函数可替换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
返回引擎的实例。 但是,在调用需要连接的查询之前,它不会打开与查询服务的连接。使用第三方客户端访问Experience 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查询Experience Platform数据。 以下示例返回了一个查询服务表名数组。
from sqlalchemy import inspect
insp = inspect(engine)
print(insp.get_table_names())