- 하둡 공부 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 다음글이전글이전 글이 없습니다.댓글