サンプルデータ: 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;