Google Cloud

Ch02 Working with BigQuery

I. Get Started

일단 시작해보자. https://console.cloud.google.com/bigquery

뉴욕주의 자전거 렌탈이 비가 올때와 그렇지 않을 때 수치를 비교하고자 않다. 어떻게 해야할까? 일단, 필요한 데이터는 두가지가 될 것이다. 첫번째는 자전거 렌탈 데이터가 필요하고, 두번째는 뉴욕주의 날씨와 관련된 데이터이다. 두개의 데이터를 조인(join)한 후 수치를 구해야 할 것이다.

위 화면에서 아래 소스코드를 입력한다.

WITH bicycle_rentals AS (
  SELECT
  COUNT(starttime) as num_trips,
  EXTRACT(DATE from starttime) as trip_date
  FROM `bigquery-public-data.new_york_citibike.citibike_trips` 
  GROUP BY trip_date
),

rainy_days AS
(
  SELECT
  date,
  (MAX(prcp) > 5) AS rainy
  FROM (
    SELECT wx.date AS date,
    IF (wx.element = 'PRCP', wx.value/10, NULL) AS prcp
    FROM `bigquery-public-data.ghcn_d.ghcnd_2016` AS wx 
    WHERE wx.id = 'USW00094728'
)
GROUP BY
  date
)
SELECT 
  ROUND(AVG(bk.num_trips)) AS num_trips, 
  wx.rainy
FROM bicycle_rentals AS bk
JOIN rainy_days AS wx
ON wx.date = bk.trip_date
GROUP BY wx.rainy
ROW num_trips rainy
1 39107.0 false
2 32052.0 true

Ch01 BigQuery getstarted

I. 자료 정리를 하며..

데이터 분석가에게 또는 싸이언티스트들에게 SQL문법은 매우 중요하다. 지금도 어딘가에는 데이터는 쌓이고 있고, 문제는 쌓여 있는 데이터를 활용해서 어떤 비즈니스 문제를 해결할지가 가장 큰 이슈이기 때문이다.

그동안 SQLMySQLRDB 문법, MongoDBNoSQL과 같은 문법으로 나누어서 볼 수 있다. 강사가 과거 프로젝트에서 사용했던 SQLMySQL, MSSQL, MongoDB가 있었는데, 각각의 문법이 다르다는 측면이 있어서 조금 애를 많이 먹었다. 특히 MongoDB문법은 JSON 형태로 되어 있기 때문에, 별도의 문법이라 보는게 더 낫다. 큰 데이터가 아니라 1-2GB 용량의 작은 데이터는 R 또는 파이썬에서 불러와 직접 처리한 후 다시 Insert하는 형태로 진행하였었다.