• 티스토리 홈
  • 프로필사진
    31514
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
31514
  • 프로필사진
    31514
    • 분류 전체보기 (109)
      • Book (66)
        • Learning SQL (9)
        • SQL 레벨업 (8)
        • 견고한 데이터 엔지니어링 (5)
        • 운영체제 (2)
        • 스파크 완벽 가이드 (9)
        • 파이썬 코딩의 기술 (29)
        • 분산 컴퓨팅 (4)
      • 개발 (25)
      • 기타 (10)
        • 출퇴근 공부 간단 정리 (7)
      • ELK (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
      • 31514의 이전 블로그는 여기로!
      등록된 공지가 없습니다.
    # Home
    # 공지사항
    #
    # 태그
    # 검색결과
    # 방명록
    • 하둡 공부 4일차
      2024년 11월 26일
      • 31514
      • 작성자
      • 2024.11.26.:56

      오늘은 하둡 에코시스템에 포함되어 있지는 않지만, 대용량 데이터를 다룰 때 유용한 몇 가지 쿼리 엔진에 대해 학습했다.

      쿼리 엔진 Drill, Phoenix, Presto를 소개하고자 한다.

      Drill

      Drill은 다양한 데이터 소스에 대해 SQL 쿼리를 실행할 수 있는 분산형 스키마리스 SQL 엔진이다.

      Drill은 아래와 같이 다양한 데이터 소스를 지원한다.

      • 파일 시스템 : CSV, JSON, Parquet, ORC, Avro 등
      • NoSQL 데이터베이스 : MongoDB, HBase, Cassandra 등
      • 클라우드 스토리지 : Amazon S3, Google Cloud Storage 등
      • 관계형 데이터베이스 : MySQL, PostgreSQL, Oracle 등

      이처럼 Drill은 다양한 데이터 소스로부터 편리한 SQL을 사용하여 쿼리할 수 있도록 도와준다.

      따라서 여러 저장소에 분산되어 있는 데이터를 통합하거나 탐색하는 데 유용하고, JSON 및 비구조적 데이터를 쉽게 처리할 수 있다.

       

      Phoenix

      Phoenix는 HBase에서 SQL 쿼리를 실행할 수 있도록 지원하는 SQL 엔진이다.

      Drill과 달리 오직 HBase 위에서만 동작한다.

      피닉스는 트랜잭션을 지원하기 때문에 OLTP 시스템으로도 사용할 수 있다.

      더불어 인덱싱과 사용자 정의 함수(UDF)를 지원한다.

       

      ※ 피닉스가 레이어 위에 더해졌다고 해서 성능이 감소될 거라고 생각할 수도 있지만, 고도로 최적화되어 있기 때문에 성능에 좋다.

       

      Presto

      Presto는 다양한 데이터 소스에서 대규모 데이터에 대한 고성능 SQL 쿼리 엔진이다.

      지원하는 데이터 소스는 다음과 같다.

      • 데이터 웨어하우스: Hive, Snowflake 등
      • 파일 시스템: HDFS, S3, Google Cloud Storage 등
      • NoSQL 데이터베이스: Cassandra, MongoDB
      • 관계형 데이터베이스: MySQL, PostgreSQL, Oracle 등

       

      특히 OLAP 시스템에 최적화되어 있고, 데이터를 디스크에 저장하지 않고 메모리 내에서 직접 처리하여 높은 처리 속도를 제공한다.

      다만, 모든 처리가 메모리에서 이루어지므로, 메모리가 부족하면 성능 저하가 발생할 수 있다.

       

      결론

      처음에 쿼리 엔진에 대하여 공부할 때, HBase나 Cassandra, MongoDB는 모두 각각의 쿼리 언어들이 존재하는데, 왜 따로 쿼리 엔진을 만들었을까 의문이 들었다.

      하지만 공부할수록 회사에서 하나의 데이터 스토리지만을 사용하지 않겠다는 생각이 들었고, 이를 통합하여 SQL 언어로 처리하는 것은 큰 장점이 될 수 있겠다는 생각이 들었다.

      그리고 피닉스와 같이 HBase 위에서만 작동하는 시스템 같은 경우에는 새로운 성능 향상을 이뤄낼 수 있다는 생각이 들었다.

      만약 회사에서 하둡 에코시스템을 운영하고 있다거나, 기타 데이터 플랫폼을 운영하고 있을 때 쿼리 성능 향상을 원한다면 오늘 공부한 쿼리 엔진을 고려해 봐야겠다.

      '개발' 카테고리의 다른 글

      Airflow 뜯어보기(2)  (0) 2024.12.17
      Airflow 뜯어보기(1)  (1) 2024.12.16
      하둡 공부 3일차  (0) 2024.11.25
      하둡 공부 2일차  (1) 2024.11.22
      하둡 공부 1일차  (0) 2024.11.21
      다음글
      다음 글이 없습니다.
      이전글
      이전 글이 없습니다.
      댓글
    조회된 결과가 없습니다.
    스킨 업데이트 안내
    현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
    ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
    목차
    표시할 목차가 없습니다.
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바