Linux/UNIX 上のPython からSalesforce Data Cloud のデータにデータ連携

CData ODBC Driver を使って、Linux/UNIX 上のPython アプリケーションからSalesforce Data Cloud のデータへのデータ連携を実現します。

古川えりか
コンテンツスペシャリスト

最終更新日:2022-11-27

この記事で実現できるSalesforce Data Cloud 連携のシナリオ

こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。

CData ODBC Driver for SalesforceDataCloud を使えば、豊富なPython のエコシステムを使ったデータ連携が簡単に行えます。CData Linux/UNIX ODBC Driver for SalesforceDataCloud とpyodbc module を使って、簡単にSalesforce Data Cloud に連携するPython アプリケーションを構築したり、データ分析が手軽に行えます。本記事では、pyodbc のビルトイン関数を使って、Salesforce Data Cloud に接続し、クエリを実行、表示する方法を説明します。

CData ODBC ドライバとは?

CData ODBC ドライバは、以下のような特徴を持ったリアルタイムデータ連携ソリューションです。

  1. Salesforce Data Cloud をはじめとする、CRM、MA、会計ツールなど多様なカテゴリの270種類以上のSaaS / オンプレミスデータソースに対応
  2. 多様なアプリケーション、ツールにSalesforce Data Cloud のデータを連携
  3. ノーコードでの手軽な接続設定
  4. 標準 SQL での柔軟なデータ読み込み・書き込み

CData ODBC ドライバでは、1.データソースとしてSalesforce Data Cloud の接続を設定、2.Linux 側でODBC Driver との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。

CData ODBC Drivers をUNIX/Linux マシンで利用

CData ODBC Drivers は、Ubuntu、Debian、RHEL、CentOS、Fedora などの様々なRed Hat ベースおよびDebian ベースのシステムでサポートされています。必要なライブラリとパッケージもいくつかあり、システムによってはそれらがデフォルトでインストールされる場合があります。Linux オペレーティングシステムのサポートされているバージョンと必要なライブラリの詳細については、ヘルプドキュメント(オンラインでインストールおよび検索)の[はじめに]セクションを参照してください。

Driver Manager のインストール

ドライバーをインストールする前に、システムにドライバーマネジャーがあることを確認してください。この記事では、広くサポートされている無料のオープンソースODBC ドライバーマネジャーであるunixODBC を使用します。

Ubuntu のようなDebian ベースのシステムの場合、APT パッケージマネジャーを使用してunixODBC をインストールできます。

$ sudo apt-get install unixODBC unixODBC-dev

Red Hat Linux に基づくシステムの場合、yum またはdnf を使用して、unixODBC をインストールできます。

$ sudo yum install unixODBC unixODBC-devel

unixODBC ドライバーマネジャーは、odbcinst.ini ファイルからドライバーに関する情報を読み取り、odbc.ini ファイルからデータソースに関する情報を読み取ります。 ターミナルに以下のコマンドを入力すると、システム上の構成ファイルの場所を特定できます。

$ odbcinst -j

コマンドの出力には、ODBC データソースと登録済みのODBC ドライバーの構成ファイルの場所が表示されます。 ユーザーデータソースには、odbc.ini が存在するホームフォルダを持つユーザーアカウントからのみアクセスできます。システムのデータソースには、すべてのユーザーがアクセスできます。 以下は、このコマンドの出力例です。

DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini FILE DATA SOURCES..: /etc/ODBCDataSources USER DATA SOURCES..: /home/myuser/.odbc.ini SQLULEN Size.......:8 SQLLEN Size........:8 SQLSETPOSIROW Size.:8

ドライバーのインストール

標準パッケージ形式(Debian .deb パッケージ形式または.rpm ファイル形式)でドライバーをダウンロードすることができます。フィルをダウンロードしたら、ターミナルからドライバーをインストールできます。

ドライバーインストーラーは、ドライバーをunixODBC に登録し、システムDSN を作成します。これは、後にODBC 接続をサポートするツールやアプリケーションで使用できます。

Ubuntu のようなDebian ベースのシステムの場合、sudo を付けるか、root として次のコマンドを実行します。 $ dpkg -i /path/to/package.deb

Red Hat システムおよび.rpms をサポートするその他のシステムの場合には、sudo またはroot として以下のコマンドを実行します。 $ rpm -i /path/to/package.rpm

ドライバーがインストールされると、unixODBC ドライバーマネジャーを使用して、登録されたドライバーと定義されたデータソースを一覧表示できます。

登録済みドライバーを一覧表示

$ odbcinst -q -d CData ODBC Driver for SalesforceDataCloud ...

定義されたデータソースを一覧表示

$ odbcinst -q -s CData SalesforceDataCloud Source ...

