Data Analytics/Big Query

[Big Query] 빅쿼리 SELECT 결과 데이터로 새 테이블 만들기.

cheersHena 2024. 1. 2. 19:14
반응형

 

빅쿼리에서 대부분 대용량 데이터를 다룬다. 특히 기본적으로 빅쿼리는 NEST방식으로 데이터를 저장하기 때문에 배열 형식의 데이터는 UNNEST 함수를 써야만 하기 때문에 여간 번거로운게 아니다.

참고 포스팅) 

https://cheershennah.tistory.com/244

 

BigQuery 빅쿼리란?

BigQuery 빅쿼리란? 빅쿼리는 구글에서 만든 클라우드용 데이터웨어하우스(DW)로, 빅데이터에 최적회된 저장 및 분석용 클라우드 서비스이다. 빅쿼리의 구조는 관계형이 아닌 NoSQL기반의 데이터 저

cheershennah.tistory.com

전체 데이터가 아닌 일부 데이터 결과만을 데이터 풀로 보고자 할 때 SELECT 한 결과를 별도의 하나의 테이블로 만들어 사용할 수 있다. 

여기서는 CSV로 로컬에 테이블만들기, 빅쿼리에서 새테이블 만들기 2가지 알아보자. 

 

 

빅쿼리 SELECT 결과로 로컬 데이터베이스에 새 테이블 만들기.

 

1. 원하는 데이터를 빅쿼리에서 조회 > 조회결과를 CSV로 저장.

 

 

2. 로컬데이터베이스에 저장명과 똑같은 이름으로 테이블 생성

-- DB 생성
CREATE DATABASE [db명] default CHARACTER SET UTF8;
USE [db명];

 

생성해준후 편한 DBMS를 사용해서 테이블 확인. (필자는 DBeaver 사용) 

 

3. 테이블 > 데이터 가져오기 >  CVS  선택 > 진행 

 

완료 후 컬럼명, 데이터 타입 등 알맞게 변경 

 

4. 테이블을 조회해보면 빅쿼리에서 뽑아낸 데이터가 들어간 테이블 완성. 

-- DB 데이터 전체 조회 
SELECT * FROM [db명];

-- DB 스키마 조회 
DESC [db명];

 

 

 

TIP1) 엑셀 한글이 깨질 때 간단 해결법

1. 엑셀에서 데이터> 텍스트/CSV > 파일원본에서 유니코드 UTF-8 변환 적용 후 가져오기 

 

 

TIP2) 만약 데이터가 꼬여서 밀어넣는 중 오류가 난다면 전체 삭제 후 재진행 해주는게 가장 깔끔.

DELETE 문 보다는 TRANCATE를 추천. 

-- DB 삭제 
TRUNCATE TABLE [db명];

 

* SQL TRANCATE 이란? 

- 최초 생성되었을 당시의 Storage만 남기고, 데이터가 남겨있던 Storage는 Release 된다.

- TRUNCATE TABLE을 하면 CREATE TABLE을 한 직후의 상태와 같다.

- 자동 COMMIT이 되는 명령어이기 때문에, 이미 지운 데이터는 되돌릴 수 없다.

 

 


 

다음은 로컬에 굳이 디비설치가 필요없이 빅쿼리 내에서 새 테이블을 만드는 방법을 알아보자.

실제로 데이터가 너무 큰 경우에는 다음과 같은 메세지가 뜨며 엑셀 내보내기가 불가하다. 그리고 훨씬 간단하다. 

 

빅쿼리 SELECT 결과로 빅쿼리 내에서 새 테이블 만들기.

 

1. 원하는 데이터를 빅쿼리에서 조회 > 조회결과 빅쿼리 테이블로 저장 선택 

 

2. 원하는 프로젝트/ 데이터셋 선택 후, 테이블 명 입력하여 테이블 생성. 

3. 새 테이블 생성 완료! 

반응형