Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
お世話になります。
Qlik Sense SaaS 環境において、ヘルプの記述例をもと GeoOperations の Routes で
日本の郵便番号データを使用したいと考えておりますが、エラーになって困っています。
対応方法をご存知の方がいらっしゃいましたら、ご教示ください。
■ 調査状況
下記オンラインヘルプの「Routes」というところにある例をもとに調査をしています。
https://help.qlik.com/en-US/geoanalytics/Subsystems/GeoOperationsService/Content/connector/connector...
ヘルプでは、以下の記述で LOCATIONSERVICE からデンマークの City の情報を取得していました。
Load * Extension GeoOperations.ScriptEval(
'Load() DATASOURCE Cities LOCATIONSERVICE geometry="POINT", type="City", country="dk"');
この記述をもとにして、日本のデータを読み込んでみたところ以下のような記述で都道府県単位の
データを取得でき、マップチャートのラインレイヤーでの 2 点間の距離演算もできました。
Load * Extension GeoOperations.ScriptEval(
'Load() DATASOURCE Cities LOCATIONSERVICE geometry="POINT", type="ADMIN1",
country="jp"');
なお、type="ADMIN2" とした場合の市町村レベルでの対応も可能でした。
しかし、郵便番号データと連動させるため、以下のような記述にしたところ「データ量が多い」
というエラーが発生いたしました。
Load * Extension GeoOperations.ScriptEval(
'Load() DATASOURCE Cities LOCATIONSERVICE geometry="POINT", type="ZIP", country="jp"');
<エラーメッセージ>
以下のエラーが発生しました:
Connector reply error: grpc::StatusCode::INVALID_ARGUMENT: 'GEOOPS-402: Failed to create
dataset Cities: Too many rows in dataset . Maximum allowed is 50000 rows.'
ここでエラーが発生しました:
Load * Extension GeoOperations.ScriptEval(
'Load() DATASOURCE Cities LOCATIONSERVICE geometry="POINT", type="ZIP", country="JP"')
■ ご教示いただきたいこと
LOCATIONSERVICE からのデータ取得時に「日本の東京」や「日本の東京と大阪」のような
条件とするための記述方法をご教示ください。
■ 補足:確認した情報
以下の Web ページの情報を確認していますが、具体的な記述方法を把握できていません。
・Community類似質問
https://community.qlik.com/t5/GeoAnalytics/Return-US-Postal-Code-from-GeoOperation-Qlik-Sense-Cloud/...
アメリカの郵便番号を取得しようとしていらっしゃいますが、回答はありません。
・オンラインヘルプ
https://help.qlik.com/en-US/geoanalytics/Subsystems/GeoConnector/Content/connector/connector-geoanal...
https://help.qlik.com/en-US/geoanalytics/Content/Global_Common/GeoOperationsFunctions/GeoOperations....
https://help.qlik.com/en-US/geoanalytics/Content/Qlik_GeoAnalytics/GeoAnalytics-Sense/Location-Servi...
・Community記事
https://community.qlik.com/t5/Qlik-Sense-Documents/Mapping-Postal-codes/ta-p/1586891
https://community.qlik.com/t5/Qlik-Sense-Documents/Qlik-GeoAnalytics-Coverage/ta-p/1479148
以上、よろしくお願いします。
オンラインヘルプに
https://help.qlik.com/en-US/geoanalytics/Content/Global_Common/GeoOperationsFunctions/GeoOperations....
-------
Limitations
The following limitations apply to the maximum size of datasets:
* Max number of rows: 50,000
-------
と、制限が記述されています。
この制限に引っかかっていると思います。パラメータがcountryしか無いため、それ以上絞り込む方法は無いように思いますが、少し調べてみます。
また、お手数ですが、並行してテクニカルサポートにご相談ください。
オンラインヘルプに
https://help.qlik.com/en-US/geoanalytics/Content/Global_Common/GeoOperationsFunctions/GeoOperations....
-------
Limitations
The following limitations apply to the maximum size of datasets:
* Max number of rows: 50,000
-------
と、制限が記述されています。
この制限に引っかかっていると思います。パラメータがcountryしか無いため、それ以上絞り込む方法は無いように思いますが、少し調べてみます。
また、お手数ですが、並行してテクニカルサポートにご相談ください。
先に、47都道府県のAREA(ポリゴン)を取得してから、そのAREAごとにでWithinオペレーションを使ってZIPのPOINT(経度緯度)を繰り返し47回絞り込み、その結果を取り込む(1テーブルにConcatenate)という方法も考え付きますが、そのAREAの精度などに左右されてしまい、正確な結果は得られないように思います。
とりあえず、西日本用と東日本用の、大まかなAREA(ポリゴン)を二つ定義して、それぞれに対してWithinオペレーションを使ってZIPのPOINT(経度緯度)を絞り込むと(2回)、一度にロードする件数は減ると思います。
日本の郵便番号の全体の個数に応じて、2回ではなく4回(日本を4分割したAREAで)にする必要があるかもしれません。
Qlik Senseのオンプレ版で、Qlik GeoAnalyticsサーバーが保持している日本の郵便番号とそのPOINTの個数ですが、14万件以上になるようです。
@tts 様
こちらの件、色々と情報をいただきながら返答できておらず、大変失礼いたしました。
ご教示いただきました内容から、オンラインヘルプに記載されている記述例と同等の
対応は困難であると認識いたしました。
特にパラメータが country しか無いという点について確認できたこと、また、
日本の郵便番号の数についてオンプレ版の Qlik GeoAnalytics サーバーが
保持している POINTの個数が 14 万件以上あるという点、ご提示いただけて
とても助かりました。
AREA ごとに絞るということもご提示いただきましてありがとうございます。
せっかくご提示いただいたところ、大変恐縮ですが、こちらは実装に至って
おりません。(後述のように別の方法で対応することになったためです。)
そのあとの内容もとても参考になったのですが、Route 使用時の絞り込み方という
質問でしたため、「パラメータがcountryしか無い」と明示されている箇所に回答の
マークを付けさせていただきます。
なお、補足となりますが、今回のお客様の対応では、緯度と経度の固定値を読み込んで
対応するパターンをご案内し、その内容をもとにご検討いただけることになりました。
以下、お客様にご案内しましたロード スクリプトの記述例です。
こちらでは 1 拠点から他拠点への直線距離を表示するというための記述としています。
※ Community での記載のため、起点となる箇所の緯度、経度は伏字にしています。
-- <記述例> ------------------------------
SampleData:
Load
ID,
[拠点],
[郵便番号],
[住所],
[緯度],
[経度]
FROM [lib://DataFiles/RouteSampleData.xlsx]
(ooxml, embedded labels, table is Sheet1);
MyRoutePoints:
Load
ID,
'[13*.*****,3*.*****]' as origin, //
'['& [経度] & ',' & [緯度]& ']' as dest
Resident SampleData;
MyRoutes:
Load * Extension
GeoOperations.ScriptEval('Routes(destField="dest", transportation="bird")', MyRoutePoints);
--------------------------------------------
返答までにお時間をいただいてしまい、申し訳ございませんでした。
ご対応いただき、ありがとうございました。
以上です。