Impala-개요

Impala는 무엇입니까?

Impala는 Hadoop 클러스터에 저장된 방대한 양의 데이터를 처리하기위한 MPP (Massive Parallel Processing) SQL 쿼리 엔진입니다. C ++ 및 Java로 작성된 오픈 소스 소프트웨어입니다. 다른 Hadoop 용 SQL 엔진에 비해 높은 성능과 낮은 대기 시간을 제공합니다.

즉, Impala는 Hadoop 분산 파일 시스템에 저장된 데이터에 액세스하는 가장 빠른 방법을 제공하는 최고 성능의 SQL 엔진 (RDBMS와 유사한 경험을 제공)입니다.

왜 Impala인가?

Impala는 HDFS, HBase, Metastore, YARN 및 Sentry와 같은 표준 구성 요소를 활용하여 기존 분석 데이터베이스의 SQL 지원 및 다중 사용자 성능과 Apache Hadoop의 확장 성 및 유연성을 결합합니다.

  • Impala를 통해 사용자는 Hive와 같은 다른 SQL 엔진에 비해 SQL 쿼리를 사용하여 더 빠른 방식으로 HDFS 또는 HBase와 통신 할 수 있습니다.

  • Impala는 Hadoop에서 사용하는 Parquet, Avro, RCFile과 같은 거의 모든 파일 형식을 읽을 수 있습니다.

Impala는 Apache Hive와 동일한 메타 데이터, SQL 구문 (Hive SQL), ODBC 드라이버 및 사용자 인터페이스 (Hue Beeswax)를 사용하여 배치 지향 또는 실시간 쿼리를위한 친숙하고 통합 된 플랫폼을 제공합니다.

Apache Hive와 달리 Impala is not based on MapReduce algorithms. 다음을 기반으로 분산 아키텍처를 구현합니다.daemon processes 동일한 컴퓨터에서 실행되는 쿼리 실행의 모든 ​​측면을 담당합니다.

따라서 MapReduce 활용의 지연 시간이 줄어들고 Impala가 Apache Hive보다 빠릅니다.

Impala의 장점

다음은 Cloudera Impala의 몇 가지 주목할만한 장점 목록입니다.

  • Impala를 사용하면 기존 SQL 지식으로 HDFS에 저장된 데이터를 초고속으로 처리 할 수 ​​있습니다.

  • 데이터 처리는 데이터가있는 곳 (Hadoop 클러스터)에서 수행되기 때문에 Impala와 함께 작업하는 동안 Hadoop에 저장된 데이터에 대해 데이터 변환 및 데이터 이동이 필요하지 않습니다.

  • Impala를 사용하면 Java (MapReduce 작업)에 대한 지식없이 HDFS, HBase 및 Amazon s3에 저장된 데이터에 액세스 할 수 있습니다. SQL 쿼리의 기본 개념으로 액세스 할 수 있습니다.

  • 비즈니스 도구에서 쿼리를 작성하려면 데이터가 복잡한 ETL (추출 변환로드)주기를 거쳐야합니다. 그러나 Impala를 사용하면이 절차가 단축됩니다. 로드 및 재구성의 시간 소모적 인 단계는 다음과 같은 새로운 기술로 극복됩니다.exploratory data analysis & data discovery 프로세스를 더 빠르게 만듭니다.

  • Impala는 데이터웨어 하우스 시나리오에서 일반적으로 사용되는 대규모 쿼리에 최적화 된 컬럼 형 스토리지 레이아웃 인 Parquet 파일 형식의 사용을 개척하고 있습니다.

Impala의 특징

다음은 cloudera Impala의 기능입니다.

  • Impala는 Apache 라이선스에 따라 오픈 소스로 무료로 제공됩니다.

  • Impala는 인 메모리 데이터 처리를 지원합니다. 즉, 데이터 이동없이 Hadoop 데이터 노드에 저장된 데이터에 액세스 / 분석합니다.

  • SQL과 유사한 쿼리를 사용하여 Impala를 사용하여 데이터에 액세스 할 수 있습니다.

  • Impala는 다른 SQL 엔진과 비교할 때 HDFS의 데이터에 대한 더 빠른 액세스를 제공합니다.

  • Impala를 사용하면 HDFS, Apache HBase 및 Amazon s3와 같은 스토리지 시스템에 데이터를 저장할 수 있습니다.

  • Impala를 Tableau, Pentaho, Micro 전략 및 Zoom 데이터와 같은 비즈니스 인텔리전스 도구와 통합 할 수 있습니다.

  • Impala는 LZO, Sequence File, Avro, RCFile 및 Parquet과 같은 다양한 파일 형식을 지원합니다.

  • Impala는 Apache Hive의 메타 데이터, ODBC 드라이버 및 SQL 구문을 사용합니다.

