
こんにちは。プロダクト開発部のこみぃです。
先日Snowflake Marketplaceに、弊社がPODBで公開している気象データをさらに便利に使うアプリを公開しました。
この記事ではアプリの使い方などを解説していこうと思います。
PODBの気象データ
弊社が公開しているPODB(Prepper Open Data Bank)の中には気象データがあります。
Prepper Open Data Bank JAPANESE WEATHER DATA
こちらは気象庁が公開している気象データとなります。全国の観測所での気象実績および直近数日の予報データとなります。
気象データをより便利に使いたい
この気象データを実際の事業など役立てるには、自分が天気を知りたい場所がどの観測所に近いのかを把握している必要があります。
一つ二つであれば住所を調べて紐付けもできると思いますが、オフラインの店舗などの拠点を持っている事業を運営されている方であれば全部行うのは大変ですよね。
住所や緯度経度を観測所と紐づけることができれば、この問題は解決します。
気象データ作成アプリ紹介
そんな悩みを解決するために、このたびtruestarでは自動で観測所の紐付けを行って気象データを抽出してくれるアプリを作成しました。
気象実績データを作成するアプリと、気象予報データを作成するアプリの二つがあります。作成したアプリはSnowflake Marketplaceで公開しているのですぐに使うことができます。
Snowflake Marketplaceとは?
Snowflake MarketplaceはデータクラウドサービスであるSnowflakeの機能の一つです。この機能を使うと自分のアカウントが持つデータやアプリケーションを他のアカウントと共有することができます。

弊社もPrepper Open Data Bankというオープンデータを多数公開しています。
実際の使い方
それでは実際に使い方を見ていきましょう。
※利用には日本リージョンのSnowflakeアカウントが必要です。
Snowflakeは無料トライアルアカウントをすぐに作成できますのでお持ちでない方はこちらから作成してください。
気象実績データ作成アプリ
Snowflake Marketplaceからのダウンロード
まずはSnowflake Marketplaceに行きます。Snowsightの「Data Products」->「Marketplace」から行くことができます。
今回のアプリはこちらになります。

右上のGetボタンを押すと、アプリ名の指定などのオプションを選択する画面になります。Start trialを選択してGetを押しましょう。ボタンを押すとすぐにインストールが行われますので、View your appsボタンを押しましょう。
間違えてcloseを押してしまった場合はSnowsightのトップに戻って「Data」タブから先ほどインストールしたアプリを選択すれば同じ画面にいくことができます。

住所もしくは緯度経度の情報が入ったテーブルを作成する
さて、アプリを使ってみる前に、天気が知りたい住所のデータを作成しましょう。
ワークシートを開いて以下のSQLを実行してデータベースやテーブルを作成します。
CREATE DATABASE TEST_WEATHER_APP; USE DATABASE TEST_WEATHER_APP; CREATE SCHEMA SAMPLE_DATA; USE SCHEMA SAMPLE_DATA; CREATE TABLE ADDRESS_DATA ( id int, address string );
次に、データをINSERTします。こんな感じでやりましょう。
INSERT INTO ADDRESS_DATA VALUES(1, '東京都渋谷区東3-9-19 Vort恵比寿 maxim 8F'); INSERT INTO ADDRESS_DATA VALUES(2, '大阪市中央区平野町3-1-6 BizMiiX Yodoyabashi 304');
住所は上記のSQLをIDを変えて複数INSERTしてみてください。この後のテストが楽しくなります。
必要な権限の追加する
ワークシートで、さらにもう一つ必要な作業があります。
今回はアプリからテーブルを参照する必要がありますので、アプリケーションにSELECTの権限をつける必要があります。以下のように行います。
GRANT SELECT ON TEST_WEATHER_APP.SAMPLE_DATA.ADDRESS_DATA TO APPLICATION PODB_PLUS_JAPAN_WEATHER_HISTORY;
GUIでの使い方
さて、いよいよアプリの操作に入っていきましょう。
アプリを開くとこのような画面になります。

GUIでは住所データが入っているテーブルとカラムを指定し、対応する天気のデータが付与されたデータを作成するという手順になります。
テーブルの指定では先ほど作成したテーブルを選択しましょう。

次に住所のデータが入っているカラムを指定します。

取得したいデータの種類およびタイムスパンが選択もできます。今回は日次データですべてを選択しましょう。

データに不備がなければ天気のデータが付与されたデータが作成されます。

実績データのアプリでは、作成したデータの中の特定の住所のデータを時系列でグラフにする機能もついています。
アプリの下部で以下のように使うことができます。

