Jupyter NotebookからData Distillerに接続する

マシンラーニングパイプラインを充実させるには、まずJupyter NotebooksからData Distillerに接続する必要があります。 このドキュメントでは、マシンラーニング環境のPython ノートブックからData Distillerに接続する手順について説明します。

はじめに

このガイドでは、インタラクティブなPython ノートブックについて理解しており、ノートブック環境にアクセスできることを前提としています。 ノートブックは、クラウドベースのマシンラーニング環境内でホストするか、ローカルでJupyter Notebookでホストできます。

接続資格情報の取得 obtain-credentials

Data Distillerやその他のAdobe Experience Platform サービスに接続するには、Experience Platform API資格情報が必要です。 EXPERIENCE PLATFORMへの開発者アクセス権を持つユーザーがAdobe Developer ConsoleでAPI資格情報を作成できます。 データサイエンスワークフロー専用のOauth2 API資格情報を作成し、組織のAdobe システム管理者が資格情報を適切な権限を持つロールに割り当てることをお勧めします。

API資格情報の作成と必要な権限の取得について詳しくは、Experience Platform APIの認証とアクセス ​を参照してください。

データサイエンスに関する推奨権限には、次のものが含まれます。

  • データサイエンスに使用されるサンドボックス (通常はprod
  • データモデリング:​ スキーマの管理
  • データ管理:​ データセットの管理
  • データ取り込み:​ ソースの表示
  • 宛先:​ データセット宛先の管理とアクティブ化
  • クエリサービス:​ クエリの管理

デフォルトでは、役割(およびその役割に割り当てられたAPI資格情報)は、ラベル付きデータへのアクセスがブロックされます。 組織のデータガバナンスポリシーに従い、システム管理者は、データサイエンスの使用に適していると見なされる特定のラベル付きデータへのアクセス権を役割に付与できます。 Experience Platformのお客様は、関連する規制および組織ポリシーを遵守するために、ラベルへのアクセスおよびポリシーを適切に管理する責任があります。

別の設定ファイルに資格情報を保存する store-credentials

資格情報を安全に保つために、コードに資格情報を直接書き込まないようにすることをお勧めします。 代わりに、資格情報を別の設定ファイルに保存し、Experience PlatformとData Distillerに接続するために必要な値を読み取ります。

例として、config.iniという名前のファイルを作成し、次の情報を含めることができます(データセット IDなど、セッション間の保存に役立つ他の情報と共に)。

[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>

ノートブックでは、標準のPython ライブラリのconfigParser パッケージを使用して、資格情報をメモリに読み込むことができます。

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)

次に、コード内の資格情報の値を次のように参照できます。

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

aepp Python ライブラリのインストール install-python-library

aeppは、Adobeが管理するオープンソース Python ライブラリです。他のExperience Platform サービスにリクエストを行う場合に、Data Distillerに接続してクエリを送信する機能を提供します。 aepp ライブラリは、インタラクティブなData Distiller クエリ用のPostgreSQL データベース アダプターパッケージ psycopg2に依存しています。 Data Distillerに接続し、psycopg2のみでExperience Platform データセットをクエリすることは可能ですが、aeppでは、すべてのExperience Platform API サービスにリクエストを行う際の利便性が向上し、さらに機能が追加されます。

環境にaeppおよびpsycopg2をインストールまたはアップグレードするには、ノートブックで%pip魔法コマンドを使用します。

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

次のコードを使用して、資格情報を使用してaepp ライブラリを設定できます。

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')
)

Data Distillerへの接続の作成 create-connection

aeppが資格情報で設定されると、次のコードを使用してData Distillerへの接続を作成し、次のようにインタラクティブセッションを開始できます。

from aepp import queryservice

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

その後、Experience Platform サンドボックスのデータセットをクエリできます。 クエリするデータセットのIDを指定すると、対応するテーブル名をカタログサービスから取得し、テーブルでクエリを実行できます。

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

単一のデータセットに接続して、クエリのパフォーマンスを向上させる connect-to-single-dataset

デフォルトでは、Data Distiller接続は、サンドボックス内のすべてのデータセットに接続されます。 クエリの高速化とリソースの使用量の削減を実現するには、代わりに、特定の関心のあるデータセットに接続します。 これを行うには、Data Distiller接続オブジェクトのdbname{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)

次の手順

このドキュメントでは、お使いのマシンラーニング環境のPython ノートブックからData Distillerに接続する方法について説明しました。 Experience Platformから機能パイプラインを作成して、マシンラーニング環境でカスタムモデルをフィードする次のステップは、​ データセットを探索して分析することです。

recommendation-more-help
experience-platform-help-query-service