サンプルデータ:OpenWeatherMap --- 廃止

OpenWeatherMap は、 JSON 形式による最近の履歴と予測気象データのリポジトリです。Snowflakeはこの気象データをインポートし、すべてのSnowflakeアカウントで無料で利用できるようにするため、実世界のデータを使用して独自の高性能な半構造化円柱機能を試すことができます。

重要

サンプルの気象データは、評価とテストの目的で提供されます。データはSnowflakeで定期的に更新されますが、リアルタイムで維持されないため、更新が時として失敗する可能性があります(データが常に最新でギャップがないという保証はできません)。

そのため、実稼働システムでこのデータを使用することはお勧めしません。

このトピックの内容:

テーブル

データセットには以下のテーブルが含まれます。これらはすべてネイティブの JSON 形式で格納され、時間の経過とともに蓄積されます。

テーブル名

説明

JSON 説明

DAILY_14_TOTAL

20,000を超える都市の12日間の毎日の天気予報。

ここを をクリックします

DAILY_16_TOTAL

200,000を超える都市の12日間の毎日の天気予報(更新頻度が低い)。

ここを をクリックします

HOURLY_14_TOTAL

20,000を超える都市の4日間の毎時間の天気予報。

ここを をクリックします

HOURLY_16_TOTAL

200,000を超える都市の4日間の毎時間の天気予報(更新頻度が低い)。

ここを をクリックします

WEATHER_14_TOTAL

20,000の都市の最近の天気。

ここを をクリックします

クエリの例

次のクエリは、測定値の緯度と経度とともに、摂氏温度から華氏温度に変換されたニューヨーク市の最近の高温と低温の測定値を取得します。

select (V:main.temp_max - 273.15) * 1.8000 + 32.00 as temp_max_far,
       (V:main.temp_min - 273.15) * 1.8000 + 32.00 as temp_min_far,
       cast(V:time as TIMESTAMP) time,
       V:city.coord.lat lat,
       V:city.coord.lon lon,
       V
from snowflake_sample_data.weather.WEATHER_14_TOTAL
where v:city.name = 'New York'
and   v:city.country = 'US'
order by time desc
limit 10;

次のクエリは、天気予報を実際の天気測定値と比較します。

with
forecast as
(select ow.V:time         as prediction_dt,
        ow.V:city.name    as city,
        ow.V:city.country as country,
        cast(f.value:dt   as timestamp) as forecast_dt,
        f.value:temp.max  as forecast_max_k,
        f.value:temp.min  as forecast_min_k,
        f.value           as forecast
 from snowflake_sample_data.weather.daily_16_total ow, lateral FLATTEN(input => V, path => 'data') f),

actual as
(select V:main.temp_max as temp_max_k,
        V:main.temp_min as temp_min_k,
        cast(V:time as timestamp)     as time_dt,
        V:city.name     as city,
        V:city.country  as country
 from snowflake_sample_data.weather.WEATHER_14_TOTAL)

select cast(forecast.prediction_dt as timestamp) prediction_dt,
       forecast.forecast_dt,
       forecast.forecast_max_k,
       forecast.forecast_min_k,
       actual.temp_max_k,
       actual.temp_min_k
from actual
left join forecast on actual.city = forecast.city and
                      actual.country = forecast.country and
                      date_trunc(day, actual.time_dt) = date_trunc(day, forecast.forecast_dt)
where actual.city = 'New York'
and   actual.country = 'US'
order by forecast_dt desc, prediction_dt desc;