https://www.yes24.com/Product/Goods/59411396
데이터 분석을 위한 SQL 레시피 - 예스24
현장에서 바로 써먹는 SQL 데이터 분석 실무 지침서 이 책은 집필진이 실제로 업무에서 작성했던 리포트나 SQL 코드를 범용화하여 정리한 지침서입니다. 데이터 집계와 가공, 매출 파악, 웹사이트
www.yes24.com
동아리 스터디에서 SQL을 공부하게 되었다.
이 교재를 바탕으로 기억에 남는 문구나 기억해야 할 내용, 공부한 것들을 기록할 예정이다
Postgresql로 실습 진행
이 책은 데이터 분석 담당자와 엔지니어가 서로 원활한 커뮤니케이션을 하는 것이 중요하다고 말하고 있다. 그리고 그것을 가능하게 하는 것이 SQL이다. 분석 담당자가 SQL을 알아야 무엇을 집계할 수 있는지 알 수 있고, 엔지니어에게 적절한 의뢰를 할 수 있다. 그리고 엔지니어는 서비스 개발에 필요한 SQL이 아니라 분석에 특화된 SQL을 알아야 재사용성과 범용성이 높은 방법으로 데이터를 추출할 수 있다.
즉, SQL을 잘 알아야 서로의 작업을 이해할 수 있다. 기존 서로의 작업 영역을 넘어 담당하는 범위를 넓혀야한다.
백엔드 개발에서 다루는 SQL과 빅데이터에서 다루는 SQL은 기본 개념부터 다르다
백엔드에서 사용하는 SQL에서는 성능, 즉 퍼포먼스가 가장 중요한 요소이지만
빅데이터에서 사용하는 SQL에서는 성능보다 가독성과 재사용성이 우선이다.
이 책에서는 데이터를 크게 업무 데이터와 로그 데이터 이렇게 두 종류로 구분하고 있다.
- 업무 데이터 : 업무에 필요한 데이터
- 로그 데이터 : 업무에 직접적으로 필요하지는 않지만 분석을 위해 추출해야 하는 데이터
업무 데이터
- 트랜잭션 데이터, 서비스와 시스템을 통해 사용자의 행동을 기록한 데이터
- 마스터 데이터, 서비스와 시스템이 정의하고 있는 데이터
ex) 트랜잭션 데이터를 통해 <상품 ID> <개수> 를 알고 있어도, 마스터 데이터를 통해 상품 ID가 어떤 상품을 의미하는지 알아야함. 마스터 테이블과 결합해야 리포트 작업에 활용 가능
로그 데이터
- 업무 데이터는 서비스와 시스템을 구축할 때 필요한 데이터이지만, 로그 데이터는 서비스의 처리에 영향이 거의 없는 사용자 엔드포인트, IP주소, URL, Cookie 등의 정보를 저장한 것
- 출력 시점의 정보를 기록하는 것이므로(계속 기록을 추가하는 것) 과거의 데이터가 변경되지는 않음
ex) 상품 가격을 변경하더라도 과거의 로그 데이터가 변경되지는 않음. 하지만 업무데이터 상의 상품 가격의 갱신된 것.
- 주로 웹사이트에서의 행동을 기록할 때 활용
로그 데이터와 업무 데이터를 함께 활용하면 분석 가능성이 넓어짐
ex) 웹사이트에서의 행동이 오프라인의 행동에 어떠한 영향을 미치는지 조사 가능
용어 정리
마이그레이션(migration)이란?
- 한 운영환경에서 좀 더 나은 다른 운영환경으로 옮겨가는 과정
- 한 종류의 데이터베이스에서 다른 종류의 데이터베이스로 데이터를 옮기는 것
- ex) 새로운 프로젝트 수행시 기존 데이터베이스를 다른 데이터베이스로 변경하거나, 통합시스템 구축시 여러 데이터 베이스를 하나의 데이터베이스로 합치는 것
미들웨어(middleware)란?
- 응용 소프트웨어가 운영체제로부터 제공받는 서비스 이외에 추가적으로 이용할 수 있는 서비스를 제공하는 컴퓨터 소프트웨어
- 애플리케이션들을 연결하여 데이터를 주고받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어
- 네트워크를 통해서 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해주는 소프트웨어
- ex) 데이터베이스 시스템, 전자통신 소프트웨어, 메시지 및 쿼리 처리 소프트웨어
보틀넥(bottleneck)이란?
- 병목현상, 컴퓨터의 성능 저하 현상
- 한 번에 많은 양의 데이터가 유입됨으로써 컴퓨터가 느려지는 현상
Apache Hive(이하 Hive)
- HDFS(하둡 파일 시스템, 분산 파일 시스템)위의 데이터를 SQL 스러운 인터페이스로 간단하게 처리해주는 시스템
-> 보틀넥 해결, 하지만 데이터의 순서를 제대로 맞출 수 없다면 의미 X
-> MapReduce : 분산 파일 시스템 위의 데이터의 순서를 맞추는 방법
초기 Apache Hadoop : HDFS와 MapReduce 아키텍처를 구현한 시스템
Hive는 이러한 Hadoop 생태계의 일부분
HiveQL(SQL스러운 쿼리 언어)로 작성한 쿼리를 자동적으로 MapReduce 잡으로 변환해서 간단하게 병렬 분산 처리 가능
: 나중에 AWS, Cloud, Apache Spark, Hadoop, Sqoop, MapReduce 등등 에 대해 공부를 해야할 것 같다
'SQL > [책] 데이터 분석을 위한 SQL 레시피' 카테고리의 다른 글
| [데이터 분석을 위한 SQL 레시피] 11강 - 사용자 전체의 특징과 경향 찾기 (0) | 2023.10.02 |
|---|---|
| [데이터 분석을 위한 SQL 레시피] 8강 - 여러 개의 테이블 조작하기 (0) | 2023.09.17 |
| [데이터 분석을 위한 SQL 레시피] 7강 - 하나의 테이블에 대한 조작 (0) | 2023.09.17 |
| [데이터 분석을 위한 SQL 레시피] 6강 - 여러 개의 값에 대한 조작 (0) | 2023.09.10 |
| [데이터 분석을 위한 SQL 레시피] 5강 - 하나의 값 조작하기 (0) | 2023.09.09 |