ね、簡単でしょ?
CLIでの使い方
このアプリはCLIから実行する機能も備えています。使い方を解説します。
SQLワークシートを開き、アプリをインストールするときに使ったロールを指定してから以下のSQLを実行します。
※SQLで呼び出す際には参照するテーブルに対して権限を付与する方法が少し特殊なので以下の手順を踏む必要があります。
SET input_table = 'TEST_WEATHER_APP.SAMPLE_DATA.ADDRESS_DATA'; SET input_ref = SYSTEM$REFERENCE('TABLE', $input_table, 'SESSION', 'SELECT'); call PODB_PLUS_JAPAN_WEATHER_HISTORY.CORE.AMEDAS_PROC( $input_ref, 'daily', '2025-01-01', '2025-01-31', ARRAY_CONSTRUCT( 'RAINFALL_DAILY_TOTAL', 'TEMPERATURE_DAILY_AVG', 'TEMPERATURE_DAILY_MAX', 'TEMPERATURE_DAILY_MIN', 'WIND_SPEED_DAILY_AVG' ), 'address_mode', 'ADDRESS', NULL, NULL );
このSQLで呼び出している関数はアプリケーション内のWITH_AMEDAS_VIA_CLIにデータを保存していますので、もしテーブルにデータを保存したい場合には続けて以下のようなSQLを実行するのが良いでしょう。
-- 新しいテーブルを作成 CREATE TABLE TEST_WEATHER_APP.SAMPLE_DATA.OUTPUT_WEATHER_HISTORY_DATA AS SELECT * FROM PODB_PLUS_JAPAN_WEATHER_HISTORY.CORE.WITH_AMEDAS_VIA_CLI; -- 既存のテーブルにINSERT INSERT INTO TEST_WEATHER_APP.SAMPLE_DATA.OUTPUT_WEATHER_HISTORY_DATA SELECT * FROM PODB_PLUS_JAPAN_WEATHER_HISTORY.CORE.WITH_AMEDAS_VIA_CLI;
CLIから実行できるようになっていることで、SnowflakeTaskでの実行など各種自動化を行うことが可能です。ぜひ試してみてください。
気象予報データ作成アプリ
続いては気象予報データ作成アプリの方を解説していきます。
アプリはこちらになります。同じようにGetを押してインストールしましょう。

住所データの作成と必要な権限の追加までは同じ
住所が入ったテーブルに権限を付与するところまでは気象実績データ作成アプリと同じですので、そちらで住所が入ったテーブルを作成していればそこまでは作業が不要です。
こちらの別のアプリですので、こちらのアプリに対してもGRANT文を実行するところからスタートしましょう。
GRANT SELECT ON TEST_WEATHER_APP.SAMPLE_DATA.ADDRESS_DATA TO APPLICATION PODB_PLUS_JAPAN_WEATHER_FORECAST;
そこまでできたら実際にアプリで操作していきましょう。
GUIでの使い方
こちらのアプリも先ほどの実績データのアプリと同じく住所が入ったテーブルを指定してデータを作成する使い方になります。
今回もすべてを指定してみましょう。目的のデータがあるのであれば個別に選択すればOKです。

無事にデータを作成できました。作成したデータは画面に表示されているテーブルに格納されます。

ね、簡単でしょ?
CLIでの使い方
こちらのアプリもCLIでの機能を備えています。ワークシートを開いて以下のように実行してみましょう。
SET input_table = 'TEST_WEATHER_APP.SAMPLE_DATA.ADDRESS_DATA'; SET input_ref = SYSTEM$REFERENCE('TABLE', $input_table, 'SESSION', 'SELECT'); CALL PODB_PLUS_JAPAN_WEATHER_FORECAST.CORE.FORECAST_PROC( $input_ref, '2025-04-09', '2025-04-11', ARRAY_CONSTRUCT('FORECAST_WEATHER', 'PROBABILITY_OF_PRECIPITATION_00_06', 'PROBABILITY_OF_PRECIPITATION_06_12', 'PROBABILITY_OF_PRECIPITATION_12_18', 'PROBABILITY_OF_PRECIPITATION_18_24', 'FORECAST_WAVE', 'FORECAST_WIND'), 'address_mode', 'ADDRESS', NULL, NULL );
こちらもアプリケーション内のテーブルにデータを格納する関数となっていますので、別のテーブルにデータを保存したい場合にはCTAS構文
-- 新しいテーブルを作成 CREATE TABLE TEST_WEATHER_APP.SAMPLE_DATA.OUTPUT_WEATHER_FORECAST_DATA AS SELECT * FROM PODB_PLUS_JAPAN_WEATHER_FORECAST.CORE.WITH_3DAY_FORECAST_VIA_CLI; -- 既存のテーブルにINSERT INSERT INTO TEST_WEATHER_APP.SAMPLE_DATA.OUTPUT_WEATHER_FORECAST_DATA SELECT * FROM PODB_PLUS_JAPAN_WEATHER_FORECAST.CORE.WITH_3DAY_FORECAST_VIA_CLI;
やINSERT AS SELECTのSQLを使うと便利です。
SQLで実行できることで、定期実行で天気予報のデータを作成してそのデータを用いてメールを配信するなど、実運用に応用できますね。ぜひ試してみてください。
本アプリの製品版についての注意点
現在公開しているアプリは無料トライアル版です。
今後さらに機能の追加などを行った後に製品版のアプリを公開する予定です。
追加して欲しい機能などの要望は受け付けておりますので、以下のメールにご連絡いただくか、開発者に直接Xなどでご連絡いただけると幸いです。(@kommy_jp)
では、本日はここまで。
それじゃあ、バイバイ!