メインコンテンツへスキップ
詳細については、cdata-connect-ai PyPI ページを参照してください。

前提条件

Python を Connect AI と連携させる前に、以下が必要です。
  • Python >=3.10
  • requests >= 2.28.0
  • ijson >= 3.1.0
  • Connect AI アカウントのデータソース。詳細については、ソース を参照してください。
  • パーソナルアクセストークン(PAT)。Settings ページで PAT を生成してください。認証時のパスワードとして使用するため、コピーしておいてください。

コネクタのインストール

pip install cdata-connect-ai
pandas 統合の場合:pandas サポートを有効にするために full エクストラ付きでコネクタをインストールします。
pip install "cdata-connect-ai[full]"

Connect AI への接続

以下は、Connect AI API に接続して Salesforce 接続の Account テーブルにクエリを実行する Python コードの例です。Connect AI のユーザー名とパスワード(パスワードは前提条件で作成した PAT)を入力してください。
import cdata_connect_ai

conn = cdata_connect_ai.connect(
    username="you@example.com",
    password="<your_personal_access_token>",
)

with conn.cursor() as cur:
    cur.execute("SELECT * FROM [Salesforce1].[Salesforce].[Account]")
    rows = cur.fetchall()

for row in rows:
    print(row)

conn.close()

設定ファイル

PyHOCON 設定ファイルを使用して、コードから認証情報を除外できます。
# config.conf
cdata_api_db {
  username = "you@example.com"
  password = "<your_personal_access_token>"
}
コードは設定ファイルを参照するため、認証情報が含まれません。
import cdata_connect_ai

conn = cdata_connect_ai.connect(config_path="config.conf")

ワークスペースへの接続

Connect AI ワークスペースに接続するには、次のように workspace パラメータを追加します。
conn = cdata_connect_ai.connect(
    username="you@example.com",
    password="<your_personal_access_token>",
    workspace="production",
)

パラメータ化されたクエリ

with conn.cursor() as cur:
    cur.execute(
        "SELECT * FROM [DB].[public].[users] WHERE city = %(city)s LIMIT %(limit)s",
        {"city": "New York", "limit": 10},
    )
    rows = cur.fetchall()

バッチ操作

with conn.cursor() as cur:
    cur.executemany(
        "INSERT INTO [DB].[public].[cities] (city, id) VALUES (@city, @id)",
        [
            {"@city": {"dataType": 5, "value": "New York"}, "@id": {"dataType": 8, "value": 1}},
            {"@city": {"dataType": 5, "value": "London"},   "@id": {"dataType": 8, "value": 2}},
        ],
    )
dataType の値と説明については、データ型を参照してください。

ストアドプロシージャ

with conn.cursor() as cur:
    cur.callproc("[DB].[public].[my_procedure]", ("arg1", "arg2"))
    rows = cur.fetchall()

Pandas 統合

import cdata_connect_ai
import pandas as pd

conn = cdata_connect_ai.connect(
    username="you@example.com",
    password="<your_personal_access_token>",
)

with conn.cursor() as cur:
    cur.execute("SELECT Id, Name, Industry, AnnualRevenue FROM [Salesforce1].[Salesforce].[Account]")
    columns = [desc[0] for desc in cur.description]
    rows = cur.fetchall()

df = pd.DataFrame(rows, columns=columns)
print(df.head())
print(df.describe())

conn.close()

接続オプション

以下の表は、コネクタで使用可能な接続オプションです。
パラメータ説明デフォルト
username認証ユーザー名-
passwordパーソナルアクセストークン-
config_pathPyHOCON 設定ファイルへのパス-
workspaceConnect AI ワークスペース名-
timeoutHTTP リクエストのタイムアウト(秒)90
max_retries一時的な 5xx エラー時の再試行回数3
retry_delay再試行間のベース遅延(秒)1.0