BigQuery 9

[Big Query] 빅쿼리 주요 데이터 타입

빅쿼리에서는 문자열이나 정수 등 단순한 데이터형 외에도 ARRAY, STRUCT 등 복잡한 데이터형 지원한다. 주요데이터 타입) 분류 데이터형 설명 정수형 INT64 정수인 숫자 부동소수점형 FLOAT64 소수가 있는 근삿값, 배정도 십진수 값 숫자형 NUMBER 38자리 정밀도와 소수점 9자리 비율을 사용하는 십진수 값 부울형 BOOL TRUE / FALSE로 표시(대소문자 구분 X) 문자열형 STRING 가변 길이 문자(Unicode) 데이터 바이트형 BYTES 가변 길이 문자 바이너리 데이터 날짜형 DATE YYYY-MM-DD 날짜/시간형 DATETIME YYYY-MM-DD hh:mm:ss Time zone이나 summer time 등 관습적인 것을 반영한 날짜/시간 시간형 TIME hh:mm:ss..

[Big Query] 샤드 테이블 전체 삭제하는 방법. DROP shard tables

빅쿼리에서 샤드 테이블 개념을 사용한다고 했다. 해서 날짜별로 스키마가 같은 테이블이 여러개 생성되게 되는데 그렇다면 테이블을 삭제해야하는 경우 어떻게 해야할까? * 샤드 테이블이란? https://cheershennah.tistory.com/296 [Big Query] 테이블 샤딩이란? Table Sharding. Data Sharding. 분산 컴퓨팀 환경 내 여러 노드 또는 서버에 대규모 데이터 세트를 수평으로 분할하고 배포하기 위해 빅데이터 시스템에 사용되는 주요기술. Dataset을 샤드(Shard)라고 하는 더 작고 관 cheershennah.tistory.com SQL 에서 테이블 삭제시 아래와 같이 DROP 문을 사용하는데 DROP TABLE [database_name.]table_name..

[Bigquery] Shard 테이블 날짜별 마이그레이션 (feat. 빅쿼리 절차적 언어_동적 SQL 만들기)

빅쿼리 샤드 테이블 마이그레이션 방법 정리 (feat. 빅쿼리 절차적 언어_동적 SQL 만들기.) 먼저 빅쿼리에서는 서브쿼리를 많이 사용하는 쿼리는 실행할때마다 모든 쿼리에대해 요금이 발생한다. 가능하면 서브쿼리의 필요한 부분을 select 한뒤 별도 테이블로 만들어주고 해당 테이블에 대해 메인 쿼리를 실행하는 방법으로 실행할 때 마다 대용량의 요금이 발생하는 것을 지양할 수 있다. 단, 빅쿼리는 테이블을 날짜별로 나누는 샤드 테이블 형태를 사용하기 때문에 이 형태를 그대로 사용하고 싶다면 별도 테이블 또한 날짜별로 쌓아야 한다. 미래 날짜의 경우 빅쿼리 스튜디오에서 제공하는 스케쥴러를 통해서 어렵지 않게 가능하지만 과거의 날짜로는 스케쥴링이 불가하다. 예를 들어 1년치의 데이터가 필요한 경우라면, 1년..

[Big Query] 테이블 샤딩이란? Table Sharding.

Data Sharding. 분산 컴퓨팀 환경 내 여러 노드 또는 서버에 대규모 데이터 세트를 수평으로 분할하고 배포하기 위해 빅데이터 시스템에 사용되는 주요기술. Dataset을 샤드(Shard)라고 하는 더 작고 관리하기 쉬운 조각으로 나누어 데이터 관리, 확장성 및 성능 향상을 목표로 함. 데이터 샤딩을 사용하는 이유? 데이터 배포 및 병렬처리 향상. 빅쿼리는 위와같이 일별로 분할된 테이블을 생성한다. 이를 테이블 샤딩이라고(Table Sharding) 하며 이러한 방식은 쿼리 속도를 높이고, 데이터 중복을 방지하며, 테이블 그룹관리를 위한 유연한 옵션을 제공함. 테이블 샤딩 장점 샤딩은 쿼리의 각 날짜에 자체 테이블이 존재하므로 하루의 데이터가 중복되는 것을 방지함. 세트의 모든 테이블은 동일한 테..

[Big Query] 빅쿼리 _ 컬럼 지향 스토리지란? Columnar Storage

