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í.