Skip to Content
Technical Articles

Free Trialではじめる SAP HANA Cloud: Vol.4 DB オブジェクトのデプロイ

本ブログでは、SAP HANA Cloud (以下、「HANA Cloud」) を初めて使われる方を対象に、Free Trial 環境を使用した操作手順を解説いたします。

SAP Business Application Studio (以下、BAS) が2021年1月からHANA Cloudにも対応しました。BASはブラウザベースのSAP のクラウド環境での新しい標準開発ツールです。

本Blogのシリーズでは、このBASを利用してHANA CloudでDBオブジェクトを作成する方法について解説していきたいと思います。

本内容は「DBエンジニア」向けの内容になります。

 

内容は下記の通りです。

1. SAP Business Application Studioを設定し、プロジェクトを作成する

2. テーブルを作成し、データをロードする

3. Calculation View (HANA View)を作成する

4. DBオブジェクトを一括デプロイする

 

本Blogでは、上記の「4. DBオブジェクトを一括デプロイする」を解説します。

 

DBオブジェクトのデプロイ

 

従来、DBでオブジェクト作成する方法と言えば、****.sql ファイル (一般的にSQLファイルと呼ばれる) を作成して、ファイル中に「CREATE TABLE」文や「CREATE VIEW」文などのSQL文を記述し、DBのターミナル画面、もしくは開発ツールからそのSQLファイルを呼び出して実行する方法が一般的かと思います。

SAP HANA Cloud (SAP HANAを含む)では、それらの定義ファイルを利用して、開発環境/テスト環境/商用環境に容易にデプロイすることが可能です。

 

HDIについて理解する

 

前Blogにて出てきていたキーワード「HDI」ですが、「SAP HANA Deployment Infrastructure 」の略になります。

HDI は「HANAにDBオブジェクトやDBアプリケーションをデプロイするための便利な仕組み」です。

 

本来のHDIの目的やHDIの良さを理解するためには、マイクロサービス、Cloud Foundry、Multi-Target Application などのテクノロジーや考え方を理解する必要があるのですが、そこから入ると、ほとんどのDBエンジニアが挫折する可能性があります。

なので、(私の経験から) HDIについては、「まずは操作を理解しながら、仕組みについても少しずつ理解する」形でお伝えしたいと思います。

DBエンジニア、もしくは、SAP HANAエンジニアの方は、とりあえず、「HANA View やSDI (Smart Data Integration) のフローグラフ (ETLツールでデータ加工の流れを作成するもの) などの、HANA のステキな機能を活用する際にはHDIは必要な仕組み」と憶えておいてください。

このHDIの仕組みを利用してDBオブジェクトやDBアプリケーションをデプロイすると、「HDIサービスインスタンス」がそのファイルの内容を解釈して、HANAインスタンス内に「HDIコンテナー」と呼ばれる領域 を作成し、その領域に対してオブジェクト作成してくれます (正確にはもっと複雑な仕組みで実行されるのですが簡略化して説明しています)。

この「HDIコンテナー」は論理的な領域で、誤解を恐れずに例えると「フレームワーク」のようなものです。

具体的には、HDIコンテナー内にはDBオブジェクト以外にも複数のDBユーザーが作成されたり、管理情報を格納するためのテーブル群やプロシージャなどが作成されます。

ただし、利用者/開発者としては、まずはDBオブジェクトだけを意識していれば大丈夫です。

 

このHDIコンテナーは1つのHANAインスタンス内に複数保持することも可能で、HDIコンテナーは通常のDBスキーマ(テーブル等を保持する論理的なグループ)と同様にDB内での独立性を維持/提供しています。

 

繰り返しになりますが、このHDIは従来のDBの設計/開発/運用に慣れている方にとっては、なかなか取っつきにくい思想と設定方法があるため、当初は戸惑いもあるかと思います。

焦らず、一つずつ慣れていきましょう。そのうち、便利なことを発見できて、スルメのような味わいとなっていきます。

 

SAP Business Application Studioの環境を確認する

 

操作を始める前にヤムルファイル(mta.yaml)を確認して、名前と役割を記憶しておきましょう。

 

 

いよいよ、デプロイです。操作は下記の流れになります。

1. MTAR ファイルの作成 (Build)

2. MTAR ファイルのデプロイ

 

 

まず、「mta.yaml」ファイルを選択後、右クリックして「Build MTA」を実行します。

 

すると、「MTARファイル」が作成されます。「Multi-Target Application Archive ファイル」のことで、プロジェクト内のDBアプリケーションの定義ファイルだけでなく、デプロイするための設定情報なども含まれます。前出のヤムルファイルも含まれます。

次にこの「MTAR ファイル」をデプロイします。
作成されたMTARファイルを選択し、右クリックで「Deploy MTA Archive」を実行します。

 

デプロイが完了したら、Database Explorer でオブジェクトの確認を行います。

Database ExplorerでDBの接続先を追加します。

接続先のDatabase Typeは「HDI Container 」を選択し、ヤムルファイルに記載のあるHDIコンテナー名である、「order-entry-hdidb」を選択します。

 

 

DBオブジェクトを選択すると、無事、テーブルやHANA Viewが作成され、そのスキーマが「ORDER_ENTRY_HDI」であることが確認できると思います。

 

HDIの仕組みについて少しだけ理解を深める

 

HDIサービスインスタンス」の確認を行います。

SAP Cloud Platform の管理者用ツールのSAP Cloud Platform コックピットで「dev」スペースを選択し、左メニューの「サービスインタンス」を選択すると幾つかのサービスが表示されます。

ここでヤムルファイルに記載のあるHDIサービスインタンス名と同じような名前のサービスが確認できます。

 

DBアプリケーションをBuildした気がするけど… ?

 

前Blog記事では、DBオブジェクトを作成し、その都度、Deployしていたかと思います。

その操作と今回の操作での違いを最後に解説します。

開発フェーズにて、DBオブジェクトを1つずつ定義し、オブジェクト作成が成功するかどうか、また、その結果が正しいかどうかを確認しながら開発を進めると思います。

その作業は各オブジェクトのファイルを選択して、Deployする方式でした。

この方法でDeployすると、プロジェクト作成時に自動作成された「ワーク用」の HDIサービスインタンスやDBスキーマに作成されます。

この時のHDIサービスインスタンス名は「order-entry-hdidb-ws-7hx4g」で、DBスキーマ名も指定した名前に対して、「_1」が付加された「ORDER_ENTRY_HDI_1」だったかと思います。

これらはローカルの開発環境 (自分だけの開発環境) で試す分には良いのですが、テスト環境や本番環境にDBアプリケーションをデプロイする場合には、今回、ご紹介したように「MTARファイルを作成し、それをデプロイする」方法を取ることを推奨しています。

何よりも楽チンですし、ヒューマンエラーを回避できるのでとても便利です。

 

いかがでしたでしょうか ?

少し難しい内容でしたが、実際に試してみると、DBアプリケーションが簡単に新規の環境にデプロイできることがお分かりいただけたと思います。

他にもファイル間の依存性チェックなど、この「Buildしてデプロイする」方法には色々とメリットがあるのですが、今回はたくさん憶えることがあったのでここまでとさせていただきます。

 

ありがとうございました !!

Be the first to leave a comment
You must be Logged on to comment or reply to a post.