IBM SPSS Modeler にOutlook のデータをシームレスに読み込む方法

杉本和也
杉本和也
リードエンジニア
IBM SPSS Modeler とCData ODBC ドライバを使ってOutlook のデータを取り込む方法をご紹介します。



本記事では、データサイエンティスト向けのツールとして有名なIBM SPSS Modeler でCData Driver を利用し、各種クラウドサービスのデータを取り込み、予測モデル作成につなげる方法を紹介したいと思います。

IBM SPSS Modeler とは?

IBMが提供するビジュアル・データサイエンスと機械学習(ML)のソリューションです。

https://www.ibm.com/jp-ja/products/spss-modeler SPSS公式ウェブサイト

SPSS Modeler はローコードで予測モデルの作成およびモデルの作成に必要なデータ加工などのプレパレーションを実施できます。今回の記事では、このSPSS Modeler にOutlook のデータを取り込んでみたいと思います。データの取得ができれば、予測モデルの作成などに自在に活用できます。

連携シナリオ

さて、今回の記事ではSPSS からOutlook に接続していきますが、このときに必要となるのがCData ODBC ドライバです。

SPSS にはODBC を経由して他サービスに接続する機能が標準提供されています。この機能とCData が提供しているODBC Drivers ラインナップを組み合わせることで、各種クラウドサービスのAPI やデータベースにシームレスにアクセスすることができるようになります。

SPSSのODBC接続画面

とは言っても、説明だけではイメージできない部分もあると思うので、実際に連携を試してみましょう。

CData Outlook ODBC Driver のインストール

最初にCData Outlook ODBC Driver を対象のマシンにインストールします。

以下のページから30日間のトライアルがダウンロードできます。

Outlook ドライバーページ

インストーラーを入手後、対象のマシンでセットアップを進めていきます。

ODBCインストーラー画面

セットアップが完了すると接続設定画面が表示されるので、Outlook への認証に必要な情報を入力します。

OAuth 認証の設定

Microsoft Graph API は認証に OAuth 2.0 を使用します。OAuth 認証情報(Client ID と Client Secret)を取得するには、Microsoft Azure Portal でアプリケーションを登録する必要があります。

OAuth 認証情報の取得

  1. Azure Portal にログインします。
  2. Azure Active Directory > App registrations に移動します。
  3. New registration をクリックして新しいアプリケーションを作成します。
  4. アプリケーション名を入力し、適切なアカウントの種類を選択します。
  5. Redirect URI をアプリケーションのコールバック URL に設定します(デスクトップアプリの場合は http://localhost:33333 など)。
  6. Register をクリックしてアプリケーションを作成します。
  7. アプリケーションの概要ページで Application (client) ID をコピーします。これが OAuthClientId になります。
  8. Certificates & secrets に移動して、新しいクライアントシークレットを作成します。
  9. クライアントシークレットの値をコピーします。これが OAuthClientSecret になります。
  10. API permissions に移動して、必要な Microsoft Graph API の権限を追加します:
    • Mail.Read - メールメッセージへのアクセス用
    • Contacts.Read - 連絡先へのアクセス用
    • Calendars.Read - カレンダーイベントへのアクセス用
    • Tasks.Read - To Do タスクへのアクセス用
    • offline_access - リフレッシュトークンの取得用
  11. Grant admin consent をクリックして、これらの権限を付与します。

OAuth での接続

以下の接続プロパティを設定して接続を確立してください:

  • AuthScheme:OAuth に設定します。
  • InitiateOAuthGETANDREFRESH に設定します。CData API Profile for Outlook が OAuth プロセスを自動的に進め、アクセストークンを取得します。
  • OAuthClientId:Azure Portal の Application (client) ID に設定します。
  • OAuthClientSecret:Azure Portal のクライアントシークレットの値に設定します。
  • TenantId:Azure AD のテナント識別子(GUID または 'contoso.onmicrosoft.com' のようなドメイン名)に設定します。
  • CallbackURL:アプリ登録で指定したリダイレクト URI に設定します(デスクトップアプリの場合は http://localhost:33333 など)。

接続文字列の例

Profile=C:\profiles\Outlook.apip;AuthScheme=OAuth;InitiateOAuth=GETANDREFRESH;OAuthClientId=your_client_id;OAuthClientSecret=your_client_secret;TenantId=your_tenant_id;CallbackUrl=http://localhost:33333;

あとは「接続のテスト」ボタンをクリックし、接続が成功したら、「接続ウィザード」の「OK」ボタンをクリックして保存します。

接続完了後、メタデータタブから利用できるテーブル・ビューの情報を確認できます。

ここで予めOutlook のどのオブジェクト、項目を利用するか確認しておくと良いでしょう。

Outlookデータのメタデータ確認画面

SPSS Modeler を立ち上げて新規ストリームを作成

それではSPSS Modeler を使ってOutlook のデータを取り込んでみましょう。

Windows のスタートメニューから「IBM SPSS Modeler Subscription」を立ち上げて、新しいストリームを作成します。

新規ストリーム画面

データベース入力を追加

まず「入力」タブにある「データベース」をストリーム上に配置します。

データベースをストリームに配置

配置したアイコンをダブルクリックするとデータベースの接続設定画面が出てくるので、「データソース」から「新規データベース接続の追加」をクリックします。

新規データベース接続の追加

すると以下のようにODBC DSNの一覧が表示されるので、先程構成したOutlook のDSNを選択して、「接続」をクリックしましょう。

ユーザー名・パスワードなどの認証情報は事前に入力してあるので、空白のままで構いません。これでOutlook への接続を確立できます。

DSNの選択と接続画面

接続を追加したら、どんなデータを取り込むのか、テーブルまたはSQLクエリーで設定します。

とりあえず手軽に取り込めるテーブル名での指定を行ってみます。「データの選択」をクリックします。

Outlookデータの取得

表示されたテーブル・ビューの一覧から取り込みたい対象のテーブルを選択しましょう。

フィルタリング・データ型の設定・データの取得

あとはフィルター条件として、どの項目を取り込むかどうかという設定や、

フィルタリング画面

モデル作成の際に利用するデータ型やロールを設定すれば、データ取得の準備はOKです。

データ型やロールを指定する画面

データのプレビューを確認すると、以下のようにOutlook のデータを確認できました。

データのプレビュー

せっかくなので、「データ検査」を実行してデータの傾向も確認してみましょう。

データ検査ボタンを選択

以下のように各項目のデータの最小・最大・平均、有効な値かどうかなどが確認できます。

データの集計値を確認

このように、とてもシンプルな手順でOutlook のデータをSPSS Modeler に取り込むことができました。

これで、予測モデル作成などより複雑なタスクにOutlook のデータを簡単に活用できます。

おわりに

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

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

はじめる準備はできましたか?

API Driver で Outlook のライブデータに接続

Outlook に接続