sql >> Databáze >  >> NoSQL >> HBase

Koncepce vývoje aplikací Cloudera Operational Database

Cloudera Operational Database je nyní k dispozici ve třech různých formách v Cloudera Data Platform (CDP).

Pokud jste v Cloudera Operational Database noví, podívejte se na tento blogový příspěvek. A podívejte se na dokumentaci zde.

V tomto příspěvku na blogu se podíváme na koncepty Apache HBase a Apache Phoenix relevantní pro vývoj aplikací pro Cloudera Operational Database.

Nejprve však toto jsou různé formální faktory, ve kterých je Cloudera Operational Database k dispozici vývojářům:

Veřejný cloud:

  • Šablona operační databáze CDP Data Hub 
  • Cloudera Operational Database (COD), což je spravované řešení dbPaaS

On-premise:

  • Základ CDP Private Cloud

Různé tvarové faktory vám umožňují vyvíjet aplikace, které lze provozovat lokálně, ve veřejném cloudu nebo obojí.

Cloudera Operational Database využívá Apache HBase a Apache Phoenix. V Cloudera Operational Database používáte Apache HBase jako datové úložiště s HDFS a/nebo S3 poskytující infrastrukturu úložiště. Máte na výběr buď vyvíjet aplikace pomocí jedné z nativních aplikací Apache HBase, nebo můžete pro přístup k datům použít Apache Phoenix. Apache Phoenix je vrstva SQL, která poskytuje programové rozhraní ANSI SQL. Funguje nad Apache HBase a umožňuje zpracovávat data pomocí standardních SQL dotazů. (Příkazy DML nejsou standardní SQL).

Mnoho vývojářů dává přednost použití strukturovaného dotazovacího jazyka (SQL) pro přístup k datům uloženým v databázi a Apache Phoenix v Cloudera Operational Database vám toho pomůže dosáhnout. Pokud jste správce databáze nebo vývojář, můžete pomocí Apache Phoenix začít okamžitě psát dotazy, aniž byste se museli přetahovat s kódem Java.

Chcete-li uložit data v provozní databázi a získat k nim přístup, můžete provést jednu z následujících akcí:

K interakci s daty v HBase použijte nativní rozhraní API klienta Apache HBase:

  • Použijte rozhraní API HBase pro Javu
  • Použijte server HBase REST

Ke svým datům můžete přistupovat také pomocí aplikace Hue HBase. Tato aplikace je konzole, kterou můžete použít pro přístup k datům uloženým v Apache HBase.

Nebo použijte Apache Phoenix s jedním z ovladačů Apache Phoenix pro interakci s daty uloženými v Apache HBase:

  • Použijte ovladač JDBC pro Apache Phoenix
  • Použijte ovladač ODBC pro Apache Phoenix
  • Použijte ovladač Python pro Apache Phoenix

Pojďme se podívat na koncepty v Apache HBase a Apache Phoenix, které potřebujete pro vývoj svých aplikací.

Jmenný prostor

Jmenný prostor je logické seskupení tabulek analogické databázi v relačním databázovém systému.

Tabulky a řádky

Jeden nebo více kvalifikátorů sloupců tvoří řádek; jeden nebo více řádků tvoří tabulku. Každý řádek lze identifikovat klíčem řádku. Při psaní aplikací můžete přistupovat k řádku nebo posloupnosti řádků pomocí jedinečného klíče řádku.

Rodiny sloupců

Rodiny sloupců definované v době vytvoření tabulky na základě toho, jak spolu souvisí. Rodiny sloupců mohou mít kvalifikátory sloupců, do kterých lze uložit hodnoty. Kvalifikátory sloupců se také někdy nazývají pouze sloupce a jsou organizovány do rodin sloupců. Rodiny sloupců jsou umístěny společně v úložišti.

Rodiny sloupců vertikálně rozdělují data. Pokud máte případ použití, kdy chcete získat přístup k sadě kvalifikátorů sloupců, rozdělení rodin sloupců sníží počet souborů úložiště ke čtení a zlepší výkon čtení. Pokud chcete mít přístup ke dvěma nebo více rodinám sloupců současně, musíte se vyhnout dělení.

Komprese a kódování se používají na úrovni skupiny sloupců. Nemusíte deklarovat datové typy pro každou rodinu sloupců a rodina sloupců může obsahovat data více datových typů.

Složení tabulek Apache HBase

Tabulky Apache HBase se skládají z jedné nebo více rodin sloupců a mohou být rozděleny do více oblastí. Data pro každou rodinu sloupců v každé oblasti jsou uložena na několika souborech HFiles, které jsou v HDFS nebo objektovém úložišti, jako je S3 a ADLS.

Každá oblast ukládá řádky v určitém rozsahu klíčového prostoru, tj. mezi klíčem počátečního řádku a klíčem koncového řádku. Klíče řádků jsou jedinečné pro oblast a žádné dvě oblasti se nepřekrývají. Oblast je obsluhována vždy jedním RegionServerem, což zajišťuje konzistenci v řadě.

Chcete-li se dozvědět více o rozdělení a sloučení regionu Apache HBase, podívejte se na blogový příspěvek zde:https://blog.cloudera.com/apache-hbase-region-splitting-and-merging/

Rozvržení dat Apache HBase

