Technology Blog Posts by SAP
cancel
Showing results for 
Search instead for 
Did you mean: 
yureshino
Product and Topic Expert
Product and Topic Expert
0 Likes
1,097
今回は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はこちら