Gérer les données de Platform à l’aide de Python et SQLAlchemy
Découvrez comment utiliser SQLAlchemy pour une plus grande flexibilité dans la gestion de vos données Adobe Experience Platform. Pour ceux qui ne sont pas aussi familiers avec SQL, SQLAlchemy peut améliorer considérablement le temps de développement lors de l’utilisation de bases de données relationnelles. Ce document fournit des instructions et des exemples pour connecter SQLAlchemy à Query Service et commencer à utiliser Python pour interagir avec vos bases de données.
SQLAlchemy est une bibliothèque de code ORM (Object Relational Mapper) et Python qui peut transférer des données stockées dans une base de données SQL dans des objets Python. Vous pouvez ensuite effectuer des opérations CRUD sur les données contenues dans le lac de données Platform à l’aide du code Python. Cela supprime la nécessité de gérer les données à l’aide de PSQL uniquement.
Commencer
Pour acquérir les informations d’identification nécessaires à la connexion de SQLAlchemy à Experience Platform, vous devez avoir accès à l’espace de travail Requêtes dans l’interface utilisateur de Platform. Contactez l’administrateur de votre organisation si vous n’avez pas actuellement accès à l’espace de travail Requêtes .
Query Service credentials credentials
Pour trouver vos informations d’identification, connectez-vous à l’interface utilisateur de Platform et sélectionnez Requêtes à partir du volet de navigation de gauche, puis Informations d’identification. Pour obtenir des instructions complètes sur la manière de trouver vos informations de connexion, consultez le guide des informations d’identification.
Bien que le port 80 soit le port recommandé pour une connexion à Query Service, vous pouvez également utiliser le port 5432.
Une fois que vous avez accès à vos informations d’identification QS, ouvrez votre éditeur Python de votre choix.
Stocker les informations d’identification dans Python store-credentials
Dans votre éditeur Python, importez la bibliothèque urllib.parse.quote
et enregistrez chaque variable d’identification comme paramètre. Le module urllib.parse
fournit une interface standard pour ventiler les chaînes URL en composants. La fonction de guillemet remplace les caractères spéciaux dans la chaîne de l’URL pour que les données puissent être utilisées en toute sécurité comme composants d’URL. Vous trouverez ci-dessous un exemple du code requis :
from urllib.parse import quote
host = "<YOUR_HOST>"
port = "<YOUR_PORT>"
dbname = "<YOUR_DATABASE>"
user = "<YOUR_USERNAME>"
password = quote('''
<YOUR_PASSWORD>
''')
Créez une instance de moteur [#create-engine]
Une fois les variables créées, importez la fonction create_engine
et créez une chaîne pour compiler et formater vos informations d’identification Query Service dans SQLAlchemy. La fonction create_engine
est ensuite utilisée pour construire une instance de moteur.
create_engine
renvoie une instance d’un moteur. Toutefois, elle n’ouvre pas la connexion à Query Service tant qu’une requête ne nécessite pas de connexion.SSL doit être activé lors de l’accès à Platform à l’aide de clients tiers. Dans le cadre de votre moteur, utilisez connect_args
pour saisir des arguments de mots-clés supplémentaires. Il est recommandé de définir le mode SSL sur require
. Pour plus d’informations sur les valeurs acceptées, consultez la documentation sur les modes SSL.
L’exemple ci-dessous affiche le code Python nécessaire à l’initialisation d’un moteur et d’une chaîne de connexion.
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'})
Vous êtes maintenant prêt à interroger les données de Platform à l’aide de Python. L’exemple ci-dessous renvoie un tableau de noms de table Query Service.
from sqlalchemy import inspect
insp = inspect(engine)
print(insp.get_table_names())