LoginSignup
2

More than 1 year has passed since last update.

【SCP】SAP HANA Cloud Trialを使ったCAPプロジェクトを作成

Last updated at Posted at 2020-12-09

はじめに

この記事は SAP Advent Calendar 2020 の12月10日分の記事として執筆しています。

2020/6/30から、SAP HANA Cloudのトライアル版が利用できるようになりました。
この記事では、SAP HANA Cloudのトライアル版の設定と、CAP(Cloud Application Programming Model)で作成したプロジェクトでSAP HANA Cloudを使用する方法について確認します。

※CAPとは、Cloud Application Programming Modelの略で、CDSをベースにODataサービスを開発する手法です。
参考:【CAP】CAPで作ったODataをUI5アプリで使う(1) CAPサービスの作成

SAP HANA Cloud Trialは、これまでのトライアル環境とどう違うのか?

こちらの動画で、これまで提供されていたトライアル環境のオプションについて説明がされています。まとめると以下の表のようになり、SAP HANA Cloud Trialがベストということになります。

オプション 環境 インフラコスト 管理者としての操作
SAP HANA, express edition 自分のマシン、またはハイパースケーラー(AWS等)の環境にインストール 自己負担 可能
SAP HANA Service SCP…1つのインスタンスを共有し、その中のHDIコンテナにのみアクセスできる SAPが負担 不可
SAP HANA Cloud Trial SCP…サブアカウントごとに1つのプライベートなインスタンスが与えられる SAPが負担 可能

トライアル環境の作り方

私は以下の動画を参考にトライアル環境を作成しました。動画は11/7のものでしたが、その時と画面が少し変わっていたので一応貼っておきます。
SAP HANA Cloud Trial Setup

サブアカウントのEntitlementsの確認

SAP HANA CloudではSAP HANA CloudSAP HANA Schemas & HDI Containersを使用します。SAP HANA Schemas & HDI Containers TrialはSAP HANA Serviceで使用します。使っていなければこちらは削除してしまっても問題ありません。
image.png

インスタンスの作成

devスペースに入り、SAP HANA Cloudのメニューを開きます。"Create Database"をクリックしてインスタンスを作成します。
image.png
インスタンス名とDBADMINユーザのパスワードを設定します。
image.png
image.png
トライアルなので、全てのIPアドレスを許可します。
image.png
"Create Instance"をクリックするとインスタンス作成が開始します。
image.png
しばらく待つとインスタンスの作成が完了します。
image.png

コックピットを開く

インスタンスのActionsから、Administer <インスタンス名>のメニューを開きます。
image.png
パスワードを求められたら、DBADMINと設定したパスワードを入力します。
image.png
コックピットが開きます。データベースに関するさまざまな情報が表示されています。
image.png

Database Explorerを開く

インスタンスのActionsから、Execute SQL and explore objectsのメニューを開きます。
image.png
Database Explorerが開きます。ここからテーブル定義を見たり、SQLを実行したりすることができます。
image.png

CAPで作ったサービスをSAP HANA Cloud Trialにデプロイ

ここからは、SAP HANA Cloud Trialを使用したCAPプロジェクトを作成する方法について見ていきます。
以前の記事では、デプロイ先はトライアル版SAP HANA ServiceのHDIコンテナでした。以下では、同じ内容のプロジェクトを新規に作成してSAP HANA Cloud Trialにデプロイします。
参考:Building hana-opensap-cloud-2020 Part 1: Project Setup and First DB Build

<変更点>
以下がSAP HANA Cloud Trialにデプロイする場合の変更点です。

  • package.jsonでデプロイフォーマットに"hdbtable"を指定
  • mta.yamlでhdi-containerのサービスに"hana"を指定

package.jsonでデプロイフォーマットに"hdbtable"を指定

デフォルトではビルドしたときに、genフォルダの下に.hdbcdsというアーティファクトができていました。一方SAP HANA Cloudでは.hdbtableという形でデプロイする必要があります。
image.png

以下はpackage.jsonのcdsセクションです。"deploy-format": "hdbtable"でフォーマットを指定します。

package.json
    "cds": {
        "hana": {
          "deploy-format": "hdbtable"
        },
        "requires": {
            "db": {
                "kind": "hana"
            }
        }
    }

mta.yamlでhdi-containerのサービスに"hana"を指定

以下はcds add mtaコマンドで生成したmtaファイルです。トライアル版SAP HANA Serviceではservice名を"hanatrial"に変更していましたが、ここではhanaのままとします。

mta.yaml
resources:
 # services extracted from CAP configuration
 # 'service-plan' can be configured via 'cds.requires.<name>.vcap.plan'
# ------------------------------------------------------------
 - name: hana-trial-db
# ------------------------------------------------------------
   type: com.sap.xs.hdi-container
   parameters:
     service: hana  # or 'hanatrial' on trial landscapes
     service-plan: hdi-shared
   properties:
     hdi-service-name: ${service-name}

ビルド、デプロイ

mbt buildでビルドした後のgenフォルダを見てみると、hdbtable、hdbviewというアーティファクトができています。
image.png
デプロイ後、hana-trial-dbというHDIコンテナのインスタンスができています。(名前はmta.yamlで指定したもの)
image.png

Database ExplorerにこのHDIコンテナを追加して、データを照会してみます。
image.png
image.png
Tablesをクリックし、CAPプロジェクトで作成したテーブルを選択します。"Open Data"を押すとデータをプレビューできます。
image.png
image.png

上記のように、CAPではHANA CloudだろうがHANA Serviceだろうが、違いをほとんど意識することなく開発ができます。

こぼれ話

インスタンスを作成した翌日、Database Explorerを実行すると"Error: Connection failed"というメッセージが出ていました。
image.png
Monitor landscapeから見てみると、
image.png
インスタンスが停止していました。このように、トライアル環境では時間がたつとインスタスは勝手に停止するのでマニュアルで起動が必要になります。
image.png
右端のActionsボタンをクリックし、Startで起動します。
image.png
ステータスが'Running'になれば、データベースを使用できます。ただ、起動に数十分かかりました。冒頭で「SAP HANA Cloud Trialがベスト」と書きましたが、管理者としての操作がいらないのであればSAP HANA Serviceの方が使いやすいかもしれません(毎回の起動が必要ないので)。
image.png

おわりに

今回はSAP HANA Cloud Trialインスタンスを作成し、CAPで作成したテーブルをデプロイするところまでできるようになりました。私はまだHANA DBの使い方(HDIコンテナの役割、ロール、ビューやプロシージャの作成等)は詳しくないので、トライアル環境を利用して学んでいけたらと思います。

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2