 
      - Qlik Cloud
- 運用者
Qlik Automate活用術#モニターアプリを簡単に導入する方法
本記事では、Qlik Automateの「Qlik Cloud Monitoring Apps Installer」テンプレートを使用した、モニターアプリの簡単な初期導入・更新手順をご紹介します。
本記事では、Qlik Sense SaaSのGeoOperationsをご紹介します。
今回は医療機関の位置情報、患者の位置情報のデータを例に、GeoOperationsを使用する方法をご説明します。
※本記事は「2022年12月時点のSaaS」で作成しています。
ルートや移動エリアの計算など、地理的な計算を行う機能です。
SaaS版のQlik Senseをご利用中の方であれば標準で利用可能です。
ロードスクリプトで地理データの検索や地理空間分析を行える関数が用意されており、下記を行うことができます。
・名前からポイントやエリアを検索
・ルート計算による道順やエリアを算出 (※チャート数式でも利用可能)
・ポイントやエリアにまつわる幾何計算
・ポイントやエリアに基づく集約処理
・Hospital.csv医療機関コードとその緯度経度情報
・Customer.csv患者コードとその緯度経度情報
| 
 
 | 
<データの由来>
Hospital.csv
医療経済研究機構「全国保険医療機関(病院・診療所)一覧(平成29年度版)」
<https://www.ihep.jp/publications/other/?y=2018>(最終アクセス:2022年12月28日)
Customer.csv
ダミーデータを利用しています。
<注意事項>
※ルートの出発地と目的地の緯度経度データが必要となります。
※制限事項
 制限を超える場合はデータを分割して処理を行うなどの対応が必要となります。
 最大行数: 50,000
 メモリ内の最大データセット サイズ: 150 MB
 ルーティングの最大行数: 400
 名前検索の最大行数: 20,000
今回は2つのデータを使って患者住所宅~最寄りの病院までのルートと所要時間を検索します。
今回は例として、Closest関数を使用し患者宅から最寄りの病院までのルートと所要時間を分析する手順をご紹介します。
「GeoOperationsの使用方法」
 [データロードエディタ] でGeoOperationsの関数を書くことでご利用できます。
 GeoOperationsの関数は下記のように呼び出します。
Load * Extension GeoOperations.ScriptEval('
<関数名>(条件1=値,条件2=値,...)
次に計算させるデータソースの指定を行います。
DATASOURCE <テーブル1> INTABLE
keyField="<テーブル1のID>", pointField="<テーブル1の緯度,経度>"
DATASOURCE <テーブル2> CSV
url="lib://DataFiles/<テーブル2>.csv",
fieldSeparator="<テーブル2の区切り文字の名前>",
keyField="<テーブル2のID>"" ,
geometryField="<テーブル2の緯度,経度>" ,
geometryType="<Point>"
', <テーブル1>);
「ルート探索を行うには(Closest関数)」
 ルート探索を行う際はClosest関数を利用します。
 2拠点間で指定したKM以内のルート情報や距離、時間などを確認することができます。
 ※他の関数についてはこちらのメーカーヘルプをご覧ください。
 
 例)10KM圏内で車移動の場合の最寄りの病院と所要時間(分)を探索
Load * Extension GeoOperations.ScriptEval('
Closest(distance="100000",distanceType="Car",costUnit="minutes")
DATASOURCE Customer INTABLE keyField="CID", pointField="cus_point"
DATASOURCE Hospital CSV   
  url="lib://DataFiles/Hospital.csv",
  fieldSeparator="SEMICOLON",
  keyField="FID" ,
  geometryField="hos_point" ,
  geometryType="POINT"
  ', customer);
3)データのリロードを行います。
 [データロードエディタ]で[データのリロード]を実行します。
 
4)データモデルを確認します。
 [データモデルビューア]を開きます。
 
下記の図のように探索結果のテーブル(ClosestResultTable)が生成されていれ
ば正常にロードできています。
| 
 
 | 
