66
대용량 로그분석, BigQuery로 간단히 사용하기 ㈜엔비티 / Devops / 이재광 http://facebook.com/openstacks SK T아카데미 (2017. 02. 15)

대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

Embed Size (px)

Citation preview

Page 1: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

대용량로그분석,BigQuery로간단히사용하기

㈜엔비티 / Devops /�이재광

http://facebook.com/openstacks

SKT아카데미(2017.02.15)

Page 2: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Cashslide Service

잠금화면상하슬라이딩을통해

다양한콘텐츠를풀스크린으로감상

잠금화면좌우슬라이딩을통해

콘텐츠더보거나잠금화면해제

- 잠금화면을좌우로밀때마다3~5원캐시적립혜택- 앱다운로드,�영상광고시청등추가활동하면최대1500원까지적립

게임,�커머스,�뷰티등

다양한업종의광고

광고

상하 슬라이딩

시사,�연예,�생활등

다양한영역의컨텐츠

컨텐츠

좌우슬라이딩

전세계최초모바일잠금화면에서광고,�컨텐츠등을보고잠금화면을열때캐시적립을받을수있는모바일서비스

Page 3: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Cashslide Service

전체노출량의40%,�전체유저의60%�이상이사용하는캐시슬라이드서비스의핵심value

약70개컨텐츠제휴

특화미디어

영상미디어 생활정보

신문기사

광고이외에뉴스,�스포츠정보,�엔터테인먼트등폭넓은카테고리의컨텐츠를종합적으로제공

Page 4: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Cashslide Service 지속적인개편을통해국내유일무이한모바일서비스로성장하고있습니다

.�.�.

잠금화면을중심으로모바일이용경험을혁신하는미디어

광고보고리워드받는잠금화면앱에서…

2012년

35%20%

5%

40%

10대

20대

30대

40대+

편의기능도쓰는잠금화면포털로…

2014년

25%

20%

20%

35%

10대

20대

30대

40대+

컨텐츠도넘겨보는잠금화면미디어로…

2013년

30%

15%

15%

40%

10대

20대

30대

40대+

23%

26%

26%

25%

10대

20대30대

40대+

현재

Page 5: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Page 6: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Big�Data

빅데이터란

기존데이터베이스관리도구의능력을넘어서는대량(수십테라바이트)의정형또는심지어데이터베이스형태가아닌비정형의데이터집합조차포함한데이터로부터가치를추출하고결과를분석하는기술이다.��발췌:위키

Page 7: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Bigdata의조건"three�Vs"

Volume

Velocity

Variety

Value현재상황파악과이에대한원인분석

미래의예측

발췌:TDWI

Page 8: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

남들이하고있는Big�Data활용(B2C)

facebook LinkedIn Amazon.com

Page 9: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

남들이하고있는Big�Data활용(B2B)

Page 10: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

우리도하기위해고민했던것들

*�우리에게필요한분석결과로보고싶은내용이무엇인가?

-서비스지표변화추이(나자신을알자)

-사용자타겟팅을위한사용자분석(CTR,�CVR을높이자)

-정밀타겟팅을위한사용자행동분석(CTR,�CVR을더높이자)

-우리가시도하는사업들에대한검증

데이터의모수는많을수록좋고이데이터어딘가에는위의내용들이포함되어야한다.

Page 11: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

빅데이터분석을위한전략예제

• 인력및경험부재(데이터분석/예측알고리즘)

• Data�Quality검증필요

• CashslideUV�/�Profile정보

• 광고및서비스반응이력

strength weakness

threatopportunity

• 경쟁사/신규사업자시장진출가속화

• 개인정보정책이슈

• DSP(demand�side�platform)보유

• AD-serving�보유

빠른검증이가능한환경

Page 12: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

구축방안은간단히

데이터 선택

데이터 수집

지표의 활용

데이터 분석

데이터 1차 가공

어떤데이터를수집할지

서비스영향도를최소화하는

데이터수집방안고민

분석에필요한데이터를추출하여

데이터사이즈를줄인다

현재상황에대한분석

미래의예측

의사결정지원

