Gerenciar dados do Experience Platform usando Python e SQLAlchemy
Saiba como usar o SQLAlchemy para maior flexibilidade no gerenciamento de dados do Adobe Experience Platform. Para aqueles que não estão tão familiarizados com o SQL, o SQLAlchemy pode melhorar muito o tempo de desenvolvimento ao trabalhar com bancos de dados relacionais. Este documento fornece instruções e exemplos para conectar o SQLAlchemy ao Serviço de Consulta e começar a usar o Python para interagir com seus bancos de dados.
SQLAlchemy é um ORM (Object Relational Mapper) e uma biblioteca de códigos Python que pode transferir dados armazenados em um banco de dados SQL para objetos Python. Você pode executar operações CRUD em dados mantidos no data lake da Experience Platform usando o código Python. Isso elimina a necessidade de gerenciar dados usando apenas o PSQL.
Introdução
Para adquirir as credenciais necessárias para conectar SQLAlchemy ao Experience Platform, você deve ter acesso ao espaço de trabalho Consultas na interface do usuário do Experience Platform. Entre em contato com o administrador da organização se não tiver acesso ao espaço de trabalho de Consultas.
Query Service credenciais credentials
Para encontrar suas credenciais, faça logon na interface do usuário do Experience Platform e selecione Consultas na navegação à esquerda, seguido de Credenciais. Para obter instruções completas sobre como encontrar suas credenciais de logon, leia o guia de credenciais.
Embora a porta 80 seja a porta recomendada para uma conexão com o Serviço de consulta, você também pode usar a porta 5432.
Depois de ter acesso às suas credenciais de QS, abra o editor Python de sua escolha.
Armazenar credenciais em Python store-credentials
No editor Python, importe a biblioteca urllib.parse.quote
e salve cada variável de credencial como um parâmetro. O módulo urllib.parse
fornece uma interface padrão para dividir cadeias de caracteres de URL em componentes. A função de aspas substitui caracteres especiais na string do URL para tornar os dados seguros para uso como componentes do URL. Um exemplo do código necessário é visto abaixo:
from urllib.parse import quote
host = "<YOUR_HOST>"
port = "<YOUR_PORT>"
dbname = "<YOUR_DATABASE>"
user = "<YOUR_USERNAME>"
password = quote('''
<YOUR_PASSWORD>
''')
Criar uma instância de mecanismo [#create-engine]
Depois que as variáveis forem criadas, importe a função create_engine
e crie uma cadeia de caracteres para compilar e formatar suas credenciais do Serviço de Consulta em SQLAlchemy. A função create_engine
é então usada para construir uma instância de mecanismo.
create_engine
retorna uma instância de um mecanismo. No entanto, ela não abre a conexão com o Serviço de consulta até que uma consulta seja chamada e exija uma conexão.O SSL deve ser ativado ao acessar o Experience Platform usando clientes de terceiros. Como parte do mecanismo, use o connect_args
para inserir argumentos de palavra-chave adicionais. É recomendável definir o modo SSL como require
. Consulte a documentação sobre modos SSL para obter mais informações sobre valores aceitos.
O exemplo abaixo exibe o código Python necessário para inicializar um mecanismo e uma cadeia de conexão.
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'})
Agora você está pronto para consultar dados do Experience Platform usando o Python. O exemplo mostrado abaixo retorna uma matriz de nomes de tabela do Serviço de consulta.
from sqlalchemy import inspect
insp = inspect(engine)
print(insp.get_table_names())