[데이터 분석을 위한 SQL 레시피] Day 3

신두다·2022년 6월 20일
0

NOTE

  • 이 시리즈는 『데이터 분석을 위한 SQL 레시피』 가사키 나가토, 다미야 나오토 저. 한빛미디어를 통해 공부하는 내용을 저의 언어로 기록해두기 위해 만들어졌습니다.

[2장] 이 책에서 다루는 도구와 데이터


[3강] 시스템

[PostgreSQL]

  • 오픈소스 RDB이다. 왜 PostgreSQL을 선택했는지 이유를 들어보면, 역사가 가장 오래되기도 했고 특유의 확장 기능도 많이 제공하여 편리하게 사용할 수 있기 때문인 것 같다.
  • 소규모의 데이터 분석, SQL 학습을 목표로 한다면 로컬에서 비교적 가볍게 동작하는 PostgreSQL 사용을 추천하고 있다.

[Apache Hive]

  • RDB에서 대량의 데이터를 처리할 때 가장 크게 병목현상이 발생하는 곳은 느린 디스크의 데이터 처리라고 한다.
  • 이 경우 빠르게 데이터를 처리하기 위해 분산 파일 시스템을 사용하는데, 예를 들어 5TB의 데이터를 100대의 디스크에 분산해 저장하고 읽어들이며 시간을 줄이는 것이다.
  • 이런 맥락에서 Apache Hive가 하는 역할이 무엇인지 쭉 설명이 나와있다. 요약하면 분산 파일 시스템 위의 데이터를 SQL스러운 인터페이스로 간단하게 처리해주는 시스템이라고 한다. 쉽게 생각해 분산 파일 시스템 내에서 데이터 관리/처리를 쉽게 해주는 툴이라고 생각해도 될 것 같다. Hadoop 생태계의 일부분이다.
  • RDBMS와 다르게 Hive는 파일 기반의 시스템에 있다고 한다. 근데 동적으로 데이터를 정의할 수 있는 장점이 있다거나, 일단 데이터를 저장할 수 있다거나 등의 설명을 보았을 때 '이거 NoSQL인가?'하는 생각이 들어 찾아봤는데, 그렇게 분류하는 사람도 있고 아닌 사람도 있는 것 같다.
    • 파일 기반 시스템이라 특정 레코드를 제거하거나 변경하는 것이 어려운 것이 단점이라고 한다.
    • 즉 OLAP 쪽만 지원, 즉 읽기 정도만 자유롭게 가능한 듯!
  • 이 글에 따르면 비정형 데이터를 저장하고 처리할 때 쓰이는 방식인 것 같고, 여하간 SQL에 익숙한 사람들에게도 친숙한 인터페이스를 제공해주는 것이 장점 중의 하나라고 한다.
    여기부터 너무 파고 들어가려고 하지는 말자..!

[Amazon Redshift]

  • AWS에서 제공하는 분산 병렬 RDB이다. 분산 환경에서 병렬 처리를 해준다는 건 Hive와 비슷하지만, Hive가 SQL'스러운' 인터페이스로 구현할 수 있는 시스템인 것에 비해 얘는 그냥 RDB라고 한다.
    • 즉, 레코드를 업데잇하거나 제거하거나 트랜잭션 등을 자유롭게 할 수 있다!
  • 일반적인 RDB에서 다룰 수 없는 대~량의 데이터와 상호 작용하는 쿼리를 실행하고 싶을 때 효과적이라고 한다.
  • 그러나 매우 비싸 개인이 쓰기는 어렵다는 점, 운영/관리에 있어 진입장벽이 너무나 높다는 점 등이 단점으로 꼽힌다.

[Google BigQuery]

  • 빅데이터 분석을 위해 구글이 제공하는 클라우드 서비스다.

[SparkSQL]

  • Apache Spark의 기능 중에서 SQL 인터페이스와 관련된 기능을 나타내는 용어이다.
  • 가장 큰 장점은 빅데이터 활용과 관련된 대부분의 처리를 한 번에 구현할 수 있는 것이라고 한다. 데이터 추출은 파이썬으로, 데이터 가공은 SQL로, 통계 분석은 R로 등으로 나뉘어 있던 걸 Spark에서는 인터페이스로 다양한 언어를 지원해 한 프로그램 내에서 한번에 구현할 수 있다는 것이다. 짱인데?
  • Spark에 대해서 다 다루면 책 한권을 더 써야한다며ㅋㅋ SparkSQL에 대해서만 다룰 예정이라고 한다.

오늘은 내가 앞으로 다루게 될 툴에 대한 설명을 읽어봤다. 설명은 설명이고 앞으로 직접 써보면서 느끼는 게 더 중요할 것 같다. 이제 다다음 정도 되면 직접 데이터를 다루는 파트로 넘어가게 될 것 같다. 기대된다!

profile
B2B SaaS 회사에서 Data Analyst로 일하고 있습니다.

0개의 댓글