3. 빅데이터 활용 도구(PostgreSQL, Apache Hive, Amazon Redshift, Google BigQuery, SparkSQL)

2024. 4. 13. 13:25·독서/데이터 분석을 위한 SQL 레시피

PostgreSQL
  • 오픈소스 RDB(Relational Database)*
  • 다양한 플랫폼을 지원, GUI 인스톨러 제공되어 쉽게 컴퓨터 설치 가능
  • MySQL 등의 오픈소스 RDB와 비교하면 표준 SQL을 잘 준수하며, 윈도 함수, CTE(WITH 구문) 등 분석에 필수로 사용하는 구문을 모두 구현
  • 여기에서 소개되는 미들웨어 중 가장 역사가 오래됨
  • 특유의 확장기능도 많이 제공하여 편리하게 사용 가능

*RDB: 관계형 데이터베이스. 엑셀 시트처럼 빈칸에 내용을 차곡차곡 쌓아가는 데이터베이스 방식을 가리킴(A-1, B-2처럼 각각 칸에 번호가 매겨져 있고, 이 번호를 통해 각각의 데이터를 확인)

 

Apache Hive
PostgreSQL 등의 RDB에서 대량의 데이터를 처리할 때 보틀넥이 발생하는 가장 큰 부분은 어디일까?
수 테라바이트에서 수 페타바이트의 데이터를 저장하는 경우 일반적으로 저렴한 디스크를 사용

BUT 디스크에서 데이터를 읽어들일 때 전송 속도는 일반적으로 CPU에서 처리할 수 있는 속도에 비해 매우 느림
디스크 I/O가 보틀넥이 되는 경우에서 고속으로 데이터를 처리하기 위한 아키텍쳐로 분산 파일 시스템이 고안
이때는 거대 데이터를 작게 분할해서 여러 개 디스크에 분산해서 저장하고 각 디스크에서 동시에 데이터를 읽어 고속으로 대량 데이터 처리 가능

* 보틀넥(bottleneck)  : 병목을 가리키는 말로서, 시스템 전체의 효율을 저해시키는 부분
* 디스크 I/O : 정확히 Disk I/O(%)라고 하며, 5초동안의 하드디스크의 사용률

 

  • HDFS(Hadoop File System)라고 부르는 분산 파일 시스템 위의 데이터를 SQL스러운 인터페이스로 간단하게 처리해주는 시스템
  • 위의 병목 현상을 해결하더라도 읽어온 데이터들의 순서를 제대로 맞출 수 있다면 의미없음. 이에 분산 파일 시스템 위의 순서를 맞추는 방법으로 MapReduce라는 알고리즘 고안
  • 초기 Apache Hadoop은 이러한 HDFS와 MapReduce 아키텍처를 구현한 시스템
  • Hive는 이러한 Hadoop 생태계의 일부분으로, HiveQL이라는 SQL스러운 쿼리 언어로 작성한 쿼리를 자동적으로 MapReduce 잡으로 변환해서 간단히 병렬 분산 처리 가능

장점

  • 쿼리 실행 때 동적으로 데이터를 정의할 수 있음(EX. 'Korea, Seoul, GangseoGu'라는 데이터를 '국가', '시, '구'처럼 3개의 컬럼으로 다룰 수 있으며, 하나의 문자열로도 다룰 수 있음)
  • 즉, '구체적으로 어떻게 사용할지 모르겠지만 데이터를 저장해두고 싶을 때'는 데이터를 HDFS 위에 그냥 축적해두고, 이후 필요한 시점에 동적으로 스키마를 정의할 수 있다는 의미
  • 데이터 분석을 위한 풍부한 UDF(User-Defined Function)를 * SQL만으로는 구현이 어려운 문자열 처리 등이 간단히 가능

단점

  • PostgreSQL로 대표되는 RDBMS와 비교해서 Hive는 어디까지나 파일 기반의 시스템에 있음
  • 따라서 특정 레코드 하나를 변경/제거하기 어렵고 인덱스도 디폴트로 존재하지 않아 쿼리 실행 때 파일 전체를 조작해야 함(데이터를 CSV처럼 특정 기호로 구분해서 하나의 텍스트 파일에 블럭 단위로 저장하므로 데이터 수정하려면 블럭 크기에 해당하는 파일을 열고 저장해야 하는 비효율 발생)
  •  

'독서 > 데이터 분석을 위한 SQL 레시피' 카테고리의 다른 글

4. 데이터  (3) 2024.05.10
2-2. 엔지니어의 과제  (4) 2024.04.13
2-1. 분석 담당자의 과제  (1) 2024.04.13
2-0. 저장된 데이터에 접근하려면? 미들웨어 부속도구의 사용  (2) 2024.04.12
'독서/데이터 분석을 위한 SQL 레시피' 카테고리의 다른 글
  • 4. 데이터
  • 2-2. 엔지니어의 과제
  • 2-1. 분석 담당자의 과제
  • 2-0. 저장된 데이터에 접근하려면? 미들웨어 부속도구의 사용
KURIKU
KURIKU
학습을 기록하기 위한 공간입니다.
  • KURIKU
    꾸리 log
    KURIKU
  • 전체
    오늘
    어제
    • 학습기록 (113)
      • 독서 (5)
        • 데이터 분석을 위한 SQL 레시피 (5)
      • 데이터 분석 (44)
        • 기타 환경 설정 (3)
        • 파이썬 기초 (11)
        • Pandas 기초 (6)
        • 비즈니스 데이터 분석 (3)
        • 웹 크롤링 (2)
        • 데이터 시각화 (0)
        • 머신러닝 (7)
        • 딥러닝 (7)
        • IT 인프라 (5)
        • 클라우드 서비스 (0)
        • 제안서 작성 (0)
      • AIBLE SCHOOL 6기_DX 컨설턴트 과정 (45)
        • 사전학습 (25)
        • 본 학습 (20)
      • 데이터리안 SQL 캠프 (0)
        • 입문반 (0)
        • 심화반 (0)
      • UXUI 심리학 (0)
      • 기업분석, 취준 (1)
      • 관심산업 경제뉴스브리핑 (16)
        • 카드산업 (6)
        • IT산업 (9)
        • 헬스케어산업 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    kt aible school
    2차 미니프로젝트
    kt aivle school#기자단#6기
    분당교육장
    에이블스쿨
    4차 미니프로젝트
    DX 컨설턴트 트랙
    kt aible
    6기
    kt aivle school
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
KURIKU
3. 빅데이터 활용 도구(PostgreSQL, Apache Hive, Amazon Redshift, Google BigQuery, SparkSQL)
상단으로

티스토리툴바