各製品の資料を入手。
詳細はこちら →SAP HANA XS Advanced のデータをR で分析:JDBC での接続
CData JDBC Driver で標準的なR 関数とお好みの開発環境を使ってSAP HANA XS Advanced を分析。
最終更新日:2023-09-21
この記事で実現できるSAP HANA XS Advanced 連携のシナリオ
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
CData JDBC Driver for SAPHanaXSA とRJDBC package を使って、R でリモートSAP HANA XS Advanced データ を利用できます。CData Driver を使うことで、業界が認めた基準で書かれたドライバーを活用して、オープンソースでポピュラーなR 言語のデータにアクセスできます。この記事では、ドライバーを使ってSAP HANA XS Advanced にSQL クエリを実行する方法、および標準R 関数を呼び出してSAP HANA XS Advanced をビジュアライズする方法について説明します。
R をインストール
マルチスレッドのMicrosoft R Open を実行すること、またはBLAS/LAPACK ライブラリにリンクされたオープン R を実行することによって、マルチスレッドおよびマネージドコードから利益を得られたドライバーのパフォーマンスにマッチできます。ここでは、Microsoft R Open 3.2.3 を使用します。CRAN レポジトリのJan. 1, 2016 snapshot からパッケージをインストールするために事前設定されています。このsnapshot は再現性を保証します。
RJDBC パッケージをロード
ドライバーを使うにはRJDBC パッケージをダウンロードします。RJDBC パッケージをインストールしたら、次のコードを入力してパッケージをロードします。
library(RJDBC)
JDBC データソースとしてSAP HANA XS Advanced に接続
下記の情報を使いSAP HANA XS Advanced にJDBC データソースとして接続します。
- Driver Class:cdata.jdbc.saphanaxsa.SAPHanaXSADriver に設定。
- Classpath:Driver JAR の場所を設定します。デフォルトではインストールディレクトリの[lib]サブフォルダです。
dbConnect やdbSendQuery のようなDBI 関数は、R にデータアクセスコードを書くための統一インターフェースを提供します。
driver <- JDBC(driverClass = "cdata.jdbc.saphanaxsa.SAPHanaXSADriver", classPath = "MyInstallationDir\lib\cdata.jdbc.saphanaxsa.jar", identifier.quote = "'")
これで、DBI 関数を使ってSAP HANA XS Advanced に接続しSQL クエリを実行する準備が整いました。dbConnect 関数を使ってJDBC 接続を初期化します。一般的なJDBC 接続文字列は次のとおりです。
conn <- dbConnect(driver,"OAuthClientID=my-ouath-client-id;OAuthClientSecret=my-oauth-client-secret;URL=https://hxehost:51027/euro.xsodata;CallbackURL=http://localhost:33333;")
SAP HANA XSA 接続プロパティの取得・設定方法
SAP HANA XSA はOAuth 認証標準を利用しています。接続する前に、SAP HANA XSA OData サービスを確立する必要があります。ヘルプドキュメントの「カスタムOAuth アプリの作成」セクションを参照してください。
OAuthPassword グラント種別を使用してSAP HANA XSA に接続するには、以下を設定します。
- OAuthClientId:UAA サービスJSON ファイルで指定されたClient Id に設定。
- OAuthClientSecret:UAA サービスJSON ファイルで指定されたClient Secret に設定。
- Url:OData サービスエンドポイントに設定。
- XSUAAURL:UAA サービスURL に設定。
- User:アカウントのユーザー名に設定。
- Password:アカウントのパスワードに設定。
OData サービスを設定したら、カスタムクレデンシャルを使用して接続を確立できます。
スキーマ Discovery
ドライバーはSAP HANA XS Advanced API をリレーショナルデータベース、ビュー、ストアドプロシージャとしてモデルします。次のコードを使ってテーブルリストを検出します。
dbListTables(conn)
SQL クエリの実行
dbGetQuery 関数を使ってSAP HANA XS Advanced API がサポートするすべてのSQL クエリを実行できます:
<- dbGetQuery(conn,"SELECT , FROM WHERE = ''")
次のコマンドを使って、結果を[data viewer]ウィンドウで見ることができます。
View()
SAP HANA XS Advanced データ をプロット
CRAN レポジトリで利用可能なあらゆるデータ初期化パッケージを使ってSAP HANA XS Advanced を分析する準備が整いました。ビルトインバーのplot 関数を使って簡単なバーを作成できます。
par(las=2,ps=10,mar=c(5,15,4,2)) barplot($, main="SAP HANA XS Advanced ", names.arg = $, horiz=TRUE)