다양한빅데이터분석플랫폼을활용

Page 13: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

빅데이터활용(서비스지표분석)

CashslideMetrics

Page 14: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

빅데이터활용(타겟팅)

*�user�profile기준타겟팅그룹분류

-성별,나이,결혼여부

*device�profile기준타겟팅그룹분류

-앱실행&설치이력을활용한유사도그룹분류

*�user�activity패턴기준타겟팅그룹분류

-상품을구매한유저의패턴과유사도가높으나아직구매하지않은사용자그룹

-추천인,피추천인

-LTV높은유저와CVR높은유저

*�실험에대한사용자반응도분석

Page 15: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

빅데이터활용(실험결과검증)

Page 16: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Data Scientist The Sexiest Job of the 21st Century

Page 17: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

주변의Data Scientist Full-Stack

Page 18: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Data�Scientist와Data�Engineer

1.요구사항전달

6.데이터분석및시각화

2.데이터수집및저장아키텍처구현

3.데이터가공및분산처리아키텍처구현

4.사전데이터작업및배치개발

5.모니터링및기술지원

Page 19: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

LANG�:�java,�scala,�python,�R,��sql

빅데이터분석모형,기법,통계분석의이해

비즈니스의이해

고객과의의사소통

LANG�:�java,�scala,�python,�bash,�sql

Cloud�Platform�,�Hadoop�echo,�Spark,�Kafka,�Zookeeper,�ELK,�Zeppelin,�DFS,�Cache,�NoSQL,�RDBMS아키텍처이해와구현

OS와Network에대한이해

Infra.�Security의이해

JVM,�Cluster�Monitoring�&�Troubleshooting

Data�Scientist와Data�Engineer

Page 20: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

우리가분석하는빅데이터소스는Client�Log와Server�Log

그리고RDBMS�조합

Page 21: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Kafka�+�Spark�+�Zeppelin+ELK+Bigqeury+�DataStudio

NBTLumberjack�logAnalysis�Architecture

client

L4

Kafka�proxy

Kafka &Zookeeper�Cluster

Logstash

Elasticsearch

Spark

Kibana

ZeppelinS3

Lumbercamp

Jenkins

BigQuery

DataStudio

Cloud�Storage

API�Server

Page 22: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

데이터수집시스템'Kafka�Cluster'

*�LinkedIn에서개발된분산메시징시스템

*�대용량의실시간로그처리에특화

*�범용메시징시스템대비TPS가높다.

*�분산,복제가손쉽다.

*�파일시스템을사용하므로데이터영속성이보장된다.

*�2011년오픈소스로공개

Page 23: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

데이터수집시스템'Kafka�Cluster'

Page 24: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

producer

broker

Consumer

데이터수집시스템'Kafka�Cluster'

Page 25: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

NBT�Kafka�Cluster

client

L4

Kafka�proxy

Kafka &Zookeeper�Cluster

Logstash

S3

Lumbercamp

Cloud�Storage

DAU�Elasticsearch

Click�Elasticsearch

lumberjack�Elasticsearch

production�Elasticsearch

API�Server

Page 26: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

data�transfer�agent

logstash

fluentd

plugin�echosystem

centralized

decentralized

performance

uses�more�memory

uses�less�memory

event�routing

algorithmicstatements

Tags

Page 27: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Elasticsearch

*�apache�Lucene을기반으로한분산검색엔진

*�Opensource:�apache�license�2.0

*�Distributed�&�Horizontally�Scalable

*�고가용성

*�full�text�search지원

*�JSON�Document�based

*Schemafree

Page 28: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Elasticsearch설치

초간단설치로유명

1.download받는다.

2.실행한다.

3.살아있는지테스트한다.

Page 29: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Elasticsearch용어

Elasticsearch

database

table

RDB

index

type

row document

column field

schema mapping

Page 30: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Elasticsearchindex,�shard�&�replicas

Page 31: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

NBT�Elasticsearch

Logstash

Elasticsearch

Kibana

S3

Jenkins

API�Server

Cloud�Storage

fast�node

data�node

master�node

cluster.name :�nbt

node.name :�"client-node"

