Impala - Genel Bakış
Impala nedir?
Impala, Hadoop kümesinde depolanan büyük hacimli verileri işlemek için bir MPP (Massive Parallel Processing) SQL sorgu motorudur. C ++ ve Java ile yazılmış açık kaynaklı bir yazılımdır. Hadoop için diğer SQL motorlarına kıyasla yüksek performans ve düşük gecikme sağlar.
Başka bir deyişle, Impala, Hadoop Dağıtılmış Dosya Sisteminde depolanan verilere erişmenin en hızlı yolunu sağlayan en yüksek performanslı SQL motorudur (RDBMS benzeri deneyim sağlar).
Neden Impala?
Impala, HDFS, HBase, Metastore, YARN ve Sentry gibi standart bileşenleri kullanarak geleneksel bir analitik veritabanının SQL desteğini ve çok kullanıcılı performansını Apache Hadoop'un ölçeklenebilirliği ve esnekliğiyle birleştirir.
Impala ile kullanıcılar, Hive gibi diğer SQL motorlarına kıyasla SQL sorgularını kullanarak HDFS veya HBase ile daha hızlı iletişim kurabilirler.
Impala, Hadoop tarafından kullanılan Parquet, Avro, RCFile gibi hemen hemen tüm dosya formatlarını okuyabilir.
Impala, Apache Hive ile aynı meta verileri, SQL sözdizimini (Hive SQL), ODBC sürücüsünü ve kullanıcı arayüzünü (Hue Beeswax) kullanarak toplu iş odaklı veya gerçek zamanlı sorgular için tanıdık ve birleşik bir platform sağlar.
Apache Hive'ın aksine, Impala is not based on MapReduce algorithms. Temel olarak dağıtılmış bir mimari uygular.daemon processes aynı makinelerde çalışan sorgu yürütmenin tüm yönlerinden sorumludur.
Böylece, MapReduce'u kullanma gecikmesini azaltır ve bu, Impala'yı Apache Hive'dan daha hızlı yapar.
Impala'nın Avantajları
İşte Cloudera Impala'nın bazı önemli avantajlarının bir listesi.
Impala kullanarak, HDFS'de depolanan verileri geleneksel SQL bilgisiyle ışık hızında işleyebilirsiniz.
Veri işleme, verilerin bulunduğu yerde (Hadoop kümesinde) gerçekleştirildiğinden, Impala ile çalışırken Hadoop'ta depolanan veriler için veri dönüşümü ve veri hareketi gerekli değildir.
Impala'yı kullanarak, HDFS, HBase ve Amazon s3'te depolanan verilere Java bilgisi olmadan erişebilirsiniz (MapReduce işleri). Bunlara temel bir SQL sorguları fikriyle erişebilirsiniz.
İş araçlarına sorgu yazmak için, verilerin karmaşık bir ayıklama-dönüştürme-yükleme (ETL) döngüsünden geçirilmesi gerekir. Ancak Impala ile bu prosedür kısaltılmıştır. Yükleme ve yeniden düzenlemenin zaman alıcı aşamaları, aşağıdaki gibi yeni tekniklerle aşılır:exploratory data analysis & data discovery süreci daha hızlı hale getirmek.
Impala, veri ambarı senaryolarında tipik olan büyük ölçekli sorgular için optimize edilmiş sütunlu bir depolama düzeni olan Parquet dosya formatının kullanımına öncülük ediyor.
Impala'nın Özellikleri
Aşağıda, Cloudera Impala'nın özellikleri verilmiştir -
Impala, Apache lisansı altında açık kaynak olarak ücretsiz olarak kullanılabilir.
Impala, bellek içi veri işlemeyi destekler, yani Hadoop veri düğümlerinde depolanan verilere veri hareketi olmadan erişir / analiz eder.
SQL benzeri sorgular kullanarak Impala kullanarak verilere erişebilirsiniz.
Impala, diğer SQL motorlarına kıyasla HDFS'deki verilere daha hızlı erişim sağlar.
Impala'yı kullanarak verileri HDFS, Apache HBase ve Amazon s3 gibi depolama sistemlerinde depolayabilirsiniz.
Impala'yı Tableau, Pentaho, Micro strateji ve Zoom verileri gibi iş zekası araçlarıyla entegre edebilirsiniz.
Impala, LZO, Sequence File, Avro, RCFile ve Parquet gibi çeşitli dosya formatlarını destekler.
Impala, Apache Hive'ın meta verilerini, ODBC sürücüsünü ve SQL sözdizimini kullanır.
İlişkisel Veritabanları ve Impala
Impala, SQL ve HiveQL'e benzer bir Sorgu dili kullanır. Aşağıdaki tablo, SQL ve Impala Sorgu dili arasındaki bazı temel farklılıkları açıklamaktadır.
İmpala | İlişkisel veritabanları |
---|---|
Impala, HiveQL'e benzer SQL benzeri bir sorgu dili kullanır. | İlişkisel veritabanları SQL dilini kullanır. |
Impala'da, kayıtları tek tek güncelleyemez veya silemezsiniz. | İlişkisel veri tabanlarında, tek tek kayıtları güncellemek veya silmek mümkündür. |
Impala işlemleri desteklemez. | İlişkisel veritabanları işlemleri destekler. |
Impala indekslemeyi desteklemez. | İlişkisel veritabanları indekslemeyi destekler. |
Impala, büyük miktarda veriyi (petabayt) depolar ve yönetir. | İlişkisel veritabanları, Impala ile karşılaştırıldığında daha az miktarda veriyi (terabayt) işler. |
Hive, Hbase ve Impala
Cloudera Impala, Hive ile aynı sorgu dilini, metastore'u ve kullanıcı arayüzünü kullansa da, bazı yönlerden Hive ve HBase ile farklılık gösterir. Aşağıdaki tablo HBase, Hive ve Impala arasında karşılaştırmalı bir analiz sunmaktadır.
HBase | Kovan | İmpala |
---|---|---|
HBase, Apache Hadoop'a dayalı geniş sütunlu depo veritabanıdır. BigTable kavramlarını kullanır. | Hive, bir veri ambarı yazılımıdır. Bunu kullanarak, Hadoop üzerine kurulu büyük dağıtılmış veri kümelerine erişebilir ve bunları yönetebiliriz. | Impala, Hadoop'ta depolanan verileri yönetmek ve analiz etmek için kullanılan bir araçtır. |
HBase'nin veri modeli geniş sütun deposudur. | Hive, İlişkisel modeli izler. | Impala İlişkisel modeli izler. |
HBase, Java dili kullanılarak geliştirilmiştir. | Hive, Java dili kullanılarak geliştirilmiştir. | Impala, C ++ kullanılarak geliştirilmiştir. |
HBase'in veri modeli şema içermez. | Hive'ın veri modeli Şema tabanlıdır. | Impala'nın veri modeli Şema tabanlıdır. |
HBase, Java, RESTful ve Thrift API'leri sağlar. | Hive, JDBC, ODBC, Thrift API'leri sağlar. | Impala, JDBC ve ODBC API'leri sağlar. |
C, C #, C ++, Groovy, Java PHP, Python ve Scala gibi programlama dillerini destekler. | C ++, Java, PHP ve Python gibi programlama dillerini destekler. | Impala, JDBC / ODBC'yi destekleyen tüm dilleri destekler. |
HBase, tetikleyiciler için destek sağlar. | Hive, tetikleyiciler için herhangi bir destek sağlamaz. | Impala, tetikleyiciler için herhangi bir destek sağlamaz. |
Tüm bu üç veritabanı -
NOSQL veritabanlarıdır.
Açık kaynak olarak mevcuttur.
Sunucu tarafı komut dosyalarını destekleyin.
Dayanıklılık ve Eş Zamanlılık gibi ACID özelliklerini takip edin.
Kullanım sharding için partitioning.
Impala'nın Dezavantajları
Impala kullanmanın bazı dezavantajları aşağıdaki gibidir -
- Impala, Serileştirme ve Seriyi Kaldırma için herhangi bir destek sağlamaz.
- Impala, özel ikili dosyaları değil, yalnızca metin dosyalarını okuyabilir.
- HDFS'deki veri dizinine her yeni kayıt / dosya eklendiğinde, tablonun yenilenmesi gerekir.