Referenties opslaan in een afzonderlijk configuratiebestand

Om uw referentie veilig te houden, verdient het aanbeveling geen referentie-informatie rechtstreeks in uw code te schrijven. Bewaar in plaats daarvan de referentie-informatie in een afzonderlijk configuratiebestand en lees de waarden in die nodig zijn om verbinding te maken met de Experience Platform en Data Distiller.

U kunt bijvoorbeeld een bestand met de naam config.ini maken en de volgende informatie (samen met andere informatie, zoals id's van gegevenssets, die u tussen sessies kunt opslaan) opnemen:

[Credential]
ims_org_id=<YOUR_IMS_ORG_ID>
sandbox_name=<YOUR_SANDBOX_NAME>
client_id=<YOUR_CLIENT_ID>
client_secret=<YOUR_CLIENT_SECRET>
scopes=openid, AdobeID, read_organizations, additional_info.projectedProductContext, session
tech_acct_id=<YOUR_TECHNICAL_ACCOUNT_ID>

In uw laptop kunt u de referentie-informatie vervolgens in het geheugen lezen met behulp van het pakket configParser uit de standaard Python -bibliotheek:

from configparser import ConfigParser

# Create a ConfigParser object to read and store information from config.ini
config = ConfigParser()
config_path = '<PATH_TO_YOUR_CONFIG.INI_FILE>'
config.read(config_path)

Vervolgens kunt u als volgt verwijzen naar waarden voor referentie-referenties binnen de code:

org_id = config.get('Credential', 'ims_org_id')

PP Python-bibliotheek installeren

aeppis een Adobe-Beheerde open-source Python bibliotheek die functies verstrekt om met Gegevens Distiller te verbinden en vragen voor te leggen, zoals het doen van verzoeken aan andere diensten van Experience Platform. De aepp -bibliotheek is op zijn beurt afhankelijk van het PostgreSQL-databaseadapterpakket psycopg2 voor interactieve Distiller-query's voor gegevens. Het is mogelijk verbinding te maken met Data Distiller en Experience Platform-gegevenssets te controleren met psycopg2 alleen, maar aepp biedt meer gebruiksgemak en extra functionaliteit om aanvragen in te dienen bij alle Experience Platform API-services.

Als u aepp en psycopg2 wilt installeren of upgraden in uw omgeving, kunt u de opdracht %pip Magisch in uw notitieboekje gebruiken:

%pip install --upgrade aepp
%pip install --upgrade psycopg2-binary

Vervolgens kunt u de aepp -bibliotheek configureren met uw referentie aan de hand van de volgende code:

from configparser import ConfigParser

# Create a ConfigParser object to read and store information from config.ini
config = ConfigParser()
config_path = '<PATH_TO_YOUR_CONFIG.INI_FILE>'
config.read(config_path)

# Configure aepp with your credentials
import aepp

aepp.configure(
  org_id=config.get('Credential', 'ims_org_id'),
  sandbox=config.get('Credential', 'sandbox_name'),
  client_id=config.get('Credential', 'client_id'),
  secret=config.get('Credential', 'client_secret'),
  scopes=config.get('Credential', 'scopes'),
  tech_id=config.get('Credential', 'tech_acct_id')
)

Verbinding maken met Data Distiller

Wanneer aepp is geconfigureerd met uw referenties, kunt u de volgende code gebruiken om een verbinding met Data Distiller te maken en als volgt een interactieve sessie te starten:

from aepp import queryservice

dd_conn = queryservice.QueryService().connection()
dd_cursor = queryservice.InteractiveQuery2(dd_conn)

U kunt dan de datasets in uw zandbak van Experience Platform vragen. Gezien identiteitskaart van een dataset u wilt vragen, kunt u de overeenkomstige lijstnaam van de dienst van de Catalogus terugwinnen en vragen op de lijst in werking stellen:

table_name = 'ecommerce_events'
simple_query = f'''SELECT * FROM {table_name} LIMIT 5'''
dd_cursor.query(simple_query)

Verbind met één enkele dataset voor snellere vraagprestaties

Standaard maakt de gegevensverbinding van Distiller verbinding met alle gegevenssets in uw sandbox. Voor snellere vragen en verminderd middelgebruik, kunt u met een specifieke dataset van belang in plaats daarvan verbinden. U kunt dit doen door het dbname in het Distiller-verbindingsobject Data te wijzigen in {sandbox}:{table_name} :

from aepp import queryservice

sandbox = config.get('Credential', 'sandbox_name')
table_name = 'ecommerce_events'

dd_conn = queryservice.QueryService().connection()
dd_conn['dbname'] = f'{sandbox}:{table_name}'
dd_cursor = queryservice.InteractiveQuery2(dd_conn)