3 Wed
TIL
[AI 스쿨 1기] 9주차 DAY 3
Big Data : SparkSQL을 이용한 데이터 분석
배움의 전형적인 패턴
가장 중요한 것은 버티는 힘 => 즐길줄 알기
막혔을 때 내가 뭘 모르는지 생각해봐야 함
잘하는 사람보고 기죽지 않기 => 그들이 먼저 시작했다고 생각하고 또 이것이 사실이다

새로운 것을 처음 배울 때의 좋은 자세
자신이 아는 것과 모르는 것을 분명히 이해
멍청한 질문은 없음
마음을 편하게 먹기
내가 이해하기 힘들면 남들도 힘듦
나보다 더 잘하는 사람은 똑똑하기 보다는 더 노력했기 때문
배움의 발전은 Tipping point를 거치면서 폭발하는 형태
발전이 더딘 기간을 즐겨야 이러한 정체기 뒤에 폭발적인 발전의 시기가 다가온다
빅데이터에서 중요한 SQL
구조화된 데이터를 다룰거면 SQL은 끊임없이 중요
모든 대용량 데이터 웨어하우스는 SQL 기반
Spark도 예외는 아님
SparkSQL
데이터 분야에서 일하고자 하면 반드시 익혀야할 기본 기술
관계형 데이터베이스
대표적인 관계형 데이터 베이스
MySQL, Postgres, Oracle
Redshift, Snowflake
관계형 데이터베이스는 2단계로 구성됨
가장 밑단에는 테이블들이 존재. 테이블은 엑셀의 시트에 해당
테이블들은 데이터베이스라는 폴더 밑으로 구성
테이블의 구조. 스키마라고 부르기도 한다.
테이블은 레코드들로 구성
레코드는 하나 이상의 필드로 구성
필드는 이름과 타입으로 구성됨
예제 1 - 웹서비스 사용자/세션 정보
사용자 ID
보통 웹서비스에서는 등록된 사용자마다 유일한 ID를 부여한다
세션 ID
사용자가 외부 링크(보통 광고)를 타고 오거나 직접 방문해서 올 경우 세션을 생성
즉 하나의 사용자 ID는 여러 세션 ID를 가질 수 있음
보통 세션의 경우 세션을 만들어낸 소스를 채널이란 이름으로 기록
마케팅 관련 기여도 분석을 위함
세션 생성 시간도 기록
이 정보들을 바탕으로 다양한 데이터 분석과 지표 설정이 가능
마케딩 관련
사용자 트래픽 관련
EX)
사용자 ID 100번 : 총 3개의 세션(파란 배경)을 갖는 예제
세션 1 : 구글 키워드 광고로 시작한 세션
세션 2 : 페이스북 광고를 통해 생긴 세션 => 리타게팅 광고
세션 3 : 네이버 광고를 통해 생긴 세션

SQL 소개
SQL : Structured Query Language
두 종류의 언어로 구성됨
DDL (Data Definition Language) : 테이블의 구조를 정의하는 언어
DML (Data Manipulation Language) : 테이블에 레코드를 추가,삭제,갱신 할 때 사용하는 언어
DDL
CREATE TABLE
DROP TABLE
ALTER TABLE
DML
SELECT 필드 이름
FROM 테이블 이름
WHERE 선택조건
ORDER BY 정렬
LIMIT N (N개만)
EX
SELECT * FROM raw LIMIT 10;
처음 레코드 10개에 대해서 모든 필드를 리턴
SELECT COUNT(1) FROM raw
이 테이블에 있는 모든 레코드의 수를 리턴
SELECT COUNT(1) FROM raw WHERE channel = 'Facebook'
channel이 Facebook인 모든 레코드의 수를 리턴
Big Data : SparkSQL이란?
SparkSQL
구조화된 데이터 처리를 위한 Spark 모듈
대화형 Spark 셸이 제공됨
하둡 상의 데이터를 기반으로 작성된 Hive 쿼리의 경우 변경없이 최대
데이터 프레임을 SQL로 처리 가능
SparkSQL 사용법
외부 데이터베이스 기반으로 데이터 프레임 생성
Redshift 연결
SparkSession을 만들 때 외부 데이터베이스에 맞는 JDBC jar를 지정
SparkSession의 read 함수를 호출
로그인 관련 정보와 읽어오고자 하는 테이블 또는 SQL을 지정
결과가 데이터 프레임으로 리턴됨
앞서 리턴된 데이터프레임에 테이블 이름 지정
SparkSession의 sql 함수를 사용
Last updated
Was this helpful?