sql >> Database teknologi >  >> NoSQL >> HBase

Cloudera Operational Database applikationsudviklingskoncepter

Cloudera Operational Database er nu tilgængelig i tre forskellige formfaktorer i Cloudera Data Platform (CDP).

Hvis du er ny til Cloudera Operational Database, se dette blogindlæg. Og tjek dokumentationen her.

I dette blogindlæg vil vi se på Apache HBase- og Apache Phoenix-koncepter, der er relevante for udvikling af applikationer til Cloudera Operational Database.

Men først, disse er de forskellige formfaktorer, hvor Cloudera Operational Database er tilgængelig for udviklere:

Offentlig sky:

  • CDP Data Hub Operational Database-skabelon 
  • Cloudera Operational Database (COD) erfaring, dvs. er en administreret dbPaaS-løsning

On-premises:

  • CDP Private Cloud Base

De forskellige formfaktorer gør dig i stand til at udvikle applikationer, der kan køre på stedet, i den offentlige sky eller begge dele.

Cloudera Operational Database er drevet af Apache HBase og Apache Phoenix. I Cloudera Operational Database bruger du Apache HBase som et datalager med HDFS og/eller S3, der leverer lagringsinfrastrukturen. Du har valget mellem enten at udvikle applikationer ved hjælp af en af ​​de oprindelige Apache HBase-applikationer, eller du kan bruge Apache Phoenix til dataadgang. Apache Phoenix er et SQL-lag, der giver en programmatisk ANSI SQL-grænseflade. Det fungerer oven på Apache HBase, og det gør det muligt at håndtere data ved hjælp af standard SQL-forespørgsler. (DML-sætningerne er ikke standard SQL).

Mange udviklere foretrækker at bruge Structured Query Language (SQL) til at få adgang til data gemt i databasen, og Apache Phoenix i Cloudera Operational Database hjælper dig med at opnå dette. Hvis du er databaseadministrator eller -udvikler, kan du begynde at skrive forespørgsler med det samme ved hjælp af Apache Phoenix uden at skulle skændes med Java-kode.

For at gemme og få adgang til data i driftsdatabasen kan du gøre et af følgende:

Brug native Apache HBase-klient-API'er til at interagere med data i HBase:

  • Brug HBase API'erne til Java
  • Brug HBase REST-serveren

Du kan også få adgang til dine data ved hjælp af Hue HBase-appen. Denne app er en konsol, som du kan bruge til at få adgang til data gemt i Apache HBase.

Eller brug Apache Phoenix med en af ​​Apache Phoenix-driverne til at interagere med data, der er gemt i Apache HBase:

  • Brug JDBC-driveren til Apache Phoenix
  • Brug ODBC-driveren til Apache Phoenix
  • Brug Python-driveren til Apache Phoenix

Lad os se på koncepter i Apache HBase og Apache Phoenix, som du har brug for til din applikationsudvikling.

Navneområde

Et navneområde er en logisk gruppering af tabeller analogt med en database i et relationsdatabasesystem.

Tabeller og rækker

En eller flere kolonnekvalifikationer udgør en række; en eller flere rækker udgør en tabel. Hver række kan identificeres med en rækketast. Når du skriver applikationer, kan du få adgang til en række eller en række rækker ved hjælp af den unikke rækketast.

Kolonnefamilier

Kolonnefamilier defineret på tidspunktet for tabeloprettelse baseret på, hvordan de er relateret til hinanden. Kolonnefamilier kan have kolonnekvalifikationer, hvor værdierne kan gemmes. Kolonnekvalifikationer kaldes også nogle gange bare kolonner og er organiseret i kolonnefamilier. Søjlefamilier er placeret sammen i lageret.

Kolonnefamilier opdeler data lodret. Hvis du har en use case, hvor du vil have adgang til et sæt kolonnekvalifikationer, vil partitionering af kolonnefamilier reducere antallet af butiksfiler til læsning og forbedre læseydelsen. Du skal undgå partitionering, hvis du vil have adgang til to eller flere kolonnefamilier på samme tid.

Komprimering og kodning anvendes på kolonnefamilieniveau. Du behøver ikke at angive datatyper for hver kolonnefamilie, og en kolonnefamilie kan indeholde data af flere datatyper.

Sammensætning af Apache HBase-tabeller

Apache HBase-tabeller består af en eller flere kolonnefamilier og måske opdelt i flere områder. Dataene for hver kolonnefamilie i hver region gemmes på adskillige hfiler, som er i HDFS eller objektlager såsom S3 og ADLS.

Hvert område gemmer rækkerne inden for et specifikt nøglerumsområde, det vil sige mellem en startrækketast og en afsluttende rækketast. Rækkenøgler er unikke for en region, og to områder overlapper ikke hinanden. En region betjenes af én RegionServer ad gangen, hvilket sikrer ensartethed inden for en række.

For at vide mere om Apache HBase-regionopdeling og -sammenlægning, se blogindlægget her:https://blog.cloudera.com/apache-hbase-region-splitting-and-merging/

Apache HBase-datalayout