CData ODBC Driver for SalesforceDataCloud をunixODBC で使用するには、ドライバーがUTF-16 を使用するように構成されていることを確認してください。これを行うには、以下のように、インストール場所のlib フォルダ(通常は、/opt/cdata/cdata-odbc-driver-for-salesforcedatacloud) にあるドライバーのINI ファイル(cdata.odbc.salesforcedatacloud.ini) を編集します。

cdata.odbc.salesforcedatacloud.ini

... [Driver] DriverManagerEncoding = UTF-16

DSN の変更

ドライバーのインストールにより、システムDSN が事前定義されます。システムデータソースファイル(/etc/odbc.ini)を編集し、必要な接続プロパティを定義することで、DSN を変更できます。さらに、$HOME/.odbc.ini で変更するためにroot アクセスを必要としない、ユーザー固有のDSN を作成できます。

Salesforce Data Cloud は、OAuth 標準による認証をサポートしています。

OAuth

AuthSchemeOAuth に設定します。

デスクトップアプリケーション

CData は、デスクトップでの認証を簡略化する埋め込みOAuth アプリケーションを提供します。

また、Salesforce Data Cloud コンソールで設定および登録するカスタムOAuth アプリケーションを介してデスクトップから認証することもできます。詳しくは、ヘルプドキュメントカスタムOAuth アプリの作成を参照してください。

接続する前に、次のプロパティを設定します。

  • InitiateOAuthGETANDREFRESHInitiateOAuth を使えば、繰り返しOAuth の交換を行ったり、手動でOAuthAccessToken を設定する必要はなくなります。
  • OAuthClientId (カスタムアプリケーションのみ):カスタムOAuth アプリケーションの登録時に割り当てられたクライアントID。
  • OAuthClientSecret (カスタムアプリケーションのみ):カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。

接続すると、本製品 はデフォルトブラウザでSalesforce Data Cloud のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。

以下のようにドライバーがOAuth プロセスを完了します。

  • コールバックURL からアクセストークンを取得します。
  • 古いトークンの期限が切れたときは、新しいアクセストークンを取得します。
  • OAuthSettingsLocation にOAuth 値を保存し、接続間で永続化します。
  • Web アプリケーションやヘッドレスマシンを含むその他のOAuth メソッドについては、ヘルプドキュメントを参照してください。

    /etc/odbc.ini または$HOME/.odbc.ini

    [CData SalesforceDataCloud Source] Driver = CData ODBC Driver for SalesforceDataCloud Description = My Description

    これらの構成ファイルの使用に関する具体的な情報については、、ヘルプドキュメントを参照してください。

    以下のステップに従ってpyodbc をインストールし、Python オブジェクトを介してSalesforce Data Cloud へのアクセスを開始できます。

    pyodbc のインストール

    pip ユーティリティを使用してモジュールをインストールできます。

    pip install pyodbc

    必ず以下のコードでモジュールをインポートしてください。

    import pyodbc

    Python でのSalesforce Data Cloud のデータへの接続

    これで、ODBC 接続文字列またはDSN で接続できます。以下は、接続文字列の構文です。

    cnxn = pyodbc.connect('DRIVER={CData ODBC Driver for SalesforceDataCloud};')

    以下は、DSN の構文です。

    cnxn = pyodbc.connect('DSN=CData SalesforceDataCloud Sys;')

    Salesforce Data Cloud へのSQL の実行

    Cursor をインスタンス化し、Cursor クラスのexecute メソッドを使用してSQL ステートメントを実行します。

    cursor = cnxn.cursor()

    選択

    fetchallfetchone、およびfetchmany を使用し、SELECT ステートメントから返されたRows を取得できます。

    import pyodbc cursor = cnxn.cursor() cnxn = pyodbc.connect('DSN=CData SalesforceDataCloud Source;User=MyUser;Password=MyPassword') cursor.execute("SELECT [Account ID], [Account Name] FROM Account WHERE EmployeeCount = '250'") rows = cursor.fetchall() for row in rows: print(row.[Account ID], row.[Account Name])

    パラメータ化されたクエリをシーケンスまたは因数リストで提供できます。

    cursor.execute( "SELECT [Account ID], [Account Name] FROM Account WHERE EmployeeCount = ?", '250',1)

    メタデータの発見

    getinfo メソッドを使用してデータソースやドライバーの機能に関する情報などのデータを取得できます。getinfo メソッドは、入力をODBC SQLGetInfo メソッドに渡します。

    cnxn.getinfo(pyodbc.SQL_DATA_SOURCE_NAME)

    CData ODBC Driver for SalesforceDataCloud を使用してSalesforce Data Cloud に接続できるLinux/UNIX 環境で、Python アプリを構築することができるようになりました。

    Salesforce Data Cloud からLinux へのデータ連携には、ぜひCData ODBC ドライバをご利用ください

    このようにCData ODBC ドライバと併用することで、270を超えるSaaS、NoSQL データをコーディングなしで扱うことができます。30日の無償評価版が利用できますので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。

    CData ODBC ドライバは日本のユーザー向けに、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。