Explore weather data

내 진행 상황 확인하기

/ 25

Explore New York citizen complaints data

내 진행 상황 확인하기

/ 25

Saving a new table of weather data

내 진행 상황 확인하기

/ 20

Find correlation between weather and complaints

내 진행 상황 확인하기

/ 30

이 실습에는 학습을 지원하는 AI 도구가 통합되어 있을 수 있습니다.

GSP009

Google Cloud 사용자 주도형 실습

개요

이 실습에서는 BigQuery를 사용하여 NOAA의 과거 기상 관측 데이터를 분석한 다음, 해당 기상 데이터를 뉴욕시 311 핫라인에 접수된 시민 민원 데이터와 함께 활용합니다. 이 과정은 데이터 변수 간의 상관관계를 보여주는 Reto Meier의 블로그 게시물과 매우 유사합니다.

또한 과학자에게 매우 유용한 Google Cloud의 다양한 기능을 살펴봅니다.

  1. 서버리스: 작업을 위해 데이터를 로컬 컴퓨터로 다운로드할 필요 없이 클라우드에 있는 데이터 세트를 이용하면 됩니다.
  2. 사용 편의성: 색인 생성과 같은 데이터 준비 과정 없이 데이터 세트에 임시 SQL 쿼리를 실행할 수 있습니다.
  3. 규모: 규모가 극히 큰 데이터 세트도 대화형으로 데이터 탐색을 수행할 수 있습니다. 적정 시간 내 작업을 수행하기 위해 데이터를 샘플링할 필요가 없습니다.
  4. 공유성: 다른 데이터 세트의 데이터에 아무런 문제 없이 쿼리를 실행할 수 있습니다. BigQuery는 데이터 세트를 공유할 수 있는 편리한 방법입니다. 물론 데이터를 비공개로 보호하거나 특정인을 지정해서만 공유할 수도 있습니다. 모든 데이터를 공개할 필요는 없습니다.

최종적으로는 날씨와 상관관계가 있는 시민 민원의 유형을 파악하게 됩니다. 예를 들어 예상대로 주택 난방기 관련 민원은 날씨가 추울 때 가장 많이 발생한다는 사실을 확인할 수 있습니다.

열 관련 일일 311 신고 건수와 일일 평균 기온의 분산형 차트

학습할 내용

이 실습에서 학습할 내용은 다음과 같습니다.

  • BigQuery 콘솔에서 대화형 쿼리를 수행합니다.
  • 다양한 데이터 세트를 조합하여 분석을 실행합니다.
  • CORR 함수를 사용하여 데이터 세트 간에 양의 상관관계, 음의 상관관계 또는 상관관계가 없는지 확인합니다.

기본 요건

이 실습은 초급용이며, BigQuery와 SQL에 대한 기본적인 사용 경험이 있다고 가정합니다. BigQuery나 MySQL을 사용해 본 적이 없다면 BigQuery: Qwik Start - 콘솔 실습을 통해 이러한 Google Cloud 서비스를 빠르게 익힐 수 있습니다.

설정 및 요건

실습 시작 버튼을 클릭하기 전에

다음 안내를 확인하세요. 실습에는 시간 제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머는 Google Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지를 표시합니다.

실무형 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 실습 활동을 진행할 수 있습니다. 실습 시간 동안 Google Cloud에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다.

이 실습을 완료하려면 다음을 준비해야 합니다.

  • 표준 인터넷 브라우저 액세스 권한(Chrome 브라우저 권장)
참고: 이 실습을 실행하려면 시크릿 모드(권장) 또는 시크릿 브라우저 창을 사용하세요. 개인 계정과 학습자 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.
  • 실습을 완료하기에 충분한 시간(실습을 시작하고 나면 일시중지할 수 없음)
참고: 이 실습에는 학습자 계정만 사용하세요. 다른 Google Cloud 계정을 사용하는 경우 해당 계정에 비용이 청구될 수 있습니다.

