샘플 데이터: 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;
일기 예보와 실제 날씨 검침값과 비교하는 쿼리는 다음과 같습니다.
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;