샘플 데이터: OpenWeatherMap — 사용되지 않음

OpenWeatherMap 는 최근 과거 및 예측 날씨 데이터를 JSON 형식으로 제공하는 리포지토리입니다. Snowflake는 이러한 날씨 데이터를 가져와 모든 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;
Copy

일기 예보와 실제 날씨 검침값과 비교하는 쿼리는 다음과 같습니다.

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;
Copy