Google BigQuery(빅쿼리)는
구글 클라우드 서비스에서 제공하는 도구 중 하나로, 대규모 데이터를 빠르게 분석할 수 있도록 지원하는 서버리스 데이터 웨어하우스이다.
SQL만 알면 클라우드 인프라 지식 없이도 수십 GB~TB급 데이터를 빠르게 분석할 수 있다는 장점이 있다.
이 글에서는 구글 BigQuery를 무료로 사용하기 위한 환경 설정부터
SQL 실습을 진행하기 위해 💡 빅쿼리에서 테이블을 정의하는 규칙과 💡 빅쿼리에서 제공하는 유용한 기능까지 정리해 보았다.
또한 기존 계정에서 무료 체험기간이 종료된 경우, 새 계정으로 결제 수단을 등록할 때 생길 수 있는 문제와 해결 방법도 남겨두었으니
혹시 같은 문제를 겪는 경우가 생긴다면 도움이 되길 바란다.
구글 BigQuery를 사용하기 위해서는 아래의 두 가지가 필요하다.
이 두 가지를 준비하고
GCP(Google Cloud Platform)에 접속하여 회원 가입 및 로그인을 진행한다.
그런데 본인의 경우에는 기존에 빅쿼리를 사용한 적이 있어서
아래처럼 무료 체험 기간이 종료되었다는 안내를 받았다.
기존 계정으로는 유료 결제를 진행해야 쿼리 실행이 가능한 상황이었기 때문에
구글 BigQuery에서 무료로 SQL 실습을 진행하기 위해, 새로운 구글 계정을 만들고 계정 등록을 실시했다.
약관 동의 후 결제 정보 확인 단계에서 결제 수단 카드를 등록하게 된다.
이 결제 수단 등록은 자동 가입 방지용이며, 무료 체험 기간 중에는 요금이 청구되지 않는다 :)
그런데 안내 메시지와 함께 결제 수단이 등록되지 않는 문제가 발생했다.
Your request failed.
Ensure your payment method info is correct or add a new payment method to your Google Account.
[Learn more](https://support.google.com/googlepay?p=transaction_troubleshooting&error=OR-KCCSEH-11)
[OR-KCCSEH-11]
결제 방법 정보가 올바른지 확인하거나 Google 계정에 새 결제 방법을 추가하라는 메시지인데,
자세한 내용을 보기 위해 Google Pay 고객센터 에 접속했지만 해당 에러 코드를 통해
'이 작업을 완료할 수 없습니다. Google Payments에 문의하세요.'
정도의 해결책을 안내받을 수 있었다.
일단 문제가 발생할 수 있는 원인을 분석해 보았다.
- 등록한 결제 카드 정보는? 올바르게 입력했다.
- 카드 정보와 구글 계정의 개인정보 또한? 일치했다.
- 기존 계정에서는 해당 카드로 결제 정보 등록이 잘 되었었다.
따라서 카드의 문제거나, 새로 생성한 구글 계정 정보의 문제는 아니라고 판단했다.
GCP에서만이 아니라, 구글 서비스 자체에서 결제 정보를 등록할 때 발생할 수 있는 문제일 것이라 생각하고 구글 결제 에러와 관련한 정보들을 찾아보았다.
그러던 와중에 해당 블로그에서 도움을 받아 결제 정보 확인 및 빅쿼리 계정 등록을 성공적으로 완료할 수 있었다.
나의 경우에 문제를 해결한 방법은
기존의 구글 계정에 등록되어 있는 결제 수단을 제거하는 것
이었다. 새로운 구글 계정으로 결제 수단을 등록할 때 사용하려고 했던 카드가 기존의 구글 계정에서 이미 결제 수단으로 등록되어 있어서 해당 문제가 계속 발생했던 것이었다.
기존의 구글 계정으로 접속해서 등록되어 있던 결제 수단 카드를 제거하고, 새로운 구글 계정으로 등록을 시도했더니 해당 문제가 발생하지 않고 GCP에서 계정 등록을 무사히 마쳤다.
이제 본격적으로 구글 BigQuery에서 SQL로 데이터 분석을 하기 위한 환경을 설정해 보자.
계정 생성 후 GCP(Google Cloud Platform)에 접속하면 아래의 화면을 만나게 된다.
참고로,
일반 계정 활성화(Activate full account) 버튼을 누르게 되면 유료 계정으로 전환되기 때문에 알아두기 바란다.
좌측 탭에서 BigQuery 탭에 들어가게 되면 데이터 세트를 생성할 수 있다.
이 데이터셋 안에는 여러 개의 쿼리와 여러 개의 테이블을 담을 수 있다.
앞으로 진행할 실습들은 이 데이터셋 위에서 생성하고 분석할 예정이다.
이때 My First Project에서 자동으로 프로젝트 ID가 발번되어 있는 것도 확인할 수 있다.


만들어진 데이터세트에서 SQL 실습을 위해 임시 테이블을 생성하고 쿼리를 실행해 보자.
SQL 작업 공간(제목 없음 창)에 테이블 생성 및 데이터 삽입 쿼리를 작성하고 실행한다.

임시 테이블 생성하기
-- 프로젝트 -> 데이터세트 안에
-- 테이블을 생성하고, 이미 존재하는 경우에는 테이블을 대체한다.
CREATE OR REPLACE TABLE `project_name.dataset_name.테이블명`(
-- 컬럼 자료형
order_id STRING,
user_id STRING,
item_id STRING,
price FLOAT64
);
이때 빅쿼리에서 테이블을 지정하는 규칙에 주의해야 한다.
`프로젝트ID.데이터세트.테이블명`
이렇게 반드시 백틱(``) 안에 작성해야 한다는 것이다.
이후에 해당 테이블을 사용할 때는 백틱(``)을 생략하는 것이 가능하다.
SELECT *
FROM ex1;
-- Table "ex1" must be qualified with a dataset (e.g. dataset.table).
임시 테이블에 데이터 삽입하기
INSERT INTO project_name.dataset_name.테이블명 (order_id, user_id, item_id, price)
VALUES
('order_001', 'customer_01', 'product_001', 100.0),
('order_002', 'customer_02', 'product_003',
...
('order_0010', 'customer_08', 'product_012', 90.0);

테이블 조회하기
SELECT *
FROM project_name.dataset_name.ex1;
생성한 테이블을 조회해 보면 데이터가 잘 들어가있는 것을 확인할 수 있다.

또한 빅쿼리에서 제공하는 유용한 기능이 있는데
아래처럼 결과를 CSV 파일, JSON 파일, GoogleSheets 등으로 저장할 수 있다.
여기까지 구글 BigQuery에서 SQL 쿼리를 실행할 수 있는 환경 설정을 완료했다.
지금까지 Google BigQuery를 무료로 사용하는 방법부터,
테이블을 만들고 SQL 쿼리를 직접 실행해보는 실습 과정까지 단계별로 정리해 보았다.
BigQuery는 클라이언트 설치 없이 브라우저만으로도 실습이 가능하고 SQL만 알아도 대용량 데이터를 분석할 수 있는 강력한 도구라는 것을 알 수 있었다.
처음 설정할 때는 결제 수단 등록 에러(OR-KCCSEH-11) 같은 문제로 막히는 경우도 있지만, 위에서 소개한 방법이 해결책이 될 수 있으니 참고가 된다면 좋겠다 😊
다음 글에서는 이어서
윈도우 함수, 그룹 함수, JSON 형식의 데이터 등을 빅쿼리 환경에서 직접 실습하며 예제를 통해 정리해 볼 예정이다.