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

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

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

R のインストール

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

RJDBC パッケージの読み込み

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

library(RJDBC)

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

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

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

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

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

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

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

Azure DevOps アカウントに接続するには、Profile -> Organizations に移動し、アカウントの組織名を取得します。Organization プロパティをこの値に設定します。

Note: 複数のカタログやスキーマに存在するテーブル名もあります。テーブルをクエリする際は、Catalog およびSchema 接続プロパティ、または完全修飾テーブル名のいずれかでカタログとスキーマを指定する必要があります。

Azure DevOps への認証

Azure DevOps は、Basic 認証とAzure AD(OAuth ベース)認証の両方をサポートします。

Basic

Basic 認証でAzure DevOps に接続する場合、OrganizationPersonalAccessToken の両方を指定します。 パーソナルアクセストークンを生成するには、Azure DevOps 組織アカウントにログインし、Profile -> Personal Access Tokens -> New Token に移動します。生成されたトークンが表示されます。

Azure AD

Azure AD は、Microsoft のマルチテナント、クラウドベースのディレクトリおよびID 管理サービスです。 これはユーザーベースの認証で、AuthSchemeAzureAD に設定し、Organization をAzure DevOps Organization の名前に設定する必要があります。 Web アプリケーションを介したAzure AD への認証には、必ずカスタムOAuth アプリケーションの作成が必要です。 詳しい認証方法は、ヘルプドキュメント の「Azure DevOps への認証」セクションを参照してください。

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

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

java -jar cdata.jdbc.azuredevops.jar

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

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

conn <- dbConnect(driver,"jdbc:azuredevops:AuthScheme=Basic;Organization=MyAzureDevOpsOrganization;ProjectId=MyProjectId;PersonalAccessToken=MyPAT;")

スキーマの検出

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

dbListTables(conn)

SQL クエリの実行

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

builds <- dbGetQuery(conn,"SELECT Id, BuildNumber FROM Builds WHERE Reason = 'Manual'")

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

View(builds)

Azure DevOps のデータのプロット

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

par(las=2,ps=10,mar=c(5,15,4,2))
barplot(builds$BuildNumber, main="Azure DevOps Builds", names.arg = builds$Id, horiz=TRUE)

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

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

 ダウンロード

詳細:

Azure DevOps Icon Azure DevOps JDBC Driver お問い合わせ

Azure DevOps データを組み込んだパワフルなJava アプリケーションを短時間・低コストで作成して配布できます。