HBase je open-sourcová nerelační distribuovaná databáze, která je modelovaná po vzoru Bigtable od Google a psaná v Javě. Je vyvíjena jako součást projektu Apache Hadoop v rámci Apache Software Foundation. Běží na HDFS, tedy Hadoop Distributed File System a zajišťuje funkcionality ve stylu Bigtable pro Hadoop.

Umožňuje tedy ukládání velkých objemů dat, kdy je malý objem informace zachycený uprostřed velkého souboru prázdných nebo nezásadních dat, jako například u operace vyhledávání padesáti největších položek ve skupině 2 miliard záznamů nebo vyhledávání nenulových položek, které jsou pouze zlomkem obsahu (méně než 0,1%).

HBase obsahuje funkce komprese, operace v paměti a Bloom filtry na bázi sloupců stejně jako v původním Bigtable. Tabulky v HBase mohou sloužit jako vstup a výstup pro MapReduce v Hadoopu a může k nim být přistupováno skrze Java API nebo REST, Avro nebo Thrift. HBase je orientovaná na sloupce a úložiště založené na klíčových hodnotách.

HBase není náhradou klasické SQL databáze, ale Apache Phoenix projekt nabízí pro HBase rovněž SQL vrstvu nebo JDBC driver, které umožňují integraci širokého spektra analytických a business analytických nástrojů. Apache Trafodion projekt nabízí SQL dotazovací mechanismus s využitím ODBC a JDBC driverů, stejně jako distribuovanou ochranu ACID transakcí napříč více výrazy, tabulkami, nebo řádky a používá HBase jako svoje úložiště.

HBase využívá mnoho webových řešení, která zpracovávají velké objemy dat. Platforma Facebooku Messaging HBase dříve využívala, následně ale zmigrovala na MyRocks. Na rozdíl od relačních a tradičních databází, HBase nepodporuje SQL skripty, příkazy jsou místo toho psány v Javě, podobně jako u MapReduce.

Výhody použití HBase

  • Objemné soubory dat. HBase si dokáže poradit s ukládáním velkých objemů dat na základě HDFS. Dokáže agregovat a analyzovat miliardy řádků uložených v HBase tabulkách.
  • Bod zhroucení. Existuje rozsah databáze, kdy se tradiční relační databáze začínají hroutit. HBase si s takto rozsáhlými databázemi poradit dokáže.
  • Rychlé zpracování. Ve srovnání s obvyklými tradičními databázemi trvá v HBase čtení a zpracování dat méně času.
  • Sdílené načítání a řešení pádu. HBase se umí automaticky obnovit, protože HDFS je interně distribuovaná a automaticky se obnovuje a HBase běží na základě HDFS.
  • Škálovatelnost. Škálovatelnost je umožněna modulárně i lineárně.
  • Bezschématická. V HBase neexistuje koncept pevného schématu sloupců, definuje pouze rodiny sloupců.
  • Jednoduché použití Java API pro klientský přístup. Pro přístup do databáze je možné využít jednoduché Java API.
  • Konzistence. HBase je vhodná pro použití v aplikacích s velkým důrazem na rychlost, protože nabízí konzistentní čtení a zápis.

Nevýhody použití HBase

  • Riziko pádu. V případě, že je využíván pouze jeden HMaster, existuje možnost pádu databáze.
  • Chybějící podpora transakcí. V HBase neexistuje podpora transakcí.
  • Absence JOINů v databázi. Samotná databáze neobsahuje funkcionalitu JOINů, stejný problém je možné řešit skrze použití MapReduce vrstvy.
  • Řazení jen podle klíče. RDBMS může být indexováno na libovolném poli, HBase je indexována a řazená výlučně podle klíče.
  • Vestavěna autentifikace. V HBase není vestavěná podpora pro řízené přístupy nebo vestavěná autentifikace.
  • Nedokáže nahradit. Vzhledem k tomu, že HBase nepodporuje některé zásadní funkcionality tradičního modelu databáze, není s HBase možné plně nahradit tradiční databázi.
  • Chybějící podpora SQL struktury. Pro HBase neexistuje podpora SQL struktury, nemůže obsahovat nástroj na optimalizaci dotazů.
  • Nepředvídatelná latence. Při integraci HBase s MapReduce dochází k nepředvídatelným latencím.
  • Problémy s pamětí.