Linux/UNIX 上のPython からHubSpot のデータにデータ連携

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

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

最終更新日:2022-11-27

この記事で実現できるHubSpot 連携のシナリオ

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

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

CData ODBC ドライバとは?

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

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

CData ODBC ドライバでは、1.データソースとしてHubSpot の接続を設定、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 HubSpot ...

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

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

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

cdata.odbc.hubspot.ini

... [Driver] DriverManagerEncoding = UTF-16

DSN の変更

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

HubSpot 接続プロパティの取得・設定方法

HubSpot はOAuth 認証 およびPrivateAppToken ベース認証をサポートします。

OAuth

HubSpot は埋め込みOAuth 認証情報を提供しており、デスクトップアプリケーションまたはヘッドレスマシンから簡単に接続できます。 Web アプリケーションから接続するには、カスタムOAuth アプリケーションを作成する必要があります。 OAuth 経由で接続するには、すべての認証フローでAuthSchemeOAuth に設定します。 ヘルプドキュメントでは、利用可能なOAuth フローでのHubSpot への認証について詳しく説明します。 カスタムOAuth アプリケーションの作成についての情報と、すでに埋め込みOAuth 認証情報を持つ認証フローでもカスタムOAuth アプリケーションを作成したほうがよい場合の説明については、「カスタムOAuth アプリケーションの作成」セクション を参照してください。

また、PrivateAppToken ベース認証についてはヘルプドキュメントの「接続の確立」セクションを参照してください。

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

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

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

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

pyodbc のインストール

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

pip install pyodbc

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

import pyodbc

Python でのHubSpot のデータへの接続

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

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

以下は、DSN の構文です。

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

HubSpot へのSQL の実行

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

cursor = cnxn.cursor()

選択

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

import pyodbc cursor = cnxn.cursor() cnxn = pyodbc.connect('DSN=CData HubSpot Source;User=MyUser;Password=MyPassword') cursor.execute("SELECT Slug, PageViews FROM Prospects WHERE Region = 'ONTARIO'") rows = cursor.fetchall() for row in rows: print(row.Slug, row.PageViews)

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

cursor.execute( "SELECT Slug, PageViews FROM Prospects WHERE Region = ?", 'ONTARIO',1)

挿入

INSERT コマンドもexecute メソッドを使用します。ただし、挿入後に変更が失われないためにcommit メソッドを呼び出す必要があります。

cursor.execute("INSERT INTO Prospects (Region) VALUES ('ONTARIO')") cnxn.commit()

更新と削除

挿入の場合と同様に、更新または削除の場合でも、execute を呼び出した後、commit を呼び出す必要があります。

cursor.execute("UPDATE Prospects SET Region = 'ONTARIO'") cnxn.commit()

メタデータの発見

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

cnxn.getinfo(pyodbc.SQL_DATA_SOURCE_NAME)

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

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

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

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

関連コンテンツ

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

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