概要
この記事は、P2P地震情報サービスを用いて取得できる各地の地震情報をTROCCOのカスタムコネクタを使って取得するための方法を解説するものです。
地震情報で一番思い浮かびやすいのはテレビやネットニュースでお馴染みの速報データですが、過去の発生情報を積み上げて分析することで、ビジネス拠点のリスク分析や、流通系であればロジスティクスを考える材料にすることも可能です。
カスタムコネクタとはConnector Builderで作られたTROCCOのコネクタを指します。
Connector Builderについてご存知ない方は、「Connector Builder(コネクタビルダー)とは」の記事から先にお読みください。
P2P地震情報サービスとは
P2P地震情報は、日本の緊急地震速報や地震・津波情報を配信しているサービスです。
気象庁から配信されている情報が元になっており、Windowsやスマホ、APIを介しての情報取得も行えるようになっています。

地震情報をビジネスに活用するアイディア・ユースケース
「速報を受けてアクションを取る」というのが地震情報のメジャーな使い道ですが、それ以外にも次のような使い方も想定できます。
■防災訓練の頻度決定(複数拠点を持っている事業者様)
日本は地震大国です。
その地域によって発生リスクは異なりますので、過去に一定規模以上の地震がどのぐらい発生したか、という情報も参考になります。
例えば、「震度4以上の地震発生頻度が相対的に多い拠点では、訓練頻度を他拠点の2倍にする」などの意思決定も可能です。
■倉庫拠点におけるリスク分散(卸・流通業の方)
倉庫拠点にとって、地震リスクの考慮を避けて通ることはできません。
例えば地震リスクが比較的高い拠点では、損害リスクを考慮して在庫を他拠点よりも薄くするなどの意思決定につなげることができます。
もちろん普段のロジスティクスが第一優先ですので、リスク分散の観点で考慮するという程度にはなります。保険でカバーできる・できないの問題ではなく、そもそも起こり得る事象からなるべく自衛できる手段を取るという考え方です。
地震情報をカスタムコネクタで取得するステップ
STEP 1:ベースURLを設定する
当該サービスのAPIを通じて情報を取得します。
ベースURLを下記に設定します。
https://api.p2pquake.net

その次の項目の認証情報は、初期状態のままでOKです。
当該APIは認証を必要としません。

一旦、この段階でカスタムコネクタを保存します。

STEP 2:エンドポイント情報を設定する
次に、APIから地震情報履歴を配信しているエンドポイントの詳細情報を設定していきます。
まず、エンドポイントを新規追加し、次のように設定していきます。
名前:わかりやすい任意の名前を付けます。
パス:「/v2/history」
パラメータ:「codes」という名前のパラメータに値「551」を設定
(API仕様書より引用:codesパラメータの値について)
取得したい情報の情報コード (デフォルトはすべて)。
値は
- 551(地震情報)
- 552(津波予報)
- 554(緊急地震速報 発表検出)
- 555(各地域ピア数)
- 556(緊急地震速報(警報))
- 561(地震感知情報)
- 9611(地震感知情報 解析結果)
です。

JSONPathルートは、デフォルトの「$.*」のままでOKです。

本APIは認証を必要としませんが、ダミーとしての接続情報を作成する必要があります。
これはConnector BuilderがSaaSサービスのAPIからデータを取得できるというコンセプトで元々開発されており、ほとんどのサービスで認証(APIキーやOAuth)が必須であるためです。
「接続情報を追加」ボタンをクリックすると、接続情報の作成画面に遷移します。

APIキーの部分には、任意の文字列を入力し、そのまま保存をクリックします。
(aaaなどどんな文字列でも構いません)

エンドポイント設定のタブに戻り、「接続情報を読み込む」を一度クリックした後、接続確認に利用する接続情報のリストから先ほど作成した接続設定を選択します。
その後、必須パラメータのcodesに「551」を入力し、「接続を確認」ボタンをクリックします。
「エンドポイントへのリクエストに成功しました。」のメッセージとレスポンスボディが表示されれば成功です。
もしここでエラーとなってしまう場合は、ベースURLかパスを再度確認してください。

STEP 3:転送設定を作成する
続いて、先ほどのカスタムコネクタを使って転送設定を作成します。

転送元設定の中で、作成したカスタムコネクタを選択します。
取得対象に作成したエンドポイントを選ぶと、自動的にパラメータも呼び出されます。

一点のみ注意点があります。
転送先(今回はBigQuery)への転送モード指定を「UPSERT」モードにします。
また、キー名を「id」として下さい。
地震情報を定期的に読み込みますので、同じ速報データが何件も重複して記録されることを防ぐためです。

※参考
イメージレスポンスボディの構造は次の様になっています。
発信毎のidを使って、DWHに重複データが発生することを防ぎます。

