Données d’échantillon : OpenWeatherMap — Obsolète

OpenWeatherMap est un référentiel de données météorologiques historiques et prévisionnelles récentes au format JSON. Snowflake importe ces données météorologiques et les met gratuitement à la disposition de tous les comptes Snowflake afin que vous puissiez essayer notre fonctionnalité de colonnes semi-structurées unique et hautement performante à l’aide de données réelles.

Important

Les exemples de données météorologiques sont fournis à des fins d’évaluation et de test. Les données sont mises à jour régulièrement dans Snowflake, mais ne sont pas gérées en temps réel (c’est-à-dire que nous ne garantissons pas que les données sont toujours à jour ou exactes).

Ainsi, nous déconseillons d’utiliser les données dans les systèmes de production.

Dans ce chapitre :

Tables

L’ensemble de données comprend les tables suivantes, toutes stockées au format natif JSON et accumulés au cours du temps :

Nom de la table

Description

Description JSON

DAILY_14_TOTAL

12 jours de prévisions météorologiques quotidiennes pour plus de 20 000 villes.

Cliquez ici

DAILY_16_TOTAL

12 jours de prévisions météorologiques quotidiennes pour plus de 200 000 villes (fréquence des mises à jour plus faible).

Cliquez ici

HOURLY_14_TOTAL

4 jours de prévisions météorologiques horaires pour plus de 20 000 villes.

Cliquez ici

HOURLY_16_TOTAL

4 jours de prévisions météorologiques horaires pour plus de 200 000 villes (fréquence des mises à jour plus faible).

Cliquez ici

WEATHER_14_TOTAL

Météo récente pour 20 000 villes.

Cliquez ici

Exemples de requête

La requête suivante récupère les derniers relevés de température maximum et minimum de la ville de New York convertis en Fahrenheit depuis le celsius, et avec la latitude et la longitude des relevés.

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;

La requête suivante compare les prévisions météorologiques aux relevés météorologiques réels :

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;