Apache HBase udmærker sig i online transaktionsbehandling (OLTP), fordi der kan være mere end én version af dens grundlæggende lagerenhed, der kaldes en kolonnekvalifikation (CQ) baseret på et tidsstempel. Den unikke værdi for hver kolonnekvalifikationsversion gemmes separat. En kolonnefamilie kan have et hvilket som helst antal celler, og de kan være fuldstændig tilfældige og have forskellige datatyper, tal og navne i hver række. Du kan gemme et hvilket som helst antal celler i en kolonnefamilie, men bemærk, at kolonnekvalifikationer i én kolonnefamilie er gemt separat fra kolonnekvalifikationerne i andre kolonnefamilier.

Hvis du er interesseret i, hvordan Apache HBase udfører Multiversion Concurrency Control (MVCC), kan du læse dette blogindlæg:https://blogs.apache.org/hbase/entry/apache_hbase_internals_locking_and.

Apache Phoenix-borde

Apache Phoenix-tabeller har et 1:1 forhold til en Apache HBase-tabel. Du kan vælge at oprette en ny tabel ved hjælp af en Apache Phoenix DDL-sætning som CREATE TABLE, eller oprette en visning på en eksisterende Apache HBase-tabel ved hjælp af VIEW-sætningen.

Opret, slip eller modificer indholdet af en Apache HBase-tabel ved hjælp af Apache Phoenix DDL-sætninger. I mange tilfælde kan du muligvis ændre en Apache Phoenix-tabel direkte ved hjælp af Apache HBase native API'er. Dette understøttes ikke i Cloudera Operational Database og vil resultere i fejl, inkonsistente indekser, forkerte forespørgselsresultater og nogle gange korrupte data.

Dataindtagelse

Du kan bruge Apache Phoenix SQL-sætninger til at indlæse data i Cloudera Operational Database (COD). COD er ​​også tæt integreret med andre Cloudera Data Platform-tjenester. Du kan se, hvordan du bruger nogle af dataindtagelsesfunktionerne i følgende links.

  • Brug Spark eller Hive sammen med Apache HBase til at indlæse data. Du kan bruge HBase-Spark-stikket. Se også en liste over måder, hvorpå du kan importere data til HBase. Importere data til HBase.
  • Brug Spark eller Hive sammen med Apache Phoenix til at indlæse data. Du kan bruge Phoenix-Spark- og Phoenix-Hive-stikkene. Se, Forstå Apache Phoenix-Spark-stik og Forstå Apache Phoenix-Hive-stik.
  • Brug Cloudera DataFlow (Apache NiFi) til at indlæse data. Se Indlæsning af data i Apache HBase i CDP Public Cloud.
  • Brug Cloudera Data Engineering (Spark) til at indlæse data. Se Cloudera Operational Database – Cloudera Data Engineering ved hjælp af Phoenix.

Apache Phoenix DML-kommandoer

Du kan bruge Apache Phoenix DML-kommandoer såsom UPSERT eller DELETE. Sørg for, at de DML-kommandoer, du vil bruge, understøttes af Apache Phoenix. For mere information se Apache Phoenix grammatikreference.

Hue-brugergrænseflade for at få adgang til data

Hue er en webbaseret interaktiv SQL-editor, der giver dig mulighed for at interagere med data, der er gemt i Cloudera Operational Database. For mere information om brug af Hue med Cloudera Operational Database-tjenesten, se Cloudera Operational Database Hue-adgang.

Kører applikationer på Data Hub og COD

Cloudera Operational Database understøtter applikationer skrevet på disse understøttede sprog ved hjælp af Apache Phoenix. Du kan også udvikle Apache HBase-applikationer ved at bruge de native HBase API'er til Java. Vi vil dække mere om udvikling af applikationer og nogle eksempler på applikationer, du kan bruge i de næste par blogindlæg.

Cloudera Operational Database (COD)-oplevelse giver nem adgang til klientforbindelsesoplysninger fra brugergrænsefladen. For mere information, se Klientforbindelsesoplysninger for kompilering af din applikation mod din COD. For mere information, se Brug af Apache Phoenix til at lagre og få adgang til data.

I CDP Private Cloud Base kan du finde disse oplysninger fra Apache Knox-brugergrænsefladen, hvis du vil oprette forbindelse til Phoenix Query Server (PQS) gennem Apache Knox eller bruge JDBC-drivere og Phoenix-klient-JAR'er, der findes på følgende placering i en klynge node med en phoenix-gateway-rolle /opt/cloudera/parcels/CDH/lib/phoenix.

Konklusion

I de næste indlæg vil vi se på udviklingsovervejelser og byggeapplikationer, herunder prøveapplikationer.

Du kan se nogle eksisterende eksempelapplikationer og dokumentation for Cloudera Operational Database i Data Hub og Cloudera Operational Database erfaring med dbPaaS-løsning i følgende links:

  • Oversigt over Cloud Operational Database-oplevelse
  • Cloudera Operational Database hurtig start
  • Kom godt i gang med skabelonen Operational Database Data Hub
  • Opbygning af en maskinlæringsapplikation med Cloudera Data Science Workbench og operationel database

  1. Hvordan kan jeg hoste min egen Parse Server på Heroku ved hjælp af MongoDB?

  2. Hvordan opretter man Mongoose-skema med en række objekt-id'er?

  3. Hvordan definerer jeg metoder i en Mongoose-model?

  4. Er der en måde at få en bestemt nøgle til at finde på en specifik redis-instans i klyngetilstand?