プレビュー画面に進むと、次のように読み込まれます。
特に、「id」「time」「points」のカラムがしっかり存在しているかを確認し、次のステップへ進んでDWHへの転送を実行します。

ちょっとした(個人的にはかなり)便利機能として、JSON型のカラムをプレビュー結果から自動展開してくれる機能が実装されています。
例えば、「earthquake」カラムには9つの項目が内包されています。

「プレビュー結果から推測して展開」ボタンをクリックすると、これらの各項目を分解し、データ型の推測まで行ってくれます。
項目がたくさんある場合には特に効果的ですので、ぜひ活用して下さい。
プレビュー結果の1レコード目に目的のデータが入っている必要がありますのでご注意下さい。

DWHに転送されたデータを確認すると、id毎に「points」という複数地点での地震速報データが格納されていることがわかります。
このデータを活用して、地点毎のデータウェアハウス、あるいはデータマート層を作成します。

STEP 4:地域毎の地震情報を表現するデータマートを作成する
TROCCOメニューの「データマート > データマート定義」と進み、新規作成をクリックします。

先ほど転送先に指定したDWHを選択し、クエリは下記の様に設定します。
(例はBigQueryのものです。)
「points」というカラムに、各地の地震情報が震度情報と一緒に配列で格納されています。
これを分解しつつ、それぞれに地震速報が配信された日時である「time」を付与して1行ずつのレコードとなるように整形します。
SELECT
time,
JSON_VALUE(detail, '$.pref') AS pref,
JSON_VALUE(detail, '$.addr') AS addr,
CAST(JSON_VALUE(detail, '$.isArea') AS BOOL) AS is_area,
CAST(JSON_VALUE(detail, '$.scale') AS INT64) AS scale,
CAST(JSON_VALUE(detail, '$.scale') AS FLOAT64) / 10.0 AS scale_readable
FROM
`<GCPプロジェクトID>.<データセット>.p2p-earth-quake-info`,
UNNEST(JSON_EXTRACT_ARRAY(points)) AS detail

データマートを保存したら、一度実行を掛けて結果を確認します。
速報の日時と各エリアでの発生情報が1レコードとなったデータマートが完成しました。

STEP 5:ワークフローで実行順とスケジュールの設定を行う
APIから取得した後にデータマートを更新したいので、これを順番に、かつ定期的に動かせる様にワークフローを組んでスケジュール設定をします。
メニューから「ワークフロー」を選択し、新規作成画面へ遷移します。

続いてのフロー編集では、下イメージの容量でカスタムコネクタを使った転送設定を先に配置し、その直後にデータマートシンクを配置します。

最後に、当該ワークフローを毎日0時など決まった時間に動かすようにしておけば、その日に新たに発生している地震情報を継続的に取り込み続けることができます。

STEP 6:データを使う
P2P地震情報の地震データで取得できる「scale」という項目には次の値が入ってきます。
scale | 震度 |
10 | 1 |
20 | 2 |
30 | 3 |
40 | 4 |
45 | 5弱 |
50 | 5 |
60 | 6 |
70 | 7 |
データマート定義で設置した「scale_readable」カラムでは、上記scaleの値を十の桁で四捨五入しています。5弱と5に差を付けない場合に利用できます。

実際の利用シーンでは下記の様にフィルターしてクエリやBIツールでの利用すると良いでしょう。
- scaleもしくはscale_readableの値を「震度4以上」で抽出
- prefまたはaddrに、自社の拠点がある場所のみのデータを抽出
以上、P2P地震情報とTROCCOのConnector Builderを使った、カスタムコネクタ作成事例でした。
皆様の利用したいシーンで活用が広がれば幸いです。
まとめ
Connector Builderなら、GUIベースで好きなサービスのコネクタを手軽に作成でき、TROCCOの公式コネクタと組み合わせて他のSaaSとのデータ統合や、DWHをはじめ、クラウドアプリケーションやGoogleスプレッドシートなど、さまざまなサービスへのデータ転送がすぐに実現できます。
コネクタの作成時にはWeb APIの知識が必要ですが、一度作成したコネクタは設定画面から簡単に何度でも再利用できます。そのため、一度コネクタを作成すれば、APIの専門知識がない現場担当者でも、手軽にデータ連携や運用の自動化が実現でき、結果として設計・実装・運用にかかる負担を大幅に削減し、開発・保守の効率向上につながります。
また、Connector Builderで作成したカスタムコネクタは、TROCCOの公式コネクタと同様のパフォーマンス・セキュリティを兼ね備えており、TROCCOに搭載されているワークフロー/定期実行/通知などの運用保守機能も利用できるため、自社で実装から運用まで行う場合と比較し、大幅なコスト削減が期待できます。今回のP2P地震情報のようなAPIを介したデータ連携の初期開発・運用コストを最小化したい場合、「TROCCO」のConnector Builderは有力な選択肢となります。
ぜひ無料トライアルでその使いやすさを体験してみてください!
