Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
yureshino
Product and Topic Expert
Product and Topic Expert
0 Kudos
今回はPart.3 分析用データの準備 / SAP HANA Cloud の Calculation View の作成についてご紹介します。

手順


全4回でご紹介する手順は下記の通りです

Part.1 SAP HANA Cloudでの コロプレス/ドリルレイヤを使用するためのセットアップ
Part.2 SAP HANA Cloud での カスタム地理階層の作成
Part.3 SAP HANA Cloudでの 分析用データの準備 / SAP HANA Cloud の Calculation View の作成(今回)
Part.4 SAP Analytics Cloudでの システム設定 / モデル作成 / 地理マップの作成

手順の全体像はこのようになっています。



 

それでは Part.3 を始めましょう!

Part.3-1 SAP HANA Cloudでの分析用データの準備


(参考)CHOROPLETH_CUSTOM_HIERARCHY テーブル


CHOROPLETH_CUSTOM_HIERARCHY テーブルは以下の構造をしています

  • NAMEは、SACでコロプレス/ドリルレイヤを指定した際の、ロケーションディメンションの階層を選んだ時に表示される値です

  • HIERARCHYIDは、同じ階層定義で同じ値を設定します

  • IDはテーブル内でユニークな値にします

  • LEVELは階層のレベルを表します

  • LNAMEは、SACでレイヤ階層の編集で表示されるラベル名です

  • OBJECT、PACKAGE、SCHEMAで、定義している DIMENSION タイプの Calculation View を指定します




分析用データの準備


以下の情報を利用して、市区町村ごとの人口および世帯数データを作成します

  • 総務省ホームページの「住民基本台帳に基づく人口、人口動態及び世帯数(平成30年1月1日現在)」の「【総計】平成30年住民基本台帳人口・世帯数、平成29年人口動態(市区町村別)」の団体コード、都道府県名、市区町村名、人口(計)、世帯数情報
    http://www.soumu.go.jp/menu_news/s-news/01gyosei02_02000177.html

  • 「おまるくんの技術ノート」の「市区町村コード表(緯度経度付き)」ページに記載された全国地方公共団体コード、緯度、経度情報
    http://note.omarukun.com/notes/4/

  • 元データの位置情報は SRID:4326 として取り込み、SAC が利用する SRID:3857 に変換してテーブルにロードします


人口動態データ、市区町村役場の位置データをそれぞれ CSV ファイルに加工して、それぞれ一時テーブルにインポートします

1.SAP HANA Database Explorer を起動し、”DEMO” ユーザで HANA Cloud に接続し、下の SQL 文を実行して、DEMO スキーマに ADMINISTRATIVE_AREA テーブルを作成します
CREATE COLUMN TABLE "DEMO"."ADMINISTRATIVE_AREA" (
ADMINISTRATIVE_AREA_CODE VARCHAR(6)
,"ADMINISTRATIVE_AREA_POINT" ST_POINT(3857)
,"PREFECTURE" NVARCHAR(8)
,"CITY" NVARCHAR(32)
,POPULATION BIGINT
,HOUSEHOLDS BIGINT
,PRIMARY KEY (ADMINISTRATIVE_AREA_CODE)
);

2.IMPORT ウィザードを使用して、人口動態データを TEMP1 テーブルに、市町村役場の位置データを TEMP2 テーブルにインポートします。(今回の例ではTABLE MAPPINGの情報を画像のように入力します)


Tableを右クリックしインポート



新しくTEMP1を作成



人口動態データ



市区町村役場の位置データ


3.下の SQL 文を実行して、TEMP1、TEMP2 テーブルから ADMINISTRATIVE_AREA テーブルにデータを挿入します
※市区町村役場の緯度・経度から ST_Point を作成する際に、SRID を 4326 から 3857 に変換しています
INSERT INTO "DEMO"."ADMINISTRATIVE_AREA"
SELECT TEMP1.ADMINISTRATIVE_AREA_CODE
, new ST_Point('POINT(' || TEMP2.LONGITUDE || ' ' || TEMP2.LATITUDE || ')', 4326).ST_Transform(3857)
, TEMP1.PREFECTURE
, TEMP1.CITY
, TEMP1.POPULATION
, TEMP1.HOUSEHOLD
FROM TEMP1
LEFT OUTER JOIN TEMP2
ON TEMP1.ADMINISTRATIVE_AREA_CODE = TEMP2.ADMINISTRATIVE_AREA_CODE
WHERE TEMP1.CITY IS NOT NULL
AND TEMP2.ADMINISTRATIVE_AREA_CODE IS NOT NULL;


Part.3-2 SAP HANA Cloud での Calculation View の準備


分析対象データとロケーションデータの Calculation View について


SAP Analytics Cloud の HANA Cloud ライブ接続で地理マップを使用する場合、分析対象データをモデル化する Calculation View と、ロケーションデータ(ディメンション)をもつ Calculation View を用意する必要があります。

SAC Analytics Cloud 側で、上記の2つの Calculation View の紐づけをおこないますが、その際、紐づけるカラムの名称が同じであってはなりません。このため、ロケーションデータのID カラムには”_LD”を付けています。



シノニムファイルへのエントリの追加


非 HDI コンテナのスキーマに作成した分析用データ(ADMINISTRATIVE_AREA テーブル)にアクセスするためにシノニムファイルにエントリを追加します

1.SAP Business Application Studio で demo プロジェクトを開き、シノニムファイル(この例では demo.hdbsynonym)ファイルを開きます

2.シノニムエディタで以下のシノニムを定義します

  • Synonym Name: ADMINISTRATIVE_AREA(DEMO.ADMINISTRATIVE_AREA にマッピング)




3.シノニムファイルを保存し、デプロイします