관계형 데이터베이스 및 Impala

Impala는 SQL 및 HiveQL과 유사한 쿼리 언어를 사용합니다. 다음 표에서는 SQL과 Impala 쿼리 언어 간의 몇 가지 주요 차이점을 설명합니다.

임팔라 관계형 데이터베이스
Impala는 HiveQL과 유사한 쿼리 언어와 같은 SQL을 사용합니다. 관계형 데이터베이스는 SQL 언어를 사용합니다.
Impala에서는 개별 레코드를 업데이트하거나 삭제할 수 없습니다. 관계형 데이터베이스에서는 개별 레코드를 업데이트하거나 삭제할 수 있습니다.
Impala는 트랜잭션을 지원하지 않습니다. 관계형 데이터베이스는 트랜잭션을 지원합니다.
Impala는 인덱싱을 지원하지 않습니다. 관계형 데이터베이스는 인덱싱을 지원합니다.
Impala는 많은 양의 데이터 (페타 바이트)를 저장하고 관리합니다. 관계형 데이터베이스는 Impala와 비교할 때 더 적은 양의 데이터 (테라 바이트)를 처리합니다.

Hive, Hbase 및 Impala

Cloudera Impala는 Hive와 동일한 쿼리 언어, 메타 스토어 및 사용자 인터페이스를 사용하지만 특정 측면에서 Hive 및 HBase와 다릅니다. 다음 표는 HBase, Hive 및 Impala 간의 비교 분석을 보여줍니다.

HBase 하이브 임팔라
HBase는 Apache Hadoop을 기반으로하는 넓은 열 저장소 데이터베이스입니다. BigTable의 개념을 사용합니다. Hive는 데이터웨어 하우스 소프트웨어입니다. 이를 사용하여 Hadoop에 구축 된 대규모 분산 데이터 세트에 액세스하고 관리 할 수 ​​있습니다. Impala는 Hadoop에 저장된 데이터를 관리하고 분석하는 도구입니다.
HBase의 데이터 모델은 넓은 열 저장소입니다. Hive는 관계형 모델을 따릅니다. Impala는 관계형 모델을 따릅니다.
HBase는 Java 언어를 사용하여 개발되었습니다. Hive는 Java 언어를 사용하여 개발되었습니다. Impala는 C ++를 사용하여 개발되었습니다.
HBase의 데이터 모델은 스키마가 없습니다. Hive의 데이터 모델은 스키마 기반입니다. Impala의 데이터 모델은 스키마 기반입니다.
HBase는 Java, RESTful 및 Thrift API를 제공합니다. Hive는 JDBC, ODBC, Thrift API를 제공합니다. Impala는 JDBC 및 ODBC API를 제공합니다.
C, C #, C ++, Groovy, Java PHP, Python 및 Scala와 같은 프로그래밍 언어를 지원합니다. C ++, Java, PHP 및 Python과 같은 프로그래밍 언어를 지원합니다. Impala는 JDBC / ODBC를 지원하는 모든 언어를 지원합니다.
HBase는 트리거를 지원합니다. Hive는 트리거에 대한 지원을 제공하지 않습니다. Impala는 트리거를 지원하지 않습니다.

이 세 데이터베이스 모두-

  • NOSQL 데이터베이스입니다.

  • 오픈 소스로 제공됩니다.

  • 서버 측 스크립팅을 지원합니다.

  • Durability 및 Concurrency와 같은 ACID 속성을 따릅니다.

  • 사용하다 sharding ...에 대한 partitioning.

Impala의 단점

Impala 사용의 몇 가지 단점은 다음과 같습니다.

  • Impala는 직렬화 및 역 직렬화에 대한 지원을 제공하지 않습니다.
  • Impala는 사용자 지정 바이너리 파일이 아닌 텍스트 파일 만 읽을 수 있습니다.
  • HDFS의 데이터 디렉토리에 새 레코드 / 파일이 추가 될 때마다 테이블을 새로 고쳐야합니다.