실습을 시작하고 Google Cloud 콘솔에 로그인하는 방법

  1. 실습 시작 버튼을 클릭합니다. 실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 대화상자가 열립니다. 오른쪽에는 다음과 같은 항목이 포함된 실습 설정 및 액세스 패널이 있습니다.

    • Google Cloud 콘솔 열기 버튼
    • 이 실습에 사용해야 하는 임시 사용자 인증 정보(사용자 이름 및 비밀번호)
    • 필요한 경우 실습 진행을 위한 기타 정보

    실습 타이머는 페이지 상단에 있으며 남은 시간을 표시합니다.

  2. Google Cloud 콘솔 열기를 클릭합니다(Chrome 브라우저를 실행 중인 경우 마우스 오른쪽 버튼으로 클릭하고 시크릿 창에서 링크 열기를 선택합니다).

    실습에서 리소스가 가동되면 다른 탭이 열리고 로그인 페이지가 표시됩니다.

    팁: 두 개의 탭을 각각 별도의 창으로 나란히 정렬하세요.

    참고: 계정 선택 대화상자가 표시되면 다른 계정 사용을 클릭합니다.
  3. 필요한 경우 아래의 사용자 이름을 복사하여 로그인 대화상자에 붙여넣습니다.

    {{{user_0.username | "Username"}}}

    실습 설정 및 액세스 패널에서도 사용자 이름을 확인할 수 있습니다.

  4. 다음을 클릭합니다.

  5. 아래의 비밀번호를 복사하여 시작하기 대화상자에 붙여넣습니다.

    {{{user_0.password | "Password"}}}

    실습 설정 및 액세스 패널에서도 비밀번호를 확인할 수 있습니다.

  6. 다음을 클릭합니다.

    중요: 실습에서 제공하는 사용자 인증 정보를 사용해야 합니다. Google Cloud 계정 사용자 인증 정보를 사용하지 마세요. 참고: 이 실습에 자신의 Google Cloud 계정을 사용하면 추가 요금이 발생할 수 있습니다.
  7. 이후에 표시되는 페이지를 클릭하여 넘깁니다.

    • 이용약관에 동의하세요.
    • 임시 계정이므로 복구 옵션이나 2단계 인증을 추가하지 마세요.
    • 무료 체험판을 신청하지 마세요.

잠시 후 Google Cloud 콘솔이 이 탭에서 열립니다.

참고: Google Cloud 제품 및 서비스에 액세스하려면 탐색 메뉴를 클릭하거나 검색창에 제품 또는 서비스 이름을 입력합니다. 탐색 메뉴 아이콘 및 검색창

작업 1. 날씨 데이터 살펴보기

BigQuery 콘솔 열기

  1. Google Cloud 콘솔에서 탐색 메뉴 > BigQuery를 선택합니다.

Cloud 콘솔의 BigQuery에 오신 것을 환영합니다라는 메시지 상자가 열립니다. 이 메시지 상자에서는 빠른 시작 가이드 및 출시 노트로 연결되는 링크가 제공됩니다.

  1. 완료를 클릭합니다.

BigQuery 콘솔이 열립니다.

  1. 탐색기 탭에서 + 데이터 추가를 클릭합니다.

'데이터 추가' 창이 열립니다.

  1. '추가 소스'에서 이름으로 프로젝트에 별표표시를 클릭합니다.

  2. bigquery-public-data라고 입력하고 별표표시를 클릭합니다.

BigQuery 콘솔의 탐색기 창에 프로젝트가 2개 표시됩니다. 하나는 이름이 실습 프로젝트 ID이고 다른 하나는 이름이 bigquery-public-data입니다.

  1. BigQuery 콘솔의 탐색기 창에서 bigquery-public-data 데이터 세트를 펼친 후 데이터 세트를 클릭합니다. 속성 이름 또는 값 입력 필드에서 noaa_gsod를 검색하고 gsod2014 테이블을 선택합니다.

  2. 테이블(gsod2014) 창에서 미리보기 탭을 클릭합니다.