일반적으로 전통적인 관계형 DBMS 의 스토리지 방식은 로우(ROW, 행) 지향 스토리지 방식으로 동작한다. 실무에서 빅쿼리를 접하게 되면서 빅쿼리가 빅데이터에 적합하게 만들어진 데이터베이스라는 건 알고 있었지만 여타 다른 SQL 문과 거의 동일한 방식의 쿼리를 사용할 수 있기 때문에 당연히 같은 방식으로 동작할거라는 편견을 나도 모르게 갖고 있던 터라 삽질을 하던 과정에서 빅쿼리는 통상적인 로우 지향이 아닌 컬럼 지향 스토리지 방식으로 동작한다는 사실을 알게되어 학습/기록한다. 컬럼 지향 스토리지 형식 빅쿼리는 완전 관리형 스토리지를 제공. 사용되는 빅쿼리 스토리지 크기는 자동 조절되며 과금은 사용한 만큼만 부과. 컬럼지향 스토리지에 담긴 데이터를 사용하여 대규모 데이터 분석 수행하도록 설계됨. Pos..

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

빅쿼리에서 대부분 대용량 데이터를 다룬다. 특히 기본적으로 빅쿼리는 NEST방식으로 데이터를 저장하기 때문에 배열 형식의 데이터는 UNNEST 함수를 써야만 하기 때문에 여간 번거로운게 아니다. 참고 포스팅) https://cheershennah.tistory.com/244 BigQuery 빅쿼리란? BigQuery 빅쿼리란? 빅쿼리는 구글에서 만든 클라우드용 데이터웨어하우스(DW)로, 빅데이터에 최적회된 저장 및 분석용 클라우드 서비스이다. 빅쿼리의 구조는 관계형이 아닌 NoSQL기반의 데이터 저 cheershennah.tistory.com 전체 데이터가 아닌 일부 데이터 결과만을 데이터 풀로 보고자 할 때 SELECT 한 결과를 별도의 하나의 테이블로 만들어 사용할 수 있다. 여기서는 CSV로 로컬에..

[GA-Bigquery] 내 블로그에 누가 다녀갔을까? 주간 방문 데이터 분석

블로그를 개설한지 2018년부터 현재까지 운영중이고 초라했던 개인 기록용 블로그에서 현재 일평균 약 1500 정도의 기술블로그로 성장하였다. 티스토리에서 블로그를 운영하면 통계를 분석해주는데 항상 통계로 보여지는 방문자들의 데이터의 흐름이 신기하고 궁금했다. 구글 애널리틱스 GA4와 블로그를 연동하여 데이터를 쌓고, GA4와 BigQuery와 연동을 하면 데이터를 조작할 수 있다. 평소 궁금했던 블로그 방문에 대한 데이터를 직접 분석해려고 한다. 연동하기만 하면 쌓여있는 모든 데이터들을 다 볼 수 있는지 알았는데, 그건 아니고 연동한 시점부터 데이터를 쌓기 시작하여 이후 수집 데이터들을 다룰 수 있다. 때문에 해당 포스팅에서는 12/19일-25일, 즉 1주일 간 쌓인 데이터들을 대상으로 한다. 데이터 구..

Data Analytics 2023.01.18

[빅쿼리] ARRAY / STRUCT / UNNEST. 정체가 무엇이냐??

BigQuery는 SQL을 제공하기 때문에 기존의 SQL과 같이 질의할 수 있어 접근성이 쉽다. 하지만, 우리에게 익숙한 RDB의 데이터 구조와 완전히 동일하지는 않다. 자주보기 힘든 배열 ARRAY, 구조체 STRUCT, UNNEST 등의 문법을 사용하기 때문이다. 예를 들어 우리에게 익숙한 RDB의 데이터 구조가 다음과 같다면, ARRAY, STRUCT, UNNEST 문법이 사용된 데이터 구조는 다음과 같다. 딱 봐도 하나의 행에 하나의 데이터 값이 저장되는 구조의 테이블과 다른 모습이 어색하다. event_name 컬럼 까지는 하나의 데이터가 있지만 event_params.key 부터는 하나의 행에 데이터 타입이 동일한 여러값이 저장되어 있다. 이러한 형태가 배열 ARRAY 문법이다. 또하나 어색한..

BigQuery 빅쿼리란?

BigQuery 빅쿼리란? 빅쿼리는 구글에서 만든 클라우드용 데이터웨어하우스(DW)로, 빅데이터에 최적회된 저장 및 분석용 클라우드 서비스이다. 빅쿼리의 구조는 관계형이 아닌 NoSQL기반의 데이터 저장소이나, 일반적으로 사용하는 관계형 RDB처럼 쓸 수 있도록 SQL을 제공한다. 머신러닝, 지리정보분석, 비즈니스 인텔리전스와 같은 기능을 기본 제공하여 데이터를 분석/관리할수 있다. 여러 프로그램과 연동 가능하며, 특히 구글 애널리틱스와 연동하여 수집한 데이터를 새롭게 가공할 수 있다. 빅쿼리 특징 클라우드 서비스로 설치 및 운영이 필요 없음(NoOps) 로컬이나 서버 등에 설치해서 사용하는 서비스가 아닌 언제 어디서나 사용가능한 클라우드 서비스를 제공한다. 인터넷이 가능한 어디서나 클릭 몇번으로 사용이..