SAP HANA Express Edition ってなに?

SAP S/4HANAという従来のSAP ERPを置き換えるものがリリースされてから、しばらく経ちました。SAP S/4HANAを支える根幹がSAP HANAというデータベースです。インメモリデータベースという特性により、高速な動作が可能となったこのデータベースですが、実はSAP製品にしか使えないというわけではありません。しかも、無料で触ることが可能なSAP HANA Express Editionがあるので、手軽に試すことができます。今回は、SAP HANA Express Editionのインストールと操作方法について解説していきたいと思います。

SAP HANA Express Edition とは?

SAP HANA Express Edition とは、一定の条件下で使用できるSAP HANAのエディションのひとつです。無償で利用でき、学習やデモ用、PoCなどと利用目的は自由です。しかし、SAPのシステムと接続することはできません。他にも、以下のように知っておくべきポイントがあります。

  • SAP認定ハードウェアが必要ではない。
  • AWSやAzure上でも動かすことができる。
  • チュートリアル(英語)がある。
  • 容量は32GBまで利用可能。

利用制限がとても厳しいのでは?と思っていましたが、そこまで厳しいものではなさそうです。また、環境も仮想環境やDockerなどが用意されているので、利用を開始するのに複雑な手順は必要なさそうです。

SAP HANA Cloud Express Editionの環境設定

今回は、トライアル環境を用いて、SAP HANA Cloud Express Editionを試してみようと思います。また、環境設定においては以下のサイトに沿って進めていきます。

Help Thomas Get Started with SAP HANA Cloud | Tutorials for SAP Developers

アカウントの登録

サイト右上のアカウントアイコンをクリックし、ログインします。アカウントがない場合は、”Register”をクリックし、アカウントを作成します。

BTPトライアルへの登録

以下サイトのStep3を参考に進めていきます。

Help Thomas Get Started with SAP HANA Cloud | Tutorials for SAP Developers

以下のリンクからSAP BTPのトライアルに登録します。携帯番号での認証が必要です。

https://hanatrial.ondemand.com/

携帯番号の認証が終わったら、もう一度リンクをクリックし、再度アクセスします。画面に従い、アカウント登録を進めます。このような画面が表示されれば完了です。SAP BTP CockpitにはSAP HANA以外にも様々なツールが用意されています。

SAP HANA Cloud Express Editionの設定

画面上部の青いボタン”Go To Your Trial Account”をクリックします。

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

自動的に生成された説明

次に、以下のような画面が表示されるので、”Trial”と書かれているサブアカウントをクリックします。

Spacesと表記されている場所の”dev”をクリックします。

SAP HANA Cloud をクリックします。

“Create”ボタンをクリックし、SAP HANA databaseを選択します。

“Sign in with default identity provider”をクリックし、次へ進みます。

“Accept”をクリックし、次へ進みます。

今回は、”SAP HANA Cloud, SAP HANA Database”を選択します。

必要事項を選択し、次へ進みます。

今回は、すべてのIPアドレスからの接続を許可します。

SAP HANA Databaseの設定が終わると、データベースの作成が行われます。ステータスが”CREATING”から”RUNNING”に変われば作成完了です。

SAP HANA Express Editionの環境構築

次に、SAP HANA Express Editionを使用するための環境を用意します。SAP BTP Cockpitに戻り、”Services”の中にある、”Instances and Subscriptions”をクリックします。”SAP Business Application Studio”の項目があるので、クリックします。

“Create Dev Space”をクリックします。

“Dev Space”の名前を入力し、”What kind of application do you want to create?”には”SAP HANA Native Application”を選択します。”Additional SAP Extensions”には”SAP HANA Performance Tools”を選択します。上記の選択が完了したら、”Create Dev Space”をクリックします。

ステータスが”Running”に変わるまでしばらく待ちます。ステータスが”Running”になったら、Dev Space名である、”HANA”をクリックします。

このような画面が表示されればDev Spaceの起動は完了です。

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

自動的に生成された説明

次に、SAP HANA Express EditionとDev Space の紐づけを行います。エンターキーを押下します。続けて、Trialアカウントのメールアドレスとパスワードも尋ねられるので、入力し、エンターキーを押下します。

Organization, Spaceは表示されているものをそのまま選択します。

以下の画像のように、”Login Required”の文言が変わっていれば完了です。

次はSAP Business Application Studio上で環境を整えていきます。まずは、チュートリアル用のコンテンツを入手します。”Clone from git”をクリックし、出てくるテキストボックスに” https://github.com/SAP-samples/hana-cf-get-started-trial”を入力し、エンターキーを押下します。右下にダイアログが出てくるので、OKボタンを押下し、次へ進みます。

右下の”SAP HANA PROJECTS”に中にある、”hdi_db”の”Bind”ボタンをクリックし、出てくるダイアログの”Create a new service instance”をクリックします。

続けてダイアログが出現するので、そのままエンターキーを押下します。

“hana-cf-get-started-trial/db”の”Deploy”ボタンをクリックします。

Deployが完了したことを確認し、“Open HDI Container”ボタンをクリックします。

“SAP HANA Database Explorer”が開きます。” Tables” をクリックし、” COMMUNITY” をクリックします。” COMMUNITY” テーブルが作成されており、定義が確認できます。

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

SAP HANA Express Edition を触ってみた

それでは、環境が整ったので、実際にSAP HANA Express Editionを触っていきます。

まずは、CREATE文をデータベースに投げてみます。右上の”Open SQL Console”ボタンをクリックし、SQLコンソールを開きます。そのコンソールに以下のSQL文を入力し、実行ボタンをクリックします。

insert into “COMMUNITY” (DATA)  values(‘{“name” : “Sol” , “hint” :”I love using SAP HANA to develop applications”, “learns_from” :”Sam”, “office” :”Toronto”, “tenure” :17, “geolocation” : “Point( -79.380186 43.647944 )” }’);