node.master :�falsenode.data :�false

node.name :�"query-node"

node.master :�truenode.data :�false

node.master :�falsenode.data :�true

node.box_type :�hot

node.box_type :�warm

elasticsearch.yml

Page 32: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Kibana

Elasticsearch+�KibanaLive�Demo

Page 33: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Kibana

ELK의최대장점:설치가매우쉽다.

사용도손쉽다.Lucene�Query기반검색.�(AND,�OR,�NOT)

Page 34: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Hadoop�+�Spark�+�Zeppelin

*오픈소스분산처리시스템

*�메모리기반(hadoop에비해속도가빠르다)

*�Mapreducecode(java)에비해매우간결한code작성이가능하다.(scala)

*�java,�scala,�python,�R

*�ApacehZeppelin으로손쉽게사용가능하다.

*�ApacehZeppelin으로손쉽게사용가능하다.

*�ApacehZeppelin으로손쉽게사용가능하다.

Page 35: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

sparkexecution�flow

Page 36: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

spark사용시알아야할개념hadoopYARN�flow

Page 37: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

hadoopYARN�+�spark

Page 38: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Spark

ZeppelinS3

Driver Core

RDB

Task

개념을 이해했다면 aws emr을 편하게 사용합니다.

*�spot을 적절히사용합니다.

*�spot instance를 이용하여 schedule 기반 resize를 진행합니다.

*�외부 데이터를불러오는경우 Task를 다수로구성하여병렬처리합니다.

Page 39: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

그리고 Zeppelin을 사용하여 데이터를 분석합니다.

Zeppelin�live�demo

Page 40: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

최근선택한Google�Bigquery

Page 41: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Google�Cloud�Account�생성이제일어려웠을만큼쉽게구성가능했던BigQuery

우리가경험했던BigQuery

Page 42: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

대략몇군데만손보면금방구현될듯

손이갈만한것들을추려보자면

1. 현재의 logstash 서버를활용하고

2. BigQuery API만 잘뚫어주면

3. 우리의 log�format에맞게잘정의된스키마로데이터를집어넣고

4. 잘사용하는것만이할일이다.

Page 43: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

이런작업은하루면됩니다.

proto-type구현

1. 현재의 json log 일부를 test 전송

2. Google�App�Key를발급하여API 권한획득

3. 최소한의 schema를넣고test 진행

4. 빠른것같긴한데..이제실데이터를가지고조회해볼까

Page 44: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

기존logstash서버에저장된json log�file을BigQuery로전송후조회

실전구현시나리오작성

Logstash

Elasticsearch

Spark

Kibana

ZeppelinS3

BigQuery

고려 사항

• 서버의 자원 부담 최소화

(현재도 부담 되는 중)

• 전송 처리 실패에 대한 보장

• 전송 처리 작업 시간 개선

• 전송 작업 이력 관리

• 네트워크 구간 전송 효율 개선

DataStudio

etc

Jenkins

Page 45: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

BigQuery Schema생성시ES의Nested�tpye에서문제발생

BigQuery구축시고민1

고려 사항

• Nested와 유사한 Repeated Mode

• 'info' column을 Record�type의

Repeated�Mode로 생성

• Repeated�Mode의 column 안에

또 한번의 Repeated�Mode는 지원

안됨. ES도 마찬가지.

• 이 경우는 String 처리에 대한 고민

• 일단 제외