Apache HBase vyniká v případech použití Online Transaction Processing (OLTP), protože může existovat více než jedna verze jeho základní úložné jednotky, která se nazývá kvalifikátor sloupců (CQ) na základě časového razítka. Jedinečná hodnota každé verze kvalifikátoru sloupce je uložena samostatně. Rodina sloupců může mít libovolný počet buněk a mohou být zcela náhodné a mít různé datové typy, čísla a názvy v každém řádku. V rodině sloupců můžete uložit libovolný počet buněk, ale všimněte si, že kvalifikátory sloupců v jedné rodině sloupců jsou uloženy odděleně od kvalifikátorů sloupců v jiných rodinách sloupců.

Pokud vás zajímá, jak Apache HBase dělá Multiversion Concurrency Control (MVCC), můžete si přečíst tento blogový příspěvek:https://blogs.apache.org/hbase/entry/apache_hbase_internals_locking_and.

Tabulky Apache Phoenix

Tabulky Apache Phoenix mají vztah 1:1 s tabulkou Apache HBase. Můžete se rozhodnout vytvořit novou tabulku pomocí příkazu Apache Phoenix DDL, jako je CREATE TABLE, nebo vytvořit pohled na existující tabulku Apache HBase pomocí příkazu VIEW.

Vytvořte, zrušte nebo upravte obsah tabulky Apache HBase pomocí příkazů Apache Phoenix DDL. V mnoha případech můžete být schopni změnit tabulku Apache Phoenix přímo pomocí nativních rozhraní API Apache HBase. Toto není podporováno v Cloudera Operational Database a bude mít za následek chyby, nekonzistentní indexy, nesprávné výsledky dotazů a někdy i poškození dat.

Zpracování dat

Příkazy SQL Apache Phoenix můžete použít ke zpracování dat do Cloudera Operational Database (COD). COD je také úzce integrováno s dalšími službami Cloudera Data Platform. Na následujících odkazech se můžete podívat, jak používat některé funkce zpracování dat.

  • Používejte Spark nebo Hive spolu s Apache HBase ke zpracování dat. Můžete použít konektor HBase-Spark. Podívejte se také na seznam způsobů, jak můžete importovat data do HBase Import dat do HBase.
  • Používejte Spark nebo Hive spolu s Apache Phoenix ke zpracování dat. Můžete použít konektory Phoenix-Spark a Phoenix-Hive. Viz Vysvětlení konektoru Apache Phoenix-Spark a Vysvětlení konektoru Apache Phoenix-Hive.
  • Pro zpracování dat použijte Cloudera DataFlow (Apache NiFi). Viz část Zpracování dat do Apache HBase v CDP Public Cloud.
  • Použijte Cloudera Data Engineering (Spark) ke zpracování dat. Viz Cloudera Operational Database – Cloudera Data Engineering using Phoenix.

Příkazy Apache Phoenix DML

Můžete použít příkazy Apache Phoenix DML, jako je UPSERT nebo DELETE. Ujistěte se, že příkazy DML, které chcete použít, jsou podporovány Apache Phoenix. Další informace naleznete v odkazu na gramatiku Apache Phoenix.

Uživatelské rozhraní Hue pro přístup k datům

Hue je webový interaktivní SQL editor, který vám umožňuje pracovat s daty uloženými v Cloudera Operational Database. Další informace o používání Hue se službou Cloudera Operational Database najdete v tématu Cloudera Operational Database Hue přístup.

Spouštění aplikací na Data Hub a COD

Cloudera Operational Database podporuje aplikace napsané v těchto podporovaných jazycích pomocí Apache Phoenix. Můžete také vyvíjet aplikace Apache HBase pomocí nativních rozhraní API HBase pro Javu. Více o vývoji aplikací a některých ukázkových aplikacích, které můžete použít, pokryjeme v několika následujících příspěvcích na blogu.

Cloudera Operational Database (COD) poskytuje snadný přístup k informacím o připojení klienta z uživatelského rozhraní. Další informace naleznete v části Informace o připojení klienta pro kompilaci vaší aplikace podle vašeho COD. Další informace najdete v tématu Použití Apache Phoenix k ukládání a přístupu k datům.

V CDP Private Cloud Base můžete tyto informace najít z uživatelského rozhraní Apache Knox, pokud se chcete připojit k Phoenix Query Server (PQS) přes Apache Knox nebo použít ovladače JDBC a Phoenix klientské JAR přítomné v následujícím umístění v clusteru uzel s rolí phoenix-gateway /opt/cloudera/parcels/CDH/lib/phoenix.

Závěr

V dalších příspěvcích se podíváme na úvahy o vývoji a vytváření aplikací včetně ukázkových aplikací.

Některé existující vzorové aplikace a dokumentaci pro Cloudera Operational Database v Data Hub a Cloudera Operational Database pro řešení dbPaaS si můžete prohlédnout na následujících odkazech:

  • Přehled zkušeností s operační databází Cloudera
  • Rychlý start operační databáze Cloudera
  • Začínáme se šablonou Operational Database Data Hub
  • Vytváření aplikace strojového učení s Cloudera Data Science Workbench a provozní databází

  1. Mongodb:více kolekcí nebo jedna velká kolekce s indexem

  2. Pokud je redis již součástí zásobníku, proč se Memcached stále používá spolu s Redis?

  3. Ukládání null versus neukládání klíče vůbec v MongoDB

  4. Jak mohu vyprázdnit redis db z python redis?