R から JDBC 経由でServiceNowののデータを分析

Jerod Johnson
Jerod Johnson
Senior Technology Evangelist
CData JDBC Driver for ServiceNow を使って、お好みの開発環境と標準的な R 関数でServiceNow のデータを分析できます。

R と Java がインストールされている環境であれば、純粋な R スクリプトと標準的な SQL を使用してServiceNow のデータにアクセスできます。CData JDBC Driver for ServiceNow と RJDBC パッケージを使えば、R からリモートのServiceNow のデータを操作できます。CData Driver を使用することで、業界で実績のある標準規格に準拠したドライバーを活用し、人気のオープンソース言語 R でデータにアクセスできます。この記事では、ドライバーを使ってServiceNowに SQL クエリを実行し、標準的な R 関数を呼び出してServiceNow のデータを可視化する方法を説明します。

ServiceNow データ連携について

CData は、ServiceNow のライブデータへのアクセスと統合を簡素化します。お客様は CData の接続機能を以下の目的で活用しています:

  • CData はデータには REST API を、スキーマには SOAP API を使用するため、最適化されたパフォーマンスを実現できます。
  • Schedules、Timelines、Questions、Syslogs などの ServiceNow オブジェクトの読み取り、書き込み、更新、削除ができます。
  • SQL ストアドプロシージャを使用して、カートへのアイテム追加、注文の送信、添付ファイルのダウンロードなどのアクションを実行できます。
  • Basic(ユーザー名とパスワード)、OKTA、ADFS、OneLogin、PingFederate 認証スキームを含め、ServiceNow に安全に認証できます。

多くのユーザーは、Tableau、Power BI、Excel などのお気に入りの分析ツールからライブ ServiceNow データにアクセスし、CData ソリューションを使用して ServiceNow データをデータベースやデータウェアハウスに統合しています。


はじめに


R のインストール

マルチスレッドとマネージドコードによるドライバーのパフォーマンス向上を最大限に活かすには、マルチスレッド対応の Microsoft R Open を使用するか、BLAS/LAPACK ライブラリとリンクされたオープンソース R を使用します。この記事では Microsoft R Open 3.2.3 を使用しています。このバージョンは、2016年1月1日時点の CRAN リポジトリのスナップショットからパッケージをインストールするように事前設定されており、再現性が確保されています。

RJDBC パッケージの読み込み

ドライバーを使用するには、RJDBC パッケージをダウンロードしてください。 RJDBC パッケージをインストールしたら、以下のコードでパッケージを読み込みます。

library(RJDBC)

ServiceNowに JDBC データソースとして接続

ServiceNowに JDBC データソースとして接続するには、以下の情報が必要です。

  • Driver Class: cdata.jdbc.servicenow.ServiceNowDriver に設定します。
  • Classpath: ドライバー JAR ファイルの場所を設定します。デフォルトでは、インストールフォルダの lib サブフォルダです。

dbConnect や dbSendQuery などの DBI 関数は、R でデータアクセスコードを記述するための統一されたインターフェースを提供します。以下のコードで、CData JDBC Driver for ServiceNow に JDBC リクエストを行う DBI ドライバーを初期化します。

driver <- JDBC(driverClass = "cdata.jdbc.servicenow.ServiceNowDriver", classPath = "MyInstallationDir\lib\cdata.jdbc.servicenow.jar", identifier.quote = "'")

これで DBI 関数を使用してServiceNowに接続し、SQL クエリを実行できます。dbConnect 関数で JDBC 接続を初期化します。

ServiceNow はOAuth 2.0 認証標準を利用しています。OAuth を使って認証するには、ServiceNow にOAuth アプリを登録してOAuthClientId を取得しなければなりません。OAuth 値の他に、Instance、User、およびPassword の指定が必要です。

OAuth 認証を介した接続について詳しくは、ヘルプドキュメントの「OAuth 認証の使用」を参照してください。

組み込みの接続文字列デザイナー

JDBC URL の構築には、ServiceNow JDBC Driver に組み込まれている接続文字列デザイナーが便利です。JAR ファイルをダブルクリックするか、コマンドラインから JAR ファイルを実行してください。

java -jar cdata.jdbc.servicenow.jar

接続プロパティを入力し、接続文字列をクリップボードにコピーします。

以下は、一般的な JDBC 接続文字列を含む dbConnect 呼び出しの例です。

conn <- dbConnect(driver,"jdbc:servicenow:OAuthClientId=MyOAuthClientId;OAuthClientSecret=MyOAuthClientSecret;Username=MyUsername;Password=MyPassword;Instance=MyInstance;")

スキーマの検出

このドライバーは、ServiceNow API をリレーショナルテーブル、ビュー、ストアドプロシージャとしてモデル化します。以下のコードでテーブルの一覧を取得できます。

dbListTables(conn)

SQL クエリの実行

dbGetQuery 関数を使用して、ServiceNow API でサポートされている任意の SQL クエリを実行できます。

incident <- dbGetQuery(conn,"SELECT sys_id, priority FROM incident")

以下のコマンドで、結果をデータビューアウィンドウに表示できます。

View(incident)

ServiceNow のデータのプロット

これで、CRAN リポジトリで利用可能なデータ可視化パッケージを使ってServiceNow のデータを分析できます。組み込みのバープロット関数でシンプルな棒グラフを作成できます。

par(las=2,ps=10,mar=c(5,15,4,2))
barplot(incident$priority, main="ServiceNow incident", names.arg = incident$sys_id, horiz=TRUE)

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

ServiceNow Driver の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

ServiceNow Icon ServiceNow JDBC Driver お問い合わせ

ServiceNow 連携のパワフルなJava/J2EE アプリケーションを素早く作成して配布。