MySQL 성능 최적화
28,000원
고급
도서 소개
데이터 파이프라인의 모든 단계를 기초부터 탄탄하게 설명합니다!
데이터 파이프라인은 데이터 분석의 성공을 위한 기반입니다. 수많은 다양한 소스에서 데이터를 이동하고 컨텍스트를 제공하기 위해 변환하는 것은 데이터를 그저 소유하는 것과 그로부터 실제 가치를 얻는 것만큼의 차이가 있습니다. 이 핵심 가이드 북은 데이터 파이프라인을 정의하고 최신 데이터 스택에서 작동하는 방식을 설명합니다.
일괄 처리 대 스트리밍 데이터 수집, 빌드 대 구매와 같은 파이프라인을 구현할 때 일반적인 고려사항과 주요 결정사항을 배웁니다. 이 책은 데이터 전문가가 내리는 가장 일반적인 결정을 다루고 오픈 소스 프레임워크와 상용 제품, 자체 개발 솔루션에 적용되는 기본 개념에 관해 설명합니다.
★ 이 책에서 다루는 내용 ★
- 데이터 파이프라인의 정의 및 작동 방식
- 클라우드 플랫폼을 포함한 최신 데이터 인프라에서 데이터를 이동하고 처리하는 방법
- 데이터 엔지니어가 파이프라인을 구축하는 데 사용하는 공통 도구 및 제품
- 파이프라인이 분석 및 보고 요구사항을 지원하는 방법
- 파이프라인 유지 관리, 테스트 및 경고에 대한 고려 사항
저자 소개
제임스 댄스모어(James Densmore)
제임스 댄스모어는 Hub-Spot의 데이터 인프라 디렉터이며, Data Liftoff의 창립자이자 수석 컨설턴트다. Wayfair, O'Reilly Media, HubSpot 및 Degreed에서 데이터 팀을 이끌고 데이터 인프라를 구축한 10년 이상의 경험이 있다. 그는 노스이스트 대학에서 컴퓨터 공학 학사 학위를, 보스턴 칼리지에서 MBA를 취득했다.
역자 소개
정현아
데이터베이스 컨설턴트로 다양한 기업의 데이터베이스 구축과 운영을 지원하다가 현재는 클라우드 공급업체에서 솔루션즈 아키텍트로 근무하고 있다. 특히 데이터를 다루고 바라보는 작업에 흥미를 느끼며 어떻게 데이터를 쉽고 잘 분석할 수 있을지를 사람들과 함께 고민하는 것을 좋아한다. 그 외의 시간은 다양한 경험으로 채워나가며 다채로운 인생을 만들어가는 중이다.
조이정
리눅스 서버 어드민을 시작으로 오픈스택을 구축하고 관리하다가 클라우드 시대를 맞아 현재는 클라우드 공급업체에서 솔루션즈 아키텍트로 일을 하고 있다. 트렌드의 변화를 관찰하고 내 것으로 만드는 것을 좋아하며 제너럴리스트와 스페셜리스트 사이에서 늘 고민한다. 솔루션즈 아키텍트로서 대중에게 클라우드를 알리고 기존 환경을 클라우드로 이전하여 애플리케이션을 현대화할 수 있게 돕는 일에 관심이 많다.
목차
- ▣ 01장: 데이터 파이프라인 소개
- 데이터 파이프라인이란?
- 누가 파이프라인을 구축할까?
- SQL과 데이터 웨어하우징 기초
- 파이썬 그리고/또는 자바
- 분산 컴퓨팅
- 기본 시스템 관리
- 목표 지향적 사고방식
- 왜 데이터 파이프라인을 구축할까?
- 어떻게 데이터 파이프라인을 구축할까?
- ▣ 02장: 최신 데이터 인프라
- 데이터 소스의 다양성
- 소스 시스템 소유권
- 수집 인터페이스 및 데이터 구조
- 데이터 사이즈
- 데이터 클렌징 작업과 유효성 검사
- 소스 시스템의 지연 시간 및 대역폭
- 클라우드 데이터 웨어하우스 및 데이터 레이크
- 데이터 수집 도구
- 데이터 변환 및 모델링 도구
- 워크플로 오케스트레이션 플랫폼
- 방향성 비순환 그래프
- 데이터 인프라 커스터마이징
- 데이터 소스의 다양성
- ▣ 03장: 일반적인 데이터 파이프라인 패턴
- ETL과 ELT
- ETL을 넘어선 ELT의 등장
- EtLT 하위 패턴
- 데이터 분석을 위한 ELT
- 데이터 과학을 위한 ELT
- 데이터 제품 및 머신러닝을 위한 ELT
- 머신러닝 파이프라인의 단계
- 파이프라인에 피드백 통합
- ML 파이프라인에 대한 추가 자료
- ▣ 04장: 데이터 수집: 데이터 추출
- 파이썬 환경 설정
- 클라우드 파일 스토리지 설정
- MySQL 데이터베이스에서 데이터 추출
- 전체 또는 증분 MySQL 테이블 추출
- MySQL 데이터의 이진 로그 복제
- PostgreSQL 데이터베이스에서 데이터 추출
- 전체 또는 증분 Postgres 테이블 추출
- Write-Ahead 로그를 사용한 데이터 복제
- MongoDB에서 데이터 추출
- REST API에서 데이터 추출
- 카프카 및 Debezium을 통한 스트리밍 데이터 수집
- ▣ 05장: 데이터 수집: 데이터 로드
- Amazon Redshift 웨어하우스를 대상으로 구성
- Redshift 웨어하우스에 데이터 로드
- 증분 및 전체 로드
- CDC 로그에서 추출한 데이터 로드
- Snowflake 웨어하우스를 대상으로 구성3
- Snowflake 데이터 웨어하우스에 데이터 로드
- 파일 스토리지를 데이터 레이크로 사용
- 오픈 소스 프레임워크
- 상업적 대안
- ▣ 06장: 데이터 변환하기
- 비문맥적 변환
- 테이블에서 레코드 중복 제거
- URL 파싱
- 언제 변환할 것인가, 수집 중 혹은 수집 후?
- 데이터 모델링 기초
- 주요 데이터 모델링 용어
- 완전히 새로 고침 된 데이터 모델링
- 완전히 새로 고침 된 데이터의 차원을 천천히 변경
- 증분 수집된 데이터 모델링
- 추가 전용(Append-only) 데이터 모델링
- 변경 캡처 데이터 모델링
- 비문맥적 변환
- ▣ 07장: 파이프라인 오케스트레이션
- 방향성 비순환 그래프
- 아파치 에어플로우 설정 및 개요
- 설치 및 구성
- 에어플로우 데이터베이스
- 웹 서버 및 UI
- 스케줄러
- 실행기(Executors)
- 연산자(Operators)
- 에어플로우 DAG 구축
- 간단한 DAG
- ELT 파이프라인 DAG
- 추가 파이프라인 작업
- 경고 및 알림
- 데이터 유효성 검사
- 고급 오케스트레이션 구성
- 결합된 파이프라인 작업 대 결합되지 않은 파이프라인 작업
- DAG를 분할해야 하는 경우
- 센서로 여러 DAG 조정
- 관리형 에어플로우 옵션
- 기타 오케스트레이션 프레임워크
- 일찍 그리고 자주 검증할 것
- ▣ 08장: 파이프라인의 데이터 검증
- 소스 시스템 데이터 품질
- 데이터 수집 위험
- 데이터 분석가 검증 활성화
- 간단한 검증 프레임워크
- 유효성 검사기 프레임워크 코드
- 검증 테스트의 구조
- 검증 테스트 실행
- 에어플로우 DAG에서의 사용
- 파이프라인을 중단해야 할 때와 경고하고 계속해야 할 때
- 프레임워크의 확장
- 검증 테스트 예제
- 수집 후 중복된 레코드
- 수집 후의 예기치 않은 행 개수
- 지표 값 변동
- 상용 및 오픈 소스 데이터 검증 프레임워크
- 소스 시스템의 변경 사항 처리
- ▣ 09장: 파이프라인 유지 관리 모범 사례
- 추상화 도입
- 데이터 계약 유지 관리
- Schema-on-Read의 고려사항
- 확장 복잡성
- 데이터 수집 표준화
- 데이터 모델링 로직의 재사용
- 종속성 무결성 보장
- 중요 파이프라인 지표
- ▣ 10장: 파이프라인 성능 측정 및 모니터링
- 데이터 웨어하우스 준비
- 데이터 인프라 스키마
- 성능 데이터 로깅 및 수집
- 에어플로우에서 DAG 실행 기록 수집
- 데이터 유효성 검사기에 로깅 추가
- 성능 데이터 변환
- DAG 성공률
- 시간 경과에 따른 DAG 런타임 변경
- 검증 테스트 볼륨 및 성공률
- 성능 파이프라인 조정
- DAG의 성능
- 성능 투명성
- 데이터 웨어하우스 준비
예제 코드
- GitHub 저장소: https://github.com/wikibook/dppr
- ZIP 형식으로 다운로드: https://github.com/wikibook/dppr/archive/refs/heads/main.zip
정오표
-
47쪽, 페이지 하단 출력 결과
+ — — — — — — — — — — — — — — — — — — -+ | bin_log_status :: | + — — — — — — — — — — — — — — — — — — -+ | ON | + — — — — — — — — — — — — — — — — — — -+ 1 row in set (0.00 sec)==>
+ — — — — — — — — — — — — — — — — — — -+ | bin_log_format :: | + — — — — — — — — — — — — — — — — — — -+ | ROW | + — — — — — — — — — — — — — — — — — — -+ 1 row in set (0.00 sec) -
116쪽, 표 6-7의 5행 2열
2020-06-01 7:05:00==>
2020-06-02 7:05:00 -
119쪽, 표 6-8의 5행 2열
2020-06-01 7:05:00==>
2020-06-02 7:05:00 -
133쪽, 본문 8번째 줄
파이프라인 그래프는 또한 순환적이어야 한다.
==>
파이프라인 그래프는 또한 비순환적이어야 한다.