{�"name":�"info",�"type":�"RECORD",�"mode":�"REPEATED",�"fields":�[�{�"mode":�"NULLABLE",�"name":�"step_i",�"type":�"INTEGER"�

},�{�"mode":�"NULLABLE",�"name":�"recommended",�"type":�"STRING"�

},�{�"name":�“app_config”,"type":�“RECORD",

"mode":�“REPEATED”,“fields”�:�[{�

“mode”:�NULLABLE“name":�“adison_enables”

“type”:�“STRING”�},{�

“mode”:�NULLABLE“name":�“abusing_devices”

“type”:�“STRING”�},

Page 46: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

json file�size : 7~35Gper�hour, 7.5G�json file loading작업이약1시간정도소요

Embulk를이용한BigQueryData적재

Logstash

Elasticsearch

Spark

Kibana

ZeppelinS3

BigQuery

고려 사항

• 서버의 자원 부담 최소화

(현재도 부담 되는 중)

• 전송 처리 실패에 대한 보장

• 전송 처리 작업 시간 개선

• 전송 작업 이력 관리

• 네트워크 구간 전송 효율 개선

DataStudio

etc

Jenkins

Page 47: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

embulk를도입했어도Json file을BigQuery로적재하기에는너무느림

BigQuery구축시고민2

Logstash

Elasticsearch

Spark

Kibana

ZeppelinS3

BigQuery

고려 사항

• 1시간 이상 걸리는 BigQuery Data

적재 작업

• Parsing 처리 비용이 너무 높다.

• 시간당 30G 이상의 파일을 전송하는

경우 발생하는 네트워크 전송량도 너

무 많다.

• 바이너리 압축 전송을 하면

BigQuery Loading은?

DataStudio

etc

Jenkins

Page 48: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Jenkins를이용해서gz file을GCS로전송후BigQuery Loading Job을추가실행

GCS�to�BigQuery

해결

• Transport�Tool을 embulk에서

gsutil로 교체

• gsutil을 이용한 바이너리 파일 병렬

전송으로 작업 속도 향상

• Gzip으로 GCS 전송 후 BigQuery로

Data 적재 작업을 수행하는 경우 Job

형태로 async 수행 및 관리 가능

Logstash

BigQuery

DataStudio

Cloud�Storage

gsutil

Jenkins

Page 49: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

BigQuery의Computing�Resource비용은무료

BigQuery의Extract�&�Loading

무료

• 비용은 Storage와 Streaming�

Inserts,�Queries 요금만 존재

• 속도도 빠르고 관리도 용이한

BigQuery Loading이 무료

(GCS�pricing)

BigQuery pricing

Page 50: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

기존S3로전송하던gz file을GCS로전송후BigQuery로적재

실전구현시나리오변경

Logstash

Elasticsearch

Spark

Kibana

ZeppelinS3

BigQuery

변경된 시나리오

• json file�->�gzip file

• embulk ->�gsutil

• to�BigQuery -> to�GCS

• sync�->�async

DataStudio

Cloud�Storage

gsutil

Jenkins

gsutil

Json 7.5G약 1�hour

GZ�350M약 14�sec

BigQuery

Cloud�Storage

json

gzip

Page 51: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

BigQuery속도는빠른가

BigQuery조회해보기

고려 사항

• 한달치 1.34TB data를 스캔해서

result 까지 걸린 시간 6초

• 7명이 동시에 쿼리를 수행해도

동일하게 빠른 성능을 보여줌

• 그런데 한번 조회에 1.34TB면 얼

마지?

Page 52: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

How�much�BigQuery

BigQuery구축시고민3

비용 요소

• GCS 비용 + BigQuery Storage 비용

+ Query�비용

• BigQuery는 10MB 단위로 청구

(월 1TB 무료)

1.34TB는 약 $6.7

고려 사항

• 사용자가 range query를 제대로 수행

하지 않으면 많은 비용이 발생할 수도

있다.

• 대안으로 테이블을 사용자 용도에 맞

게 복제해주거나 구글의 cost�control

을 통한 Quota 제한 고민

Page 53: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

기간별table을쉽게생성하는방법?

Page 54: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Table�Decorator,�Partition�Decorator

BigQuery가제공하는Decorator

장점

• 날짜별 table이 존재하듯이 사용

• 손쉬운 range 검색

• 기간별, 일자별 table 생성이 용이

고려 사항

• Table 생성 시 Partitioned�Table로

생성되어야 함

SELECT�COUNT(*)�FROM�cashslide:dataset.table$20160830

2016년 8월 30일 데이터 조회

SELECT�COUNT(*)�FROM�[cashslide:dataset.table@-3600000]

테이블 생성 후 1시간 이전까지의 데이터 조회

Page 55: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

나중에이걸확인한다면BigQuery적재작업의처음으로돌아가시오.

편리한Partitioned�tables

고려 사항

• Dataset�table 생성 시 Date-

Partitioned�tables로 생성 가능

• 생성 시 Expiration�time은

second 기준

• _PARTITIONTIME 이름의

pseudo�column�을 포함하며,

data�적재 시점을 기준으로

TIMESTAMP(“2016-04-15”)

형식의 값을 저장함. UTC 기준

$bq mk --time_partitioning_type=DAY�\--time_partitioning_expiration=259200 \mydataset.table

Partitioned�tables 생성 예제

$bq show�--format=prettyjson mydataset.table

생성된 테이블 정보 확인

{�...�"tableReference":�{�"datasetId":�"mydataset",�"projectId":�"myproject",�"tableId":�"table2"�

},�"timePartitioning":�{�"expirationMs":�"2592000000",�"type":�"DAY"�},�"type":�"TABLE"�

}

Page 56: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Table�Decorator

유용한Decorator�2가지(1/2)

고려 사항

• 최대 7일 이전의 데이터까지 조회

가능 (rollback)

• Milliseconds 단위

#�Snapshot�decorators@<time>

#�Range�decorators@<time1>-<time2>

Syntax

#�Snapshot�exampleSELECT�COUNT(*)�FROM�[cashslide:dataset.table@-3600000]

#�Range�exampleSELECT�COUNT(*)�

FROM�[cashslide:dataset.table@-3600000--1800000]

Example

Page 57: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Partition�Decorator

유용한Decorator�2가지(2/2)

고려 사항

• $YYYYMMDD decorator를 이

용한 snapshot 검색

• Pseudo�column을 이용한

range�검색

[TABLE_NAME]$YYYYMMDD

Syntax

#�Snapshot�exampleSELECT�COUNT(*)�FROM�cashslide:dataset.table$20160505

#�Range�exampleSELECTfield

FROMtable

WHERE_PARTITIONTIME�BETWEEN�TIMESTAMP('2016-01-01')AND�TIMESTAMP('2016-01-21');

Example

Page 58: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

이렇게구축한BigQuery를잘활용하는데

도움되는TIP몇가지

Page 59: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

BigQueryComposer여러모로편리합니다.

BigQueryTip�1

TIP

• Query�box 안의 Color를 보면

현재 syntax, dataset�name,�

table�name,�column�name,�

function�name 의 오류를 쉽게

확인 가능

• Results�Tab 옆의 Explanation

을 보면 Query 수행 과정이 알기

쉽게 표기되어 Query 성능 개선

가능

Page 60: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

File�export�는 file당1G,일일최대10TB가능

BigQueryTip�2

TIP

• 쿼리 결과의 export는 파일당 최

대 1G 가능

• 그 이상의 결과를 export 하려는

경우 쿼리 결과에서 ‘Save�as�

Table’로 저장 후 export 항목에

‘*.json’ 형태로 기입

Page 61: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

BigQuery비용절감을위한Use�Cache�사용

BigQueryTip�3

TIP

• 'Use�Cached�Results'를 사용하

여 캐싱된 이전 쿼리 결과를 사용

하면 중복되는 쿼리들의 비용을

절감 가능

Query�Composer에서 'Show�Options'를 눌러보면

Page 62: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Zeppelin�0.6.1부터 ‘%bigquery’인터프리터지원

BigQueryTip�4

TIP

• Zeppelin�0.6.1 버전부터

BigQuery Interpreter를 제공

• Data뿐만 아니라 BigQuery

Computing�resource를 활용하

여 작업 수행 가능 (AWS�EMR,�

Google�Dataproc의 비용 불필

요)

• 기존 Notebook의 이전 작업이

필요

Page 63: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

손쉽게연계사용이가능한Data�Studio가무료

BigQueryTip�5

Page 64: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

결론:

실시간트렌드변화는Kibana

통계분석에는Zeppelin

이두가지가모두가능한Data�Studio

하지만

도구는거들뿐..

Page 65: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

© NBT All Rights Reserved.

Q&A

Page 66: 대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)

THANK�YOU

주소:�서울시서초구서초동 1341-7�조이빌딩