insert into “COMMUNITY” (DATA) values(‘{“name” :”Sam”, “hint” :”I like developing in different languages and SQLScript”, “learns_from” :”Sol”, “office” :”Walldorf”, “tenure” :3, “geolocation” : “Point( 8.636789 49.29487 )” }’);

insert into “COMMUNITY” (DATA) values(‘{“name” :”Jose”, “hint” :”I use SAP Cloud platform to deploy cloud-native applications”, “learns_from” :”Sol”, “office” :”Palo Alto”, “tenure” :5, “geolocation” : “Point( -122.146603 37.398989 )” }’);

insert into “COMMUNITY” (DATA) values(‘{“name” :”Charlotte”, “hint” :”Developing apps with SAP HANA has been a game changer. I used to need several databases, now I only need one”, “learns_from” :”Sam”, “office” :”Australia”, “tenure” :6, “geolocation” : “Point( 151.209092 -33.834509 )” }’);

insert into “COMMUNITY” (DATA) values(‘{“name” :”Maria”, “hint” :”I am a coder. In my country, we say developing with SAP HANA is muito legal”, “learns_from” :”Charlotte”, “office” :”Sao Leopoldo”, “tenure” :3, “geolocation” : “Point( -51.148393 -29.796256 )” }’);

insert into “COMMUNITY” (DATA) values(‘{“name” :”Wei”, “hint” :”System administrator here, excited to learn you technologies”, “learns_from” :”Sam”, “office” :”Beijing”, “tenure” :12, “geolocation” : “Point( 121.601862 31.20235 )” }’);

insert into “COMMUNITY” (DATA) values(‘{“name” :”Hiroshi”, “hint” :”I developed many applications with both HANA and SQL Anywhere. I like both”, “learns_from” :”Sol”, “office” :”Fukuoka”, “tenure” :8, “geolocation” : “Point( 130.399091 33.592314 )” }’);

insert into “COMMUNITY” (DATA) values(‘{“name” :”Saanvi”, “hint” :”Developing apps from bangalore to the world”, “learns_from” :”Sol”, “office” :”Bangalore”, “tenure” :7, “geolocation” : “Point( 77.637116 12.972402 )” }’);

insert into “COMMUNITY” (DATA) values(‘{“name” :”Rick”, “hint” :”My team plays with databases regularly. HANA is one of the favorites”, “learns_from” :”Maria”, “office” :”Irving”, “tenure” :11, “geolocation” : “Point( -96.938460 32.873744 )” }’);

insert into “COMMUNITY” (DATA) values(‘{“name” :”Ann”, “hint” :”I like meeting other fellow coders”, “learns_from” :”Casey”, “office” :”San Ramon”, “tenure” :1, “geolocation” : “Point( -121.961661 37.766586 )” }’);

insert into “COMMUNITY” (DATA) values(‘{“name” :”Hugo”, “hint” :”I had never developed such cool apps before”, “learns_from” :”Maria”, “office” :”Monterrey”, “tenure” :2, “geolocation” : “Point( -100.353643 25.64757 )” }’);

insert into “COMMUNITY” (DATA) values(‘{“name” :”Sofia”, “hint” :”I connected SAP Analytics Cloud to HANA”, “learns_from” :”Hiroshi”, “office” :”Copenhagen”, “tenure” :1, “geolocation” : “Point( 12.589387 55.710640 )” }’);

insert into “COMMUNITY” (DATA) values(‘{“name” :”Muhammed”, “hint” :”I used to prefer Excel spreadsheets but Lumira changed that for me”, “learns_from” :”Charlotte”, “office” :”Ra anana”, “tenure” :11, “geolocation” : “Point( 34.882402 32.201905 )” }’);

SAP HANA専用の構文を1から覚える必要はなく、他のデータベースと同じような構文でSQL文を書くことができます。もっと複雑な手順やSQL文を想像していましたが、そうではないようです。また、専用のGUIが用意されているのはとても分かりやすくていいですね。

次にSELECT文を投げてみます。以下のSQLを入力し、実行ボタンを押下します。

select * from COMMUNITY

しっかりとグリッドで表示され、INSERT文で登録したデータがしっかり入っていることが確認できます。

また、DATA列はバイトオブジェクトを格納できるNCLOBで定義されていますが、これはUnicode文字列を格納でき、NVARCHAR型にキャストできます。そのようなDATA列にはJSON形式でデータが格納されています。SAP HANAはこのような形式にも対応しており、以下のSQLで必要なデータだけを取り出すことができます。

SELECT *

FROM JSON_TABLE(COMMUNITY.DATA, ‘$’

COLUMNS

    (

        LOCATION NVARCHAR(200) PATH ‘$.office’,

        NAME NVARCHAR(200) PATH ‘$.name’

    )

) AS JT where NAME = ‘Maria’

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

自動的に生成された説明

このように、JSON形式のデータが格納されていても、SQL文を利用することで取り出せるのはとても使いやすいと感じました。Webアプリケーションなどで利用しやすい印象です。

まとめ

いかがでしたでしょうか?今回のSAP HANA Express Editionに関する記事のポイントは以下の通りです。

  • SAP HANA Express Editionは一定の制限はあるものの、無料で利用することができる。
  • オンプレミス版、クラウド版が用意されている。
  • クラウド版であれば、SAP HANA Express Editionを利用する環境も用意されている。
  • 基本的なSQL文は他のデータベースとそこまで変わらない構文で利用できる。
  • JSONを意識したSQL文を利用できる。

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

SAP S/4HANA 導入支援サービス 基本ガイドブック
SAP S/4HANA マイグレーションで知っておくべきこと、今からやれること、とは?