ClosestResultTable
CID・・・患者ID
FID・・・病院ID
customer_Hostpital_RelationId・・・主キー (1,2,3,4…)
Distance・・・時間 (32,60,11,・・・)
※Distanceの結果は CostUnit の指定で変わります。
LowResLine・・・2 拠点間のルート情報  ([緯度1,経度1],[緯度2,経度2],...)
1) データのアップロード
 病院と患者それぞれのIDもしくは名前、緯度経度データをアップロードします。
 
2) アプリの作成
 任意の名前でアプリを作成し、先ほどのデータを取り込みます。
 [データのロード]ボタンをクリックします。
| 
 
 | 
3)データロードエディタ
 [データマネージャー]の右側のアイコンをクリックし、[データロードエディタ]を選択します。
| 
 
 | 
 [+]ボタンで新しい[Sections]を追加します。
 [セクション]が追加されました。
 以上で、事前準備は完了です。
| 
 
 | 
1) ルートが確認できるような画面を作成しましょう。
  [シートを編集]画面を開きます。
  [チャート] > [マップ] >シートにドロップします。
| 
 
 | 
2) 病院をマップ上に表示します。
  [レイヤーの追加] > [ポイントレイヤー] >ポイント [追加] 
  > 「hos_point」 を選択します。
| 
 
 | 
3) 同様の手順で顧客住所もマップ上に表示します。 
  [レイヤーの追加] > [ポイントレイヤー] >ポイント [追加] 
  > 「cus_point」 を選択します。
| 
 
 | 
4) 患者宅→病院へのルートをマップ上に表示します。 
  [レイヤーの追加] > [ラインレイヤー] >線 [追加] 
  > 「LowResLine」 を選択します。
| 
 
 | 
5) デザインを整えます。
  色やアイコンの形状、幅などは[プロパティパネル]からお好みで変更することができます。
| 
 
 | 
6) 画面で結果をみてみましょう。
  ■・・・病院
  ●・・・患者宅
  →・・・ルート
  任意の病院を選択すると、詳細を確認することができます。
  FIDが50526の病院を最寄りとしている患者人数は4名いて、そのルートも確認することができました。
| 
 
 | 
 他にも所要時間が長いほど色を濃く表示したり
 ※分かりやすいように病院名、患者名などのデータも含めています。
 ■・・・病院
 ヒートマップ・・・患者宅、所要時間が長くなるほど色を濃く設定(黄~赤)
| 
 
 | 
 患者宅→最寄りの病院まで何分かかるかなども確認することができます。
 例)石黒さんは最寄りの病院まで車で39分かかる
| 
 
 | 
 病院ごとにどのくらい患者がいるかというのも表で確認することができます。
 例)はんじこどもクリニックが最寄り病院の患者は 14 人
| 
 
 | 
GeoOperationsのClosest関数の使い方についてご紹介しました。
今回は車で10KM圏内を条件としましたが徒歩や自転車、距離ではなく時間でも検索することができます。
最寄りの病院も1人1件ではなく最寄りの病院 3 件など任意の件数で検索することも可能です。
また、今回は医療機関のデータを題材にしましたが、他にも
・各店舗で徒歩30分圏内のエリアが何%重複しているか
| 
 
 | 
・顧客リストから閾値を10KMとしてクラスタリング、営業の担当エリアの割り振り
| 
 
 | 
などにもお役立ていただけます。
Closest以外にも地理空間分析に使える関数が多数用意されています。
ご興味がございましたらご確認ください。
参考)メーカーヘルプ
https://help.qlik.com/ja-JP/cloud-services/Subsystems/Sense_GeoOperations/Content/Sense_GeoOperations/connector-geoanalytics_reference.htm
 
      本記事では、Qlik Automateの「Qlik Cloud Monitoring Apps Installer」テンプレートを使用した、モニターアプリの簡単な初期導入・更新手順をご紹介します。
 
      ショートカットを知っているだけで、開発効率はもちろん、アプリの閲覧効率もアップします! 今回は、数あるショートカットの中から「これは覚えておきたい!」というものを厳選して紹介します。
 
      アプリを最初に開く際に時間がかかることはありませんか。Qlik Sense SaaSでは、パフォーマンス評価という機能が用意されています。今回は、そのパフォーマンス評価の具体的な使用例についてご紹介します。