Apache Phoenix

Apache Phoenix는 Apache HBase를 백업 저장소로 사용하여 Hadoop용 OLTP를 지원하는 오픈 소스 대규모 병렬 관계형 데이터베이스 엔진입니다. 따라서 개발자는 친숙한 SQL 인터페이스를 사용하여 대규모 데이터세트에 실시간으로 액세스할 수 있습니다.

  • 전체 ACID 트랜잭션 기능이 지원되는 표준 SQL 및 JDBC API
  • Hbase의 기존 데이터를 통해 런타임에 바인딩된 읽기 스키마(schema-on-read) 지원
  • Spark, Hive, Pig, Flume, MapReduce와 같은 다른 Hadoop 제품에 저장 및 생성된 데이터에 액세스

 Phoenix가 수행하는 작업

Apache HBase는 Hadoop의 데이터에 대한 임의적인 실시간 액세스를 제공하며, Hadoop 에코시스템에서 잘 채택됩니다. Apache Phoenix는 JDBC 드라이버를 통해 표준 SQL로 데이터를 쿼리할 수 있도록 기본 데이터 스토어를 추상화합니다. Apache Phoenix는 특정 행 키 설계에 의존하지 않고 쿼리 속도를 높일 수 있도록 보조 인덱스와 같은 기능을 제공합니다.

또한 Apache Phoenix는 데이터가 저장되는 노드에서 집계 쿼리가 실행되는 경우에 대규모 병렬 상태이므로 네트워크를 통해 데이터를 전송할 필요성이 크게 감소합니다.

Feature Description
Familiar Query data with a SQL-based language
Fast Real-time queries
Reliable Built on top of proven data store HBase
Platform agnostic Hortonworks’ Phoenix provides ODBC connector drivers, allowing you to connect to your dataset using familiar BI tools.

Phoenix 작동 원리

Phoenix를 통해 대량의 데이터에 빠르게 액세스할 수 있습니다. 1억 개 행의 전체 테이블 스캔은 대개 20초면 완료됩니다(중간 크기의 클러스터 상의 좁은 테이블). 키 열에 있는 쿼리에 필터가 포함된 경우 이 시간은 몇 밀리초로 단축됩니다. 키가 아닌 열이나 앞에 있지 않는 키 열에 있는 필터의 경우 이 열에 보조 인덱스를 추가할 수 있으며, 이렇게 되면 인덱싱된 키 열 부분이 있는 테이블 사본을 만들어 성능이 키 열의 필터링에 준하게 됩니다.

Phoenix가 전체 스캔 중일 때에도 속도가 빠른 이유:

  1. Phoenix는 지역 경계를 사용하여 쿼리를 취합하고 구성 가능한 수의 스레드를 사용하여 클라이언트에서 이 쿼리를 병렬로 실행합니다.
  2. 통합은 서버 측 보조 프로세서에서 수행되므로 데이터를 모두 반환하는 대신 클라이언트로 반환되는 데이터의 양이 감소합니다.

Your form submission has failed.

This may have been caused by one of the following:

  • Your request timed out
  • A plugin/browser extension blocked the submission. If you have an ad blocking plugin please disable it and close this message to reload the page.