SAP BTP上のPostgreSQLを使ってみよう!

SAP BTP上のPostgreSQLはCloud Foundry開発者向けのSAPのサービスで、次のプロジェクトで使用されます。

  • CAP (SAP Cloud Application Programming Model)プロジェクト
  • CAP以外プロジェクト(一般的なPostgreSQLのプロジェクト)

SAP BTP上のPostgreSQLをどのように使えるのか解説していきます。

SAP BTP上のPostgreSQLとは

PostgreSQLはオブジェクトリレーショナルデータベース管理システム(ORDBMS)であり、無料でダウンロードして使用でき、強力なオープンソースデータベースです。

PostgreSQLはSQL標準をサポートし、多くの最新機能を提供します。

  • 複雑なクエリ
  • 外部キー
  • トリガー
  • 更新可能なビュー
  • トランザクションの整合性
  • マルチバージョン同時実行制御

また、PostgreSQLは、新しいものを追加するなど、さまざまな方法でユーザが拡張できます。

  • データ型
  • 関数
  • 演算子
  • 集計関数
  • インデックスメソッド
  • 手続き型言語

PostgreSQLについて、詳しくはhttps://www.postgresql.org/docs/をご参考ください。

SAP BTP(Systems, Applications and Products in data processing Business Technology Platform)の色んなサービスの中に、PaaSプロバイダーとしてPostgreSQLを利用できます。

グラフィカル ユーザー インターフェイス, テキスト, アプリケーション, メール

自動的に生成された説明

SAP BTP上のPostgreSQLは、次の2種類のプロジェクトで使用されます。

1)CAP (SAP Cloud Application Programming Model)プロジェクト

CAP内では、SAP CDS (Core Data Services)との組み合わせの所に、PostgreSQLを使用できるために、次のモジュール(Node.js)が必要です

  • cds-pg:SAP CDS用のPostgreSQLアダプター
  • cds-dbm:CAPでのPostgreSQLのデータベース展開

2)CAPに依存しないプロジェクト

一般的なPostgreSQLのプロジェクトです。この記事では、2番目の「CAPに依存しないプロジェクト」について説明させていただきます。

それでは次にCAPプロジェクトについてご紹介します。

SAP BTP上のPostgreSQLを使ってCAP以外のプロジェクトを作成する

1)プロジェクトコンポーネントを紹介します

    ➤フロントエンド:React.Jsライブラリを導入する

        ◇SAP BTP UI5ライブラリを追加する。

    ➤バックエンド:MVCモデルのSails.Jsフレームワークを導入する

        ◇SAP BTP PostgreSQL:データベースを保存します

        ◇SAP BTP Object Store:画像、テスト結果を保存します

    ➤クライエントアプリ:フロントエンドを含んで、クライエントのリソースをやり取りするElectronアプリです

データベースへ接続するために、接続情報が必要ですが、次のSAP BTP Cockpit画面で必要な情報を確認できます。

2)SAP BTP Cockpitのインスタンスの環境変数

  1. BTP PostgreSQLの情報を確認する
グラフィカル ユーザー インターフェイス, テキスト, アプリケーション, メール

自動的に生成された説明

SAP BTP Cockpit画面の「View」をクリックするとPostgreSQLの情報を確認できます。

  1. VCAP_SERVICES等の情報を確認する
グラフィカル ユーザー インターフェイス, テキスト, アプリケーション, メール

自動的に生成された説明

例として上記のパスでは環境変数のVCAP_SERVICES(データベース情報、オブジェクトストア情報)、VCAP_APPLICATIONを確認、取得できます。

  1. バックエンドでデータベースに接続する

接続情報が分かったら、プロジェクトのproduction.js等の実装でBTP PostgreSQLに接続できます。

テキスト

自動的に生成された説明

uri変数の中に、username, password, hostname, dbname, portの情報があります。

接続情報が分かったら、サードパーティのソフトウェアで直接データを確認することもできます。

SAP S/4HANA 導入支援サービス 基本ガイドブック

ローカルからSAP BTP上のPostgreSQLに直接接続する

  1. 最新版のCF CLIをダウンロードおよびインストール

インストール先https://github.com/cloudfoundry/cli/releases

インストール時のオプションはデフォルトのままで大丈夫です。

  1. コマンドプロンプトからコマンドを実行

➤SAP Cloud Platformにログイン

cf login -a <エンドポイント> -u <ユーザ名> -p <パスワード>

エンドポイントhttps://api.cf.jp10.hana.ondemand.com
ユーザ名BTPアカウントのユーザ名
パスワードBTPアカウントのパスワード

➤SSHトンネルを設定

cf ssh -L <ローカルポート>:<リモートホスト名>:<リモートポート> <アプリケーション名>

ローカルポート(任意)60606
リモートホスト名SAP BTP Cockpit画面からの情報
リモートポートSAP BTP Cockpit画面からの情報
接続するアプリケーション名SAP BTP Cockpit画面からの情報
グラフィカル ユーザー インターフェイス, テキスト, アプリケーション, メール

自動的に生成された説明

Viewをクリックすると

  • リモートホスト名
  • リモートポート
  • 接続するアプリケーション名を確認できます。

※コマンドが通らない場合、ローカルポートをファイアウォールで許可を行う

  1. ツールからPostgreSQLへ接続

今回は「A5:SQL Mk-2」ツールをインストールして、DBへ接続します。

上記の「cf login」、「cf ssh」をした後、「A5:SQL Mk-2」を起動します。

グラフィカル ユーザー インターフェイス, テキスト, アプリケーション, メール

自動的に生成された説明
  • データベースを追加します
  • PostgreSQL(直接接続)」をクリックします
グラフィカル ユーザー インターフェイス, アプリケーション

自動的に生成された説明
グラフィカル ユーザー インターフェイス, アプリケーション

自動的に生成された説明
  • DBタイプ:PostgreSQL
  • サーバー名: localhost
  • ボート番号:上記の「SSHトンネルを設定」での任意ポート番号です
  • データベース名
  • ユーザーID
  • パスワード

は上記の「BTP PostgreSQLの情報を確認する」

グラフィカル ユーザー インターフェイス, テキスト, アプリケーション

自動的に生成された説明
  • 優先(SSL接続を優先)を選択します
  • 「サーバー証明書の有効期間を無視する」をチェックします
  • 「サーバー証明書の制約を無視する」をチェックします
  • 「サーバー証明書を信用する」をチェックします

まとめ

SAP BTP上のPostgreSQLを使用することは、SAP HANAの完全に置き換え可能なソリューションであり、コストを節約するのに役立ちます。さらに、他のCAPプロジェクトとリソースとデータを共有するPostgreSQLを使用して通常のアプリケーションを開発することもできます。

本記事で説明されていることにより、SAP BTP上のPostgreSQLを使用してCAP以外のアプリケーションを開発できます。サードパーティのソフトウェアで直接データを確認することもできます。

SAP BTP上のPostgreSQLの使い方は以下のリンクをご覧ください。

https://help.sap.com/viewer/c92112ee69784c3383a0fb8361156a6f/Cloud/en-US/b045b64925a544689dd839266a23c89b.html

パソナテックではSAP S4/HANAマイグレーションを検討する際に欠かせない、考慮すべきポイントをまとめた入門資料「SAP S4/HANAマイグレーションで知っておくべきこと、やっておくべきこととは?」をご用意しました。本資料は、SAP S4/HANAマイグレーションへ進む方へ必見の資料です。ぜひダウンロードいただき、ご覧ください。

参考した資料:

SAP FioriとBTPが理解できる基本ガイドブック
SAP FioriとBTPが理解できる基本ガイドブック