Skip to Content
Technical Articles
Author's profile photo Yu Ureshino

SAP Analytics CloudのSAP HANA Cloudライブ接続を使って地理マップ コロプレスレイヤを作成しよう! Part.3 分析用データの準備/SAP HANA Cloudの Calculation Viewの作成

今回は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%u3092%u53F3%u30AF%u30EA%u30C3%u30AF%u3057%u30A4%u30F3%u30DD%u30FC%u30C8

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

%u65B0%u3057%u304FTEMP1%u3092%u4F5C%u6210

新しくTEMP1を作成

%u4EBA%u53E3%u52D5%u614B

人口動態データ

%u5E02%u533A%u753A%u6751%u5F79%u5834%u306E%u4F4D%u7F6E%u30C7%u30FC%u30BF

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

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はこちら

Assigned Tags

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