IBM SPSS Modeler にOutlook のデータをシームレスに読み込む方法
本記事では、データサイエンティスト向けのツールとして有名なIBM SPSS Modeler でCData Driver を利用し、各種クラウドサービスのデータを取り込み、予測モデル作成につなげる方法を紹介したいと思います。
IBM SPSS Modeler とは?
IBMが提供するビジュアル・データサイエンスと機械学習(ML)のソリューションです。
https://www.ibm.com/jp-ja/products/spss-modeler
SPSS Modeler はローコードで予測モデルの作成およびモデルの作成に必要なデータ加工などのプレパレーションを実施できます。今回の記事では、このSPSS Modeler にOutlook のデータを取り込んでみたいと思います。データの取得ができれば、予測モデルの作成などに自在に活用できます。
連携シナリオ
さて、今回の記事ではSPSS からOutlook に接続していきますが、このときに必要となるのがCData ODBC ドライバです。
SPSS にはODBC を経由して他サービスに接続する機能が標準提供されています。この機能とCData が提供しているODBC Drivers ラインナップを組み合わせることで、各種クラウドサービスのAPI やデータベースにシームレスにアクセスすることができるようになります。
とは言っても、説明だけではイメージできない部分もあると思うので、実際に連携を試してみましょう。
CData Outlook ODBC Driver のインストール
最初にCData Outlook ODBC Driver を対象のマシンにインストールします。
以下のページから30日間のトライアルがダウンロードできます。
Outlook ドライバーページインストーラーを入手後、対象のマシンでセットアップを進めていきます。
セットアップが完了すると接続設定画面が表示されるので、Outlook への認証に必要な情報を入力します。
OAuth 認証の設定
Microsoft Graph API は認証に OAuth 2.0 を使用します。OAuth 認証情報(Client ID と Client Secret)を取得するには、Microsoft Azure Portal でアプリケーションを登録する必要があります。
OAuth 認証情報の取得
- Azure Portal にログインします。
- Azure Active Directory > App registrations に移動します。
- New registration をクリックして新しいアプリケーションを作成します。
- アプリケーション名を入力し、適切なアカウントの種類を選択します。
- Redirect URI をアプリケーションのコールバック URL に設定します(デスクトップアプリの場合は http://localhost:33333 など)。
- Register をクリックしてアプリケーションを作成します。
- アプリケーションの概要ページで Application (client) ID をコピーします。これが OAuthClientId になります。
- Certificates & secrets に移動して、新しいクライアントシークレットを作成します。
- クライアントシークレットの値をコピーします。これが OAuthClientSecret になります。
- API permissions に移動して、必要な Microsoft Graph API の権限を追加します:
- Mail.Read - メールメッセージへのアクセス用
- Contacts.Read - 連絡先へのアクセス用
- Calendars.Read - カレンダーイベントへのアクセス用
- Tasks.Read - To Do タスクへのアクセス用
- offline_access - リフレッシュトークンの取得用
- Grant admin consent をクリックして、これらの権限を付与します。
OAuth での接続
以下の接続プロパティを設定して接続を確立してください:
- AuthScheme:OAuth に設定します。
- InitiateOAuth:GETANDREFRESH に設定します。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 のどのオブジェクト、項目を利用するか確認しておくと良いでしょう。
SPSS Modeler を立ち上げて新規ストリームを作成
それではSPSS Modeler を使ってOutlook のデータを取り込んでみましょう。
Windows のスタートメニューから「IBM SPSS Modeler Subscription」を立ち上げて、新しいストリームを作成します。
データベース入力を追加
まず「入力」タブにある「データベース」をストリーム上に配置します。
配置したアイコンをダブルクリックするとデータベースの接続設定画面が出てくるので、「データソース」から「新規データベース接続の追加」をクリックします。
すると以下のようにODBC DSNの一覧が表示されるので、先程構成したOutlook のDSNを選択して、「接続」をクリックしましょう。
ユーザー名・パスワードなどの認証情報は事前に入力してあるので、空白のままで構いません。これでOutlook への接続を確立できます。
接続を追加したら、どんなデータを取り込むのか、テーブルまたはSQLクエリーで設定します。
とりあえず手軽に取り込めるテーブル名での指定を行ってみます。「データの選択」をクリックします。
表示されたテーブル・ビューの一覧から取り込みたい対象のテーブルを選択しましょう。
フィルタリング・データ型の設定・データの取得
あとはフィルター条件として、どの項目を取り込むかどうかという設定や、
モデル作成の際に利用するデータ型やロールを設定すれば、データ取得の準備はOKです。
データのプレビューを確認すると、以下のようにOutlook のデータを確認できました。
せっかくなので、「データ検査」を実行してデータの傾向も確認してみましょう。
以下のように各項目のデータの最小・最大・平均、有効な値かどうかなどが確認できます。
このように、とてもシンプルな手順でOutlook のデータをSPSS Modeler に取り込むことができました。
これで、予測モデル作成などより複雑なタスクにOutlook のデータを簡単に活用できます。
おわりに
このようにCData ODBC ドライバと併用することで、270を超えるSaaS、RDB、NoSQL データをSPSS Modeler からコーディングなしで扱うことができます。30日の無償評価版が利用できますので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。
CData ODBC ドライバは日本のユーザー向けに、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。