人口動態データをモデル化する Calculation Viewの作成


市区町村別の人口動態をモデル化する Calculation View を作成します

1.SAP Business Application Studio のメニューから [View] > [Find Command...] を選択し“SAP HANA: Create SAP HANA Database Artifact” を選択します

2.Create SAP HANA Database Artifact 画面で以下を入力して [Create] ボタンをクリックします

  • Specify where you want to create the new artifact: /home/user/projects/<プロジェクト名>/db/src

  • Choose the database version: HANA Cloud

  • Choose the artifact type: Calculation View (hdbcalculationview)

  • Specify the artifact name: CV_DEMOGRAPHICS

  • Specify the label: CV_DEMOGRAPHICS

  • Choose a data category: CUBE

  • Use a star join?: No



※このようなダイアログが表示されたらData CategoryがCubeであることを確認し[Create]を押します(表示されなければ次に進む)


3.Aggregation ノードの + [Add Data Source] をクリックします

4.Find Data Sources ダイアログで、”ADMINISTRATIVE_AREA” のラジオボタンにチェックし、[Finish] ボタンをクリックします


5.Aggregation ノードの [Expand Details Panel] をクリックします

6.Mapping タブで、Data Sources の以下のカラムを Output Columns に設定します(左のカラムをドラッグし右でドロップ)

  • ADMINISTRATIVE_AREA_CODE(行政区域コード)

  • CITY(市区町村名)

  • POPULATION(人口)

  • HOUSEHOLDS(世帯数)



7.Calculated Columns タブで    [Add] ボタンをクリックし、Calculated Column を選択します


8.以下の情報を入力します

  • Name: ID

  • Label: ID

  • Data Type: NVARCHAR

  • Length: 64



9.Expression 内の [Expression Editor] ボタンをクリックします


10.Expression Editor で、以下の Expression を入力し[Validate Syntax] ボタンをクリックします
"CITY" || '(' || "ADMINISTRATIVE_AREA_CODE" || ')'


11.、Validation Result ダイアログで問題がないことを確認し、[OK] ボタンをクリックします


12.[Back] ボタンをクリックし、ID カラムが作成されたことを確認します

13.Semantics ノードをクリックし、Columns タブで以下を設定します

  • ADMINISTRATIVE_AREA_CODE : Hidden にチェック

  • CITY: Hidden にチェック

  • ID: Key にチェック (Keyが表示されていない場合は⚙ボタン)



14.変更を保存して、デプロイします

SAP_BOC_SPATIAL ネームスペースの作成


SAC の HANA Cloud ライブ接続(HDI コンテナを使用するオンプレミス HANA のライブ接続も同様)で地理マップを使用するためには、 SAP_BOC_SPATIAL ネームスペースを有するロケーションデータの Calculation View を作成する必要があります

1.SAP Business Application Studio で demo プロジェクトを開き、db/src を右クリックして表示されるコンテキストメニューから [New Folder] を選択します


2.New Folder ダイアログでフォルダ名に"SAP_BOC_SPATIAL "(固定値)を入力して [OK] ボタンをクリックします


3.db/src を右クリックして表示されるコンテキストメニューから [New File] を選択します


4.New File ダイアログでフォルダ名に".hdinamespace" と入力して [OK] ボタンをクリックします


5.エディタで以下を記述します
{
"name" : "",
"subfolder" : "append"
}


6.変更を保存して、デプロイします

ロケーションデータの Calculation View の作成


ロケーションデータの Calculation View を作成します

1.SAP Business Application Studio のメニューから [View] > [Find Command...] を選択し、“SAP HANA: Create SAP HANA Database Artifact” を選択します

2.Create SAP HANA Database Artifact 画面で以下を入力して [Create] ボタンをクリックします

  • Specify where you want to create the new artifact: /home/user/projects/<プロジェクト名>/db/src/SAP_BOC_SPATIAL

  • Choose the database version: HANA Cloud

  • Choose the artifact type: Calculation View (hdbcalculationview)

  • Specify the artifact name: CV_ADMINISTRATIVE_AREA_LOC

  • Choose a data category: DIMENSION

  • Choose a dimension type: STANDARD



※New Calculation VIewのダイアログが表示されたらData CategoryがDIMENSIONであることを確認し[Create]ボタンを押します (表示されない場合は次へ進む)

3.Projection ノードの + [Add Data Source] をクリックします

4.Find Data Sources ダイアログで、”ADMINISTRATIVE_AREA” のラジオボタンにチェックし、[Finish] ボタンをクリックします


5.Projection ノードの [Expand Details Panel] をクリックします

6.Mapping タブで、Data Sources の以下のカラムを Output Columns に設定します

  • ADMINISTRATIVE_AREA_CODE(行政区域コード)

  • CITY(市区町村名)

  • ADMINISTRATIVE_AREA_POINT(地点)



7.Calculated Columns タブで + [Add] ボタンをクリックし、Calculated Column を選択し、以下の情報を入力します

  • Name: ID_LD

  • Label: ID_LD

  • Data Type: NVARCHAR

  • Length: 64



8.Expression 内の [Expression Editor] ボタンをクリックし、Expression Editor で、以下の Expression を入力します
"CITY" || '(' || "ADMINISTRATIVE_AREA_CODE" || ')'

9.[Validate Syntax] ボタンをクリックし、Validation Result ダイアログで問題がないことを確認し、[OK] ボタンをクリックします



10.[Back] ボタンをクリックし、ID_LD カラムが作成されたことを確認します

11.Semantics ノードをクリックし、Columns タブでID_LDをKeyに設定します


12.変更を保存して、デプロイします

お疲れさまでした!これでPart.3は終了です。ここまでくればあと一歩です!Part.4はこちら