LoginSignup
1
0

More than 3 years have passed since last update.

【SAC】 ライブデータ接続:GEOMETRYを使用した地理モデルの構築

Posted at

はじめに

SAP Analytics Cloudへのデータ連携の方法は次の2種類になります。

  1. インポート接続
  2. ライブデータ接続

このうちインポート接続の場合は、座標データがあればSACのディメンション設定時に地理データを作成することができます。(下記の別記事を参照)

【SAC】SAP Analytics Cloud でデモ環境を構築する ~前編~
https://qiita.com/iwa_gino/items/72be48318e897908303a

一方、ライブデータ接続下で地理データを扱う場合には、HANA側で別途地理モデルを作成する必要があります。
今回は、GEOMETRYを使用した地理モデルの構築と、データモデルとの連携方法をご紹介します。
image.png

なお、手順については下記のページを参考にしました。

Creating Geo model from Live HANA Calculation View
https://saphanajourney.com/sap-analytics-cloud/learning-article/creating-geo-model-from-live-hana-calculation-view/

前提

・HANAのバージョンが SPS11 112.07 または SPS12 122.03 以降である必要があります

・今回は次のテーブル、CalclationViewを使用します。

【T_TEST_SALES_DATA(実テーブル)】
image.png
image.png

【CL_TEST_SALES_DATA(Calclation View)】
image.png
image.png
image.png
image.png

手順

1.SPATIAL REFERENCEの追加

HANA側で下記のSQLを実行し、SPATIAL REFERENCEを追加します。

CREATE SPATIAL REFERENCE SYSTEM "WGS 84 / Pseudo-Mercator" IDENTIFIED BY 3857
TYPE PLANAR
SNAP TO GRID 1e-4
TOLERANCE 1e-4
COORDINATE X BETWEEN -20037508.3427892447 AND 20037508.3427892447
COORDINATE Y BETWEEN -19929191.7668547928 AND 19929191.766854766
ORGANIZATION "EPSG" IDENTIFIED BY 3857
LINEAR UNIT OF MEASURE "metre"
ANGULAR UNIT OF MEASURE NULL
POLYGON FORMAT 'EvenOdd'
STORAGE FORMAT 'Internal'
DEFINITION 'PROJCS["Popular Visualisation CRS / Mercator",GEOGCS["Popular
Visualisation CRS",DATUM["Popular_Visualisation_Datum",SPHEROID["Popular
Visualisation
Sphere",6378137,0,AUTHORITY["EPSG","7059"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY[
"EPSG","6055"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",
0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4055"]],UNIT[
"metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Mercator_1SP"],PARAMETER["cen
tral_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PA
RAMETER["false_northing",0],AUTHORITY["EPSG","3785"],AXIS["X",EAST],AXIS["Y",
NORTH]]'
TRANSFORM DEFINITION '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0
+lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null
+wktext +no_defs'

2.GEOMETRYを使用したGEOCODEテーブルの作成

今回は「T_TEST_SALES_DATA(実テーブル)」の「営業所」をキーに、
「緯度」「経度」を使ってジオコーディングしました。

CREATE COLUMN TABLE "SAC_TEST"."T_TEST_GEO_OFFICE"(
   "EIGYOUSYO" NVARCHAR(50) CS_STRING PRIMARY KEY,
   "GEOMETRY" ST_GEOMETRY(3857)
);

UPSERT "SAC_TEST"."T_TEST_GEO_OFFICE" ("EIGYOUSYO")
SELECT "営業所" FROM "SAC_TEST"."T_TEST_SALES_DATA" GROUP BY
"営業所";
UPDATE "SAC_TEST"."T_TEST_GEO_OFFICE"
SET "GEOMETRY" = new ST_GEOMETRY('POINT(' || "経度" || ' ' ||"緯度" ||
')', 4326).ST_Transform(3857)
FROM (
SELECT MIN("緯度") "緯度",
MIN("経度") "経度", "営業所"
FROM "SAC_TEST"."T_TEST_SALES_DATA" GROUP BY "営業所"),
"SAC_TEST"."T_TEST_GEO_OFFICE"
WHERE "営業所" = "EIGYOUSYO";

SQL実行結果:緯度経度が「GEOMETRY」にマッピングされた「T_TEST_GEO_OFFICE」というテーブルが作成されました。
image.png
image.png

3.GEOCODEテーブルのディメンション化

コンテンツ配下に「SAP_BOC_SPATIAL」という名称でパッケージを作成します。
(他のパッケージ名にすると上手くいかないため注意)
「SAP_BOC_SPATIAL」内でCalclation Viewを新規作成します。
image.png

今回は「CL_TEST_GEO_OFFICE」という名称で作成します。
Data Categoryを「DIMENSION」に変更し、「完了」をクリックしてください。
image.png

Projectionのソースに「T_TEST_GEO_OFFICE」を指定します。
EIGYOUSYO、GEOMETRYともにOUTPUTに指定します。
image.png

Semanticsに移動し、EIGYOUSYOをキー項目に設定します。
以上で「CL_TEST_GEO_OFFICE」の作成は終了です。Activate実行して、Calclation Viewを有効化してください。
image.png

4.データモデルとの連携

今回は「CL_TEST_SALES_DATA」をデータソースとした「SALES_DATA_LIVE」というモデルを作成しています。
SACにてモデル編集画面を開き、「ロケーションディメンションの作成」をクリックします。
image.png

ロケーションディメンションを作成画面が表示されます。
ビュー名に、先ほど作成した「CL_TEST_GEO_OFFICE」を選択します。
ロケーションIDに「営業所」、マッピング対象のIDに「EIGYOUSYO」を選び、「CL_TEST_SALES_DATA」と「CL_TEST_GEO_OFFICE」を連携します。
設定後「OK」をクリックし、モデルの保存を行ってください。
image.png

以降はインポート接続の時と同じ要領で、ダッシュボードにマップを作成することができます。
image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0