책 소개
요약
구글의 BigQuery(빅쿼리) 기술을 바탕으로 리포팅과 대시보드 기능을 지원하는 데이터 웨어하우스를 구축하는 방법을 설명한다. BigQuery를 사용해 설계, 빌드, 로드, 검색, 유지하는 방법을 단계별로 진행하면서 데이터 웨어하우스를 구축할 수 있다. 유용하면서도 확장 가능하며 유지보수가 쉬운 모던 데이터 분석 시스템을 어떻게 만드는지에 대한 궁금증을 해결해준다. 그리고 BigQuery 머신러닝 기능을 사용해 데이터를 예측하고 조직의 데이터 문제를 해결하는 방법을 설명한다.
이 책에서 다루는 내용
◆ 프로젝트와 조직을 위한 데이터 웨어하우스 설계
◆ 다양한 외부 및 내부 소스에서의 데이터 로드
◆ 복잡한 워크플로를 위한 구글 클라우드 플랫폼 서비스 통합
◆ 조직 성장에 대응하는 데이터 웨어하우스 유지 및 확장
◆ 웨어하우스 데이터 분석, 리포팅 및 대시보드 생성
이 책의 구성
1부, ‘웨어하우스 구축’에서는 백지상태에서 데이터 저장소에 대한 요구 사항을 정하고 구성하는 방법을 설명한다. 몇 가지 예제로 데이터 웨어하우스나 SQL 저장소 없이 BigQuery에서 바로 데이터에 접근하는 방법을 알려준다. 이미 사용하는 데이터 저장소가 있다면 어떤 전략을 채용할지 설명한다. 마지막으로 비용 측면에서 예산과 데이터의 가용성 사이의 절충안을 논의한다.
2부, ‘웨어하우스 채우기’에서는 기존 데이터 소스에서 데이터 웨어하우스로 옮기는 방법인 로딩(loading), 스트리밍(Streaming) 그리고 데이터플로우(Dataflow)를 설명한다. BigQuery에서 바로 로딩과 스트리밍을 관리할 수 있다. 데이터플로우에 한 장을 할애해 확장 가능한 커스텀 데이터 파이프라인을 구성하는 기술을 설명한다.
3부, ‘웨어하우스 사용’에서는 데이터 웨어하우스를 구축한 후 가능한 작업을 기술한다. 8장에서는 처음 BigQuery를 실행한 후 데이터를 다루는 방법에 있어 기초를 세우는 방법을 설명하고 9장에서는 BigQuery에서 SQL을 어떻게 사용하는지를 알려준다.
4부, ‘웨어하우스 유지 및 관리’에서는 데이터 웨어하우스에서 회사에 가치를 부여할 수 있는 데이터를 운영할 수 있다. 다만 데이터도 주기적인 관리가 필요하다. 문제 발생을 예방하기 위한 데이터 관리 전략을 설명한다. 14장에서는 조직에서 큰 스케일의 변화가 있을 때 데이터 웨어하우스에 어떤 변화가 있을지 설명한다.
5부, ‘데이터 리포팅과 시각화’에서는 부가적인 부분을 다룬다. 정보를 리포트로 만들거나 실시간 대시보드를 만들고 분석을 위해 데이터를 어떻게 조직에게 전달하는지를 다룬다.
6부, ‘데이터의 잠재력 향상’에서는 BigQuery의 획기적인 기능인 머신러닝(ML, machine learning) 기능을 설명하고 우리가 다루는 데이터에서 어떻게 사용하는지 설명한다. 공개 데이터 세트를 사용해 기존 데이터와 연동하는 방법도 설명한다.
목차
목차
- 1부. 웨어하우스 구축
- 1장. BigQuery 살펴보기
- 구글 클라우드 플랫폼
- GCP 시작
- GCP 사용
- Cloud Console
- Command Line Interface
- 프로그래밍 방식 액세스
- BigQuery Cloud Console
- SQL 쿼리
- 유용한 정보
- 웨어하우스 디자인
- 데이터 저장소로서의 BigQuery
- 행 지향 접근
- 열 지향 접근
- 데이터 웨어하우스로서의 BigQuery
- 주요 질문
- 기초
- 확장성
- 데이터 정규화
- 요약
- 2장. 웨어하우스 프로젝트 시작
- 시작에 앞서
- 핵심 질문
- 제한적인 리소스는 무엇인가?
- 조직의 업무 분야는 무엇인가?
- 조직의 차별점은 무엇인가?
- 필요한 데이터를 알려줄 수 있는 사람은 누구인가?
- 고객에게 필요한 데이터를 파악하고 있는 사람은 누구인가?
- 핵심 객체는 무엇인가?
- 핵심 관계는 무엇인가?
- 시간은 어떤 역할을 하는가?
- 비용은 어떤 역할을 하는가?
- 일반적인 고려사항
- 업무 승인
- 관계자 인터뷰
- 갈등 해결
- 문서 산출물
- 비즈니스 수용
- 결정 기록
- 설계 방식 선택
- 트랜잭션 저장소
- 스타/눈송이 스키마
- NoSQL
- BigQuery
- BigQuery 모델
- 프로젝트
- 데이터 세트
- 테이블
- 요약
- 3장. 데이터 모델
- 데이터 모델
- 수집 속도
- 과거 데이터의 가치
- 데이터 모델 생성
- 데이터 세트 생성
- 테이블 생성
- 소스
- 파일 형식
- 대상
- 스키마
- 모드
- 파티션 및 클러스터 설정
- 고급 옵션
- 파티셔닝
- 클러스터링
- BigQuery 데이터 읽기
- BigQuery UI
- bq 커맨드 라인
- BigQuery API
- BigQuery Storage API
- 요약
- 4장. BigQuery 비용 관리
- BigQuery 모델
- BigQuery 비용 모델
- 스토리지 가격
- 주문형 가격
- 정액제
- BigQuery 예약
- 비용 최적화
- 연간 약정
- 테이블 분할
- 로딩 vs 스트리밍
- 쿼리 작성
- 쿼리 비용 확인
- GCP 예산 도구
- GCP 요금 계산기
- 주문형 모델 제한 설정
- 예약 할당량 설정
- BigQuery에 결제정보 로드
- 요약
- 2부. 웨어하우스 채우기
- 5장. 웨어하우스 데이터 로드
- 로딩과 마이그레이션
- 파일
- Google Cloud Storage
- 타사 이전 솔루션
- Java Database Connectivity
- Document-Based Storage/NoSQL
- 외부 데이터 소스
- 요약
- 로딩과 마이그레이션
- 6장. 데이터 웨어하우스 스트리밍
- 장점과 단점
- 데이터 일관성
- 데이터 가용성
- 스트리밍 사용 조건
- 스트리밍 코드 작성
- Google App Engine
- 발생할 수 있는 문제
- 고급 스트리밍 기능
- 시간순으로 분할
- 수집순으로 분할
- 템플릿 테이블
- 요약
- 장점과 단점
- 7장. Dataflow
- 주요 개념
- Driver Program
- 파이프라인
- Directed-Acyclic Graph
- PCollection
- PTransform
- 파이프라인 구축
- 준비
- 튜토리얼
- Google Dataflow Runner
- Dataflow Templates
- Dataflow SQL
- 주요 개념 확장
- Dataflow SQL 확장
- Dataflow SQL 파이프라인 작성
- Dataflow SQL 작업 배포
- 요약
- 주요 개념
- 3부. 웨어하우스 사용
- 8장. 웨어하우스 관리
- 질문과 계획
- 회고
- 로드맵
- 제품 결함
- 기술 부채
- 유지보수
- 범위 축소
- 시스템화
- 낙관적인 확장성
- 우선순위
- 푸시-풀 전략
- 데이터 고객 유형
- 데이터 분석가
- 엔지니어
- 임원 및 경영진
- 영업직
- 요약
- 9장. 웨어하우스 쿼리
- BigQuery SQL
- 기본 문법
- 추가 구문
- 이전 데이터 액세스
- 집합과 교차
- UNION ALL/DISTINCT
- INTERSECT
- EXCEPT
- 조인
- CROSS JOIN
- INNER JOIN
- OUTER JOIN
- USING
- 셀프 조인
- 하위 쿼리
- WITH절
- 중첩 데이터
- UNNEST
- 파티션
- 수집 시간 파티션 테이블
- 날짜/타임스탬프 파티션 테이블
- 정수 범위 파티션 테이블
- 날짜 함수
- 협정 세계시
- 일반 사용 사례
- 그룹핑
- ROLLUP
- HAVING
- 집계 함수
- BigQuery GIS
- GEOGRAPHY의 개념
- GIS 함수
- 시각화
- 기타 함수들
- 요약
- BigQuery SQL
- 10장. 예약 작업
- BigQuery의 예약 쿼리
- 쿼리 예약하기
- 쿼리 검토
- Cloud Scheduler
- 이름
- 빈도
- 대상
- 상태
- 명령줄 사용
- 스케줄링 모범 사례
- 다른 예약 방법
- Cloud Tasks
- Cloud Composer
- BigQuery Transfer Service
- 요약
- BigQuery의 예약 쿼리
- 11장. GCP의 서버리스 함수
- 장점
- 관리
- 확장성
- 비용
- 가용성
- 단점
- 지연
- 리소스 제한
- 이식성
- 관리
- BigQuery와 Cloud Functions
- 함수 작성
- 함수 이름
- 리전
- 트리거
- 인증
- 변수, 네트워킹, 고급 설정
- 코드
- 소스코드
- Cloud Functions 배포
- Cloud Functions 호출
- HTTP 트리거
- Cloud Pub/Sub 트리거
- Cloud Storage 트리거
- Cloud Firestore
- 직접 트리거
- Firebase 트리거
- Cloud Scheduler
- 실제 애플리케이션 예제
- 제안하는 디자인
- 요약
- 장점
- 12장. Cloud Logging
- 로그와 분석의 연관성
- Abigail’s Flowers 예제
- Cloud Logging
- 로그 탐색기
- Cloud Logging 쿼리
- BigQuery 로그 싱크
- 싱크
- 싱크 생성
- 측정항목과 알림
- 측정항목 생성
- 로그 기반 측정항목
- 측정항목 내보내기
- 알림
- 피드백 루프
- 요약
- 로그와 분석의 연관성
- 4부. 웨어하우스 유지 및 관리
- 13장. 고급 BigQuery 기능
- 분석 함수
- 정의
- 윈도우 프레임
- 파티션
- 실행 순서
- 숫자 함수
- 윈도우 프레임 문법
- 탐색 함수
- 집계 분석 함수
- BigQuery 스크립팅
- 블록
- 변수
- Comments 주석
- IF/THEN/ELSEIF/ELSE/END IF
- 제어 흐름
- 저장 프로시저, 사용자 정의 함수, 뷰
- 저장 프로시저
- 사용자 정의 함수
- 자바스크립트 사용자 정의 함수
- 뷰
- 구체화된 뷰
- 요약
- 분석 함수
- 14장. 데이터 거버넌스
- 데이터 거버넌스 정의
- 가용성
- 컴플라이언스
- 일관성
- 비용 관리
- 의사 결정
- 성능
- 품질
- 보안
- 사용성
- 거버넌스 전략
- 책임과 역할
- 고위 경영진
- 거버넌스 위원회
- 주제 전문가
- 데이터 분석가
- 데이터 엔지니어
- 기록 시스템
- Golden Record
- 단방향 데이터 흐름
- 보안
- 인증
- 권한
- 암호화
- 분류
- 데이터 손실 방지
- 감사
- 데이터 수명 주기
- 수집에서 사용 가능 상태까지
- 활성 데이터 및 품질 측정
- 폐기
- 거버넌스 정책 수정
- 로드맵
- 승인
- Google Cloud Data Catalog
- 개요
- BigQuery
- 외부 연결
- 개인 식별 정보
- 요약
- 데이터 거버넌스 정의
- 15장. 장기적인 전략 수립
- 비즈니스 변화
- 큰 비즈니스 변화
- 핵심 성과 지표
- 타임라인
- 접근 방법
- 데이터 프로그램 품의서
- 자연적인 성장
- 변화 제어
- 소스 제어 관리
- 데이터 보존 고려사항
- 개인 정보 보호법
- 비용 관리
- 만료 기간
- 장기 스토리지
- 데이터 조작 언어
- 중단 시간
- 코드 프리즈
- 단계적 성능 저하
- BigQuery 생태계
- 요약
- 비즈니스 변화
- 5부. 데이터 리포팅과 시각화
- 16장. 리포팅
- 리포팅
- 리포팅과 데이터 대중화
- 역사
- 회색시장 데이터
- 리포팅을 통한 대중화
- 역사는 반복된다
- 제품 관점의 리포팅
- B2B의 관점
- 리포팅 시스템 품의
- 제품 관리
- 요구사항 정의
- 플랫폼
- 보고서
- 로드맵
- 솔루션 분포
- Google Cloud Platform
- 서드 파티
- 그 외의 방법
- 요약
- 17장. 대시보드와 시각화
- 시각화
- 시각화 기능
- 대시보드
- 시각화와 대시보드
- 대시보드 계층
- 사용 사례
- 접근성
- 신선함
- 관련 측정항목
- 주요 비즈니스 변화
- 커뮤니티
- 대시보드 구축
- 하드웨어
- 소프트웨어
- 유지보수
- 요약
- 시각화
- 18장. Google Data Studio
- 데이터 스튜디오 보고서와 BigQuery
- 데이터 소스
- BigQuery 커넥터
- 보고서 준비
- 보고서 생성
- 차트 작성
- 보고서 보기 옵션
- 추가 기능
- 데이터 스튜디오 탐색기
- 데이터 혼합
- 계산된 필드
- 커뮤니티 추가 기능
- Google 애널리틱스
- BigQuery BI Engine
- 요약
- 데이터 스튜디오 보고서와 BigQuery
- 6부. 데이터의 잠재력 향상
- 19장. BigQuery ML
- 배경 지식
- 인공지능
- 머신러닝
- 통계와의 관계
- 윤리
- BigQuery ML 개념
- 비용
- 지도 학습과 비지도 학습
- 모델 유형
- 수행 절차
- 예제
- k-평균 군집화
- 분류
- 요약
- 배경 지식
- 20장. Jupyter Notebook과 공개 데이터 세트
- 심연의 가장자리
- Jupyter Notebook
- 노트북 설정
- 노트북 인터페이스
- Python 데이터 분석
- BigQuery 연결
- 커널에 데이터 추가하기
- BigQuery 데이터 추가
- dataframe 탐색
- 둘러보기
- 개별 값 탐색
- 다중 값 탐색
- 다음 단계
- 매직 명령어
- AutoML Tables
- 데이터 세트 가져오기
- 학습 설정
- 모델 학습
- 모델 평가
- 예측
- 추가 분석
- 데이터 인사이트 퍼널
- 요약
- 21장. 결론
- 부록 A. Cloud Shell과 Cloud SDK
- 부록 B. 데이터 프로젝트 품의서 샘플