미리보기 탭 페이지

  1. 열 및 데이터 값 일부를 살펴봅니다.

  2. 쿼리를 클릭한 다음, 다음 쿼리로 바꿉니다.

SELECT -- Create a timestamp from the date components. stn, TIMESTAMP(CONCAT(year,"-",mo,"-",da)) AS timestamp, -- Replace numerical null values with actual null AVG(IF (temp=9999.9, null, temp)) AS temperature, AVG(IF (wdsp="999.9", null, CAST(wdsp AS Float64))) AS wind_speed, AVG(IF (prcp=99.99, 0, prcp)) AS precipitation FROM `bigquery-public-data.noaa_gsod.gsod20*` WHERE CAST(YEAR AS INT64) > 2010 AND CAST(MO AS INT64) = 6 AND CAST(DA AS INT64) = 12 AND (stn="725030" OR -- La Guardia stn="744860") -- JFK GROUP BY stn, timestamp ORDER BY timestamp DESC, stn ASC
  1. 실행을 클릭합니다. 결과를 보고 이 쿼리가 어떤 작업을 수행하는지 확인해 보세요.

아래의 내 진행 상황 확인하기를 클릭하여 실습 진행 상황을 확인하세요.

날씨 데이터 살펴보기

작업 2. 뉴욕시 시민 민원 데이터 살펴보기

  1. BigQuery 콘솔의 탐색기 창에서 새로 추가된 bigquery-public-data 데이터 세트를 선택한 다음, 데이터 세트를 클릭합니다. 속성 이름 또는 값 입력 필드에서 new_york_311 데이터 세트를 검색하고 311_service_requests 테이블을 선택합니다.

  2. 그런 다음 미리보기 탭을 클릭합니다. 콘솔이 다음과 유사하게 표시됩니다.

311_service_requests 미리보기 탭 페이지

  1. 열 및 데이터 값 일부를 살펴봅니다.

  2. 편집기가 닫혀 있다면 '+'(SQL 쿼리) 아이콘을 클릭합니다.

  3. 다음을 쿼리 편집기에 붙여넣습니다.

SELECT EXTRACT(YEAR FROM created_date) AS year, complaint_type, COUNT(1) AS num_complaints FROM `bigquery-public-data.new_york.311_service_requests` GROUP BY year, complaint_type ORDER BY num_complaints DESC
  1. 실행을 클릭합니다.

  2. 결과를 살펴보고 가장 많이 접수된 민원 유형이 무엇인지 확인합니다. 이 실습의 뒷부분에서는 이러한 민원이 날씨와 어떤 상관관계가 있는지 확인해 봅니다.

아래의 내 진행 상황 확인하기를 클릭하여 실습 진행 상황을 확인하세요.

뉴욕시 시민 민원 데이터 살펴보기

작업 3. 새 날씨 데이터 테이블 저장하기

  1. BigQuery 콘솔의 탐색기 창에서 Project ID 옆에 있는 점 3개 메뉴를 클릭한 다음 데이터 세트 만들기를 선택합니다.

  2. '데이터 세트 만들기' 대화상자에서 데이터 세트 IDdemos로 설정하고 다른 옵션은 기본값으로 둡니다.

  3. 데이터 세트 만들기를 클릭합니다. 이제 프로젝트에 demos라는 데이터 세트가 생성됩니다.

  4. '+'(SQL 쿼리) 아이콘을 클릭한 후 다음 쿼리를 실행합니다.

SELECT -- Create a timestamp from the date components. timestamp(concat(year,"-",mo,"-",da)) as timestamp, -- Replace numerical null values with actual nulls AVG(IF (temp=9999.9, null, temp)) AS temperature, AVG(IF (visib=999.9, null, visib)) AS visibility, AVG(IF (wdsp="999.9", null, CAST(wdsp AS Float64))) AS wind_speed, AVG(IF (gust=999.9, null, gust)) AS wind_gust, AVG(IF (prcp=99.99, null, prcp)) AS precipitation, AVG(IF (sndp=999.9, null, sndp)) AS snow_depth FROM `bigquery-public-data.noaa_gsod.gsod20*` WHERE CAST(YEAR AS INT64) > 2008 AND (stn="725030" OR -- La Guardia stn="744860") -- JFK GROUP BY timestamp
  1. 쿼리 편집기 섹션에서 수정 > 쿼리 설정을 클릭합니다.

  2. '쿼리 설정' 대화상자에서 다음 필드를 설정합니다. 다른 모든 필드는 기본값으로 둡니다.

Destination: 쿼리 결과의 대상 테이블 설정 선택

Dataset: .demos를 입력하고 데이터 세트를 선택

Table Id: nyc_weather를 입력

Results size: 크기가 큰 결과 허용(크기 제한 없음)을 확인

  1. 저장을 클릭합니다.

  2. 실행을 클릭합니다.

이제 생성한 demos 데이터 세트에 결과가 저장됩니다.

  1. 편집 > 쿼리 설정으로 돌아간 다음, '대상' 옵션에서 임시 테이블에 쿼리 결과 저장을 선택합니다. 이렇게 하면 이후 실행하는 쿼리에서는 demos 데이터 세트가 대상에서 제거됩니다.

  2. 저장을 클릭하여 쿼리 설정을 닫습니다.

아래의 내 진행 상황 확인하기를 클릭하여 실습 진행 상황을 확인하세요.

새 날씨 데이터 테이블 저장하기

작업 4. 데이터 세트 간의 상관관계 찾기

CORR function으로 측정된 강한 상관관계는 두 변수 간에 밀접하고 일관된 관계가 있음을 의미합니다. 한 변수의 값이 증가하면 다른 변수의 값도 예측 가능한 방식으로 증가(양의 상관관계)하거나 감소(음의 상관관계)하는 경향이 있습니다. 강한 상관관계는 일반적으로 절댓값이 0.7 이상인 경우를 의미합니다. 이는 한 변수의 변화만으로도 다른 변수 변화의 최소 49%를 설명할 수 있다는 의미입니다.

다음으로 CORR 함수를 사용하여 접수된 민원 건수와 일일 온도를 비교합니다.

  1. '+'(SQL 쿼리) 아이콘을 클릭한 후 다음 쿼리를 실행합니다.
SELECT descriptor, sum(complaint_count) as total_complaint_count, count(temperature) as data_count, ROUND(corr(temperature, avg_count),3) AS corr_count, ROUND(corr(temperature, avg_pct_count),3) AS corr_pct From ( SELECT avg(pct_count) as avg_pct_count, avg(day_count) as avg_count, sum(day_count) as complaint_count, descriptor, temperature FROM ( SELECT DATE(timestamp) AS date, temperature FROM demos.nyc_weather) a JOIN ( SELECT x.date, descriptor, day_count, day_count / all_calls_count as pct_count FROM (SELECT DATE(created_date) AS date, concat(complaint_type, ": ", descriptor) as descriptor, COUNT(*) AS day_count FROM `bigquery-public-data.new_york.311_service_requests` GROUP BY date, descriptor)x JOIN ( SELECT DATE(timestamp) AS date, COUNT(*) AS all_calls_count FROM `demos.nyc_weather` GROUP BY date )y ON x.date=y.date )b ON a.date = b.date GROUP BY descriptor, temperature ) GROUP BY descriptor HAVING total_complaint_count > 5000 AND ABS(corr_pct) > 0.5 AND data_count > 5 ORDER BY ABS(corr_pct) DESC

결과를 보면 난방 관련 민원은 기온과 음의 상관관계(즉, 추운 날일수록 난방 관련 민원이 많음)를 보이며, 고사목 관련 민원은 기온과 양의 상관관계(즉, 더운 날일수록 민원이 많음)를 보입니다.

다음으로 CORR 함수를 사용하여 민원 건수와 풍속을 비교합니다.

  1. '+'(SQL 쿼리) 아이콘을 클릭한 후 다음 쿼리를 실행합니다.
SELECT descriptor, sum(complaint_count) as total_complaint_count, count(wind_speed) as data_count, ROUND(corr(wind_speed, avg_count),3) AS corr_count, ROUND(corr(wind_speed, avg_pct_count),3) AS corr_pct From ( SELECT avg(pct_count) as avg_pct_count, avg(day_count) as avg_count, sum(day_count) as complaint_count, descriptor, wind_speed FROM ( SELECT DATE(timestamp) AS date, wind_speed FROM demos.nyc_weather) a JOIN ( SELECT x.date, descriptor, day_count, day_count / all_calls_count as pct_count FROM (SELECT DATE(created_date) AS date, concat(complaint_type, ": ", descriptor) as descriptor, COUNT(*) AS day_count FROM `bigquery-public-data.new_york.311_service_requests` GROUP BY date, descriptor)x JOIN ( SELECT DATE(timestamp) AS date, COUNT(*) AS all_calls_count FROM `demos.nyc_weather` GROUP BY date )y ON x.date=y.date )b ON a.date = b.date GROUP BY descriptor, wind_speed ) GROUP BY descriptor HAVING total_complaint_count > 5000 AND ABS(corr_pct) > 0.5 AND data_count > 5 ORDER BY ABS(corr_pct) DESC
  1. 소음 관련 민원에 대한 Corr 열이 모두 음수임을 확인합니다. 바람이 부는 날 소음 관련 민원이 줄어드는 이유에 대한 가설이 있나요? 상관계수가 통계적으로 유의하다고 볼 수 있을까요?

아래의 내 진행 상황 확인하기를 클릭하여 실습 진행 상황을 확인하세요.

날씨와 민원 간의 상관관계 찾기

수고하셨습니다

이 실습에서는 클러스터를 설정하거나 색인을 생성하는 등의 작업 없이도 데이터를 쿼리할 수 있었습니다. 또한 두 데이터 세트를 결합해 결과를 서로 연관 지어 분석함으로써 흥미로운 인사이트를 얻을 수 있었습니다.

다음 단계/더 학습하기

Google Cloud 교육 및 자격증

Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다.

설명서 최종 업데이트: 2026년 6월 12일

실습 최종 테스트: 2026년 6월 12일

Copyright 2026 Google LLC. All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.

시작하기 전에

  1. 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
  2. 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
  3. 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.

시크릿 브라우징 사용

  1. 실습에 입력한 사용자 이름비밀번호를 복사합니다.
  2. 비공개 모드에서 콘솔 열기를 클릭합니다.

콘솔에 로그인

    실습 사용자 인증 정보를 사용하여
  1. 로그인합니다. 다른 사용자 인증 정보를 사용하면 오류가 발생하거나 요금이 부과될 수 있습니다.
  2. 약관에 동의하고 리소스 복구 페이지를 건너뜁니다.
  3. 실습을 완료했거나 다시 시작하려고 하는 경우가 아니면 실습 종료를 클릭하지 마세요. 이 버튼을 클릭하면 작업 내용이 지워지고 프로젝트가 삭제됩니다.

현재 이 콘텐츠를 이용할 수 없습니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

감사합니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

한 번에 실습 1개만 가능

모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.

시크릿 브라우징을 사용하여 실습 실행하기

이 실습을 실행하는 가장 좋은 방법은 시크릿 모드 또는 시크릿 브라우저 창을 사용하는 것입니다. 개인 계정과 학생 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.