GCP Settings 2022 ver
Page content
개요
- GCP 빅쿼리를 연동하는 예제를 구현한다.
- 먼저 빅쿼리를 통해 데이터를 적재하는 예제를 확인한다.
- 구글 코랩에서 빅쿼리 데이터를 불러온다.
- 데이터 스튜디오에서 빅쿼리 데이터를 불러온다.
소개
- 빅쿼리를 소개하는 영상은 유투브에서 검색하면 매우 쉽게 확인할 수 있다.
Google Cloud 회원가입
- 준비물
- Google 계정
- 신용카드나 체크카드 (개인적으로 돈이 없는 체크카드 사용 권장)
- 구글 클라우드 사이트 접속
- 무료 서버 받으려면 아래 화면에서
TRY IT FREE
를 클릭한다.
- 가입 시, 무료 크레디트 300달러를 부여하며 3개월 정도 기간 부여됨
- 가입을 위해 카드 정보를 입력하면 바로 가입이 완료가 된다.
BigQuery 들어가기
- 구글 클라우드 콘솔 화면은 다음과 같다.
- 먼저 왼쪽 상단에서 신규 프로젝트를 생성한다.
- 왼쪽 메뉴 바에서 스크롤을 계속 내리면 하단에서
BigQuery
메뉴를 클릭할 수 있다.
- 검색창에서 public을 검색하고 실행한다.
- Found 1 result. Broaden search to all projects 영역을 클릭하면 public 데이터를 확인할 수 있다.
쿼리 테스트
- SQL 쿼리를 테스트한다.
SELECT count(*) FROM `bigquery-public-data.covid19_public_forecasts.county_14d`
- 결과창에 다음과 같이 나오면 정상적으로 쿼리가 들어간 것을 확인할 수 있다.
- 이번엔 조금 복잡한 코드를 작성한다.
SELECT EXTRACT(YEAR FROM starttime) AS year,
EXTRACT(MONTH FROM starttime) AS month,
COUNT(starttime) AS number_one_way
FROM
`bigquery-public-data.new_york_citibike.citibike_trips`
WHERE
start_station_name != end_station_name
GROUP BY year, month
ORDER BY year ASC, month ASC
- 위 쿼리 결과의 값은 아래와 같다.
데이터 추가
-
이번엔 데이터를 추가하도록 한다.
- 빅쿼리에 데이터 추가 방법은 여러가지 있다. 그러나 여기에서는 빅쿼리 GUI에서 업로드 하는 방법을 소개한다.
- 해당 파일을 내려받는다. mascots.csv
-
프로젝트 설정 창에서
Open
을 클릭한다. -
아래 화면에서 먼저
CREATE DATASET
을 클릭한다.
- 먼저 아래와 같이 Create Dataset을 설정한다.
- 지역은 US 기준으로 설정하는 것을 추천한다.
- 동일한 방식으로 Create Table을 클릭한다.
- mascots.csv 파일을 불러오면 아래와 같이 설정을 하면 끝이다.
- 쿼리 테스트를 통해 데이터를 조회한다.
SELECT * FROM `bigquery-public-data-338604.baseketbll.mascots` LIMIT 10
- 이번에는 외부 데이터와 함께 쿼리를 작성해본다.
- 검색창에서 ncaa를 검색한 뒤, ncaa_basketball 데이터를 pin project로 고정한다.
WITH matchups AS (
SELECT g.win_team_id
, g.lose_team_id
, (SELECT win_masc.tax_family FROM `basketball.mascots` win_masc WHERE win_masc.id = g.win_team_id) AS tax_family_winner
, (SELECT win_masc.tax_genus FROM `basketball.mascots` win_masc WHERE win_masc.id = g.win_team_id) AS tax_genus_winner
, (SELECT lose_masc.tax_family FROM `basketball.mascots` lose_masc WHERE lose_masc.id = g.lose_team_id) AS tax_family_loser
, (SELECT lose_masc.tax_genus FROM `basketball.mascots` lose_masc WHERE lose_masc.id = g.lose_team_id) AS tax_genus_loser
FROM `bigquery-public-data.ncaa_basketball.mbb_historical_tournament_games` g
)
SELECT
SUM(IF(tax_family_winner = "Felidae" AND tax_genus_loser = "Canis", 1, 0)) AS num_cat_wins,
SUM(IF(tax_genus_winner = "Canis" AND tax_family_loser = "Felidae", 1, 0)) AS num_dog_wins
FROM matchups
구글 코랩 연동 (with Python)
- 이번에는 구글 코랩에서 파이썬을 활용하여 해당 코드를 직접 실행하는 코드를 작성한다.
- 먼저 계정인증을 진행한다.
from google.colab import auth
auth.authenticate_user()
print('Authenticated')
- 테이블을 Interactive하게 보여주기 위해 아래 코드를 실행한다.
%load_ext google.colab.data_table
- 이번에는 프로젝트 id를 설정하고, 쿼리를 작성하여 결괏값을 확인한다.
from google.cloud import bigquery
project_id = 'bigquery-public-data-338604'
client = bigquery.Client(project=project_id)
df = client.query('''
SELECT * FROM `basketball.mascots`
''').to_dataframe()
df
- 빅쿼리 콘솔에서 진행했던 해당 쿼리를 재 진행한다. 결괏값이 동일하면 된 것이다.
df = client.query('''
WITH matchups AS (
SELECT g.win_team_id
, g.lose_team_id
, (SELECT win_masc.tax_family FROM `basketball.mascots` win_masc WHERE win_masc.id = g.win_team_id) AS tax_family_winner
, (SELECT win_masc.tax_genus FROM `basketball.mascots` win_masc WHERE win_masc.id = g.win_team_id) AS tax_genus_winner
, (SELECT lose_masc.tax_family FROM `basketball.mascots` lose_masc WHERE lose_masc.id = g.lose_team_id) AS tax_family_loser
, (SELECT lose_masc.tax_genus FROM `basketball.mascots` lose_masc WHERE lose_masc.id = g.lose_team_id) AS tax_genus_loser
FROM `bigquery-public-data.ncaa_basketball.mbb_historical_tournament_games` g
)
SELECT
SUM(IF(tax_family_winner = "Felidae" AND tax_genus_loser = "Canis", 1, 0)) AS num_cat_wins,
SUM(IF(tax_genus_winner = "Canis" AND tax_family_loser = "Felidae", 1, 0)) AS num_dog_wins
FROM matchups
''').to_dataframe()
df
데이터 스튜디오 with 빅쿼리
- 데이터 스튜디오 파일을 연다.
- Create - Report 클릭한다.
Google Connectors
에서BigQuery
를 클릭한다.- 필자는
iris.csv
파일을 업로드 하였다.
- 필자는
- 위와 같이 순차적으로 클릭을 한 뒤
ADD
버튼을 클릭한다.
ADD TO REPORT
를 클릭한다.- 이제 데이터 스튜디오에서 시각화 차트를 작성할 수 있다.