sql >> Database >  >> NoSQL >> HBase

Cloudera Operational Database applicatie-ontwikkelingsconcepten

Cloudera Operational Database is nu beschikbaar in drie verschillende vormfactoren in Cloudera Data Platform (CDP).

Als u nieuw bent bij Cloudera Operational Database, bekijk dan deze blogpost. En bekijk hier de documentatie.

In deze blogpost kijken we naar Apache HBase- en Apache Phoenix-concepten die relevant zijn voor het ontwikkelen van applicaties voor Cloudera Operational Database.

Maar eerst zijn dit de verschillende vormfactoren waarin Cloudera Operational Database beschikbaar is voor ontwikkelaars:

Openbare cloud:

  • CDP Data Hub Operationele Database-template 
  • Cloudera Operational Database (COD)-ervaring die een beheerde dbPaaS-oplossing is

Op locatie:

  • CDP Private Cloud Base

Dankzij de verschillende vormfactoren kunt u applicaties ontwikkelen die on-premises, in de openbare cloud of beide kunnen worden uitgevoerd.

Cloudera Operational Database wordt mogelijk gemaakt door Apache HBase en Apache Phoenix. In Cloudera Operational Database gebruik je Apache HBase als datastore waarbij HDFS en/of S3 de storage-infrastructuur levert. Je hebt de keuze om applicaties te ontwikkelen met een van de native Apache HBase-applicaties, of je kunt Apache Phoenix gebruiken voor gegevenstoegang. Apache Phoenix is ​​een SQL-laag die een programmatische ANSI SQL-interface biedt. Het werkt bovenop Apache HBase en maakt het mogelijk om gegevens te verwerken met behulp van standaard SQL-query's. (De DML-instructies zijn geen standaard SQL).

Veel ontwikkelaars geven er de voorkeur aan de Structured Query Language (SQL) te gebruiken om toegang te krijgen tot gegevens die zijn opgeslagen in de database en Apache Phoenix in Cloudera Operational Database helpt u dit te bereiken. Als u een databasebeheerder of -ontwikkelaar bent, kunt u meteen beginnen met het schrijven van query's met Apache Phoenix zonder dat u met Java-code hoeft te worstelen.

Om gegevens in de operationele database op te slaan en te openen, kunt u een van de volgende dingen doen:

Gebruik native Apache HBase-client-API's om te communiceren met gegevens in HBase:

  • Gebruik de HBase API's voor Java
  • Gebruik de HBase REST-server

Je hebt ook toegang tot je gegevens via de Hue HBase-app. Deze app is een console die u kunt gebruiken om toegang te krijgen tot gegevens die zijn opgeslagen in Apache HBase.

Of gebruik Apache Phoenix met een van de Apache Phoenix-stuurprogramma's om te communiceren met gegevens die zijn opgeslagen in Apache HBase:

  • Gebruik het JDBC-stuurprogramma voor Apache Phoenix
  • Gebruik het ODBC-stuurprogramma voor Apache Phoenix
  • Gebruik het Python-stuurprogramma voor Apache Phoenix

Laten we eens kijken naar de concepten in Apache HBase en Apache Phoenix die u nodig heeft voor uw applicatie-ontwikkeling.

Naamruimte

Een naamruimte is een logische groepering van tabellen analoog aan een database in een relationeel databasesysteem.

Tabellen en rijen

Een of meer kolomkwalificaties vormen een rij; een of meer rijen vormen een tabel. Elke rij kan worden geïdentificeerd door een rijsleutel. Bij het schrijven van toepassingen hebt u toegang tot een rij of een reeks rijen met behulp van de unieke rijsleutel.

Kolomfamilies

Kolomfamilies gedefinieerd op het moment van het maken van tabellen op basis van hoe ze aan elkaar gerelateerd zijn. Kolomfamilies kunnen kolomkwalificaties hebben waarin de waarden kunnen worden opgeslagen. Kolomkwalificaties worden soms ook gewoon kolommen genoemd en zijn georganiseerd in kolomfamilies. Kolomfamilies staan ​​bij elkaar in de berging.

Kolomfamilies verdelen gegevens verticaal. Als u een gebruikssituatie heeft waarbij u toegang wilt tot een set kolomkwalificaties, zal het partitioneren van kolomfamilies het aantal te lezen winkelbestanden verminderen en de leesprestaties verbeteren. U moet partitionering vermijden als u tegelijkertijd toegang wilt krijgen tot twee of meer kolomfamilies.

Compressie en codering worden toegepast op kolomfamilieniveau. U hoeft gegevenstypen niet voor elke kolomfamilie te declareren en een kolomfamilie kan gegevens van meerdere gegevenstypen bevatten.

Samenstelling van Apache HBase-tabellen

Apache HBase-tabellen bestaan ​​uit een of meer kolomfamilies en zijn mogelijk opgesplitst in meerdere regio's. De gegevens voor elke kolomfamilie in elke regio worden opgeslagen op verschillende HFiles, die zich in HDFS of objectopslag zoals S3 en ADLS bevinden.

Elke regio slaat de rijen op binnen een specifiek sleutelruimtebereik, dat wil zeggen tussen een startrijtoets en een eindrijtoets. Rijsleutels zijn uniek voor een regio en geen twee regio's overlappen elkaar. Een regio wordt bediend door één RegionServer tegelijk, wat zorgt voor consistentie binnen een rij.

Zie de blogpost hier voor meer informatie over het splitsen en samenvoegen van Apache HBase-regio's:https://blog.cloudera.com/apache-hbase-region-splitting-and-merging/

Apache HBase-gegevenslay-out

Apache HBase blinkt uit in gebruiksscenario's voor online transactieverwerking (OLTP), omdat er meer dan één versie van de basisopslageenheid kan zijn die een kolomkwalificatie (CQ) wordt genoemd op basis van een tijdstempel. De unieke waarde van elke kolomkwalificatieversie wordt afzonderlijk opgeslagen. Een kolomfamilie kan een willekeurig aantal cellen hebben en ze kunnen volledig willekeurig zijn en in elke rij verschillende gegevenstypen, getallen en namen hebben. U kunt een willekeurig aantal cellen in een kolomfamilie opslaan, maar houd er rekening mee dat kolomkwalificaties in één kolomfamilie afzonderlijk worden opgeslagen van de kolomkwalificaties in andere kolomfamilies.

Als je geïnteresseerd bent in hoe Apache HBase Multiversion Concurrency Control (MVCC) uitvoert, kun je deze blogpost lezen:https://blogs.apache.org/hbase/entry/apache_hbase_internals_locking_and.

Apache Phoenix-tafels

Apache Phoenix-tabellen hebben een 1:1-relatie met een Apache HBase-tabel. U kunt ervoor kiezen om een ​​nieuwe tabel te maken met behulp van een Apache Phoenix DDL-instructie zoals CREATE TABLE, of u kunt een weergave maken op een bestaande Apache HBase-tabel met behulp van de VIEW-instructie.

Maak, verwijder of wijzig de inhoud van een Apache HBase-tabel met behulp van Apache Phoenix DDL-instructies. In veel gevallen kunt u een Apache Phoenix-tabel rechtstreeks wijzigen met behulp van Apache HBase-native API's. Dit wordt niet ondersteund in Cloudera Operational Database en zal resulteren in fouten, inconsistente indexen, onjuiste queryresultaten en soms corrupte gegevens.

Gegevensopname

U kunt Apache Phoenix SQL-instructies gebruiken om gegevens op te nemen in Cloudera Operational Database (COD). COD is ook nauw geïntegreerd met andere Cloudera Data Platform-services. U kunt in de volgende koppelingen zien hoe u sommige van de mogelijkheden voor gegevensopname kunt gebruiken.

  • Gebruik Spark of Hive samen met Apache HBase om gegevens op te nemen. U kunt de HBase-Spark-connector gebruiken. Bekijk ook een lijst met manieren waarop u gegevens in HBase kunt importeren. Gegevens importeren in HBase.
  • Gebruik Spark of Hive samen met Apache Phoenix om gegevens op te nemen. U kunt de Phoenix-Spark en Phoenix-Hive connectoren gebruiken. Zie Apache Phoenix-Spark-connector begrijpen en Apache Phoenix-Hive-connector begrijpen.
  • Gebruik Cloudera DataFlow (Apache NiFi) om gegevens op te nemen. Zie Gegevens opnemen in Apache HBase in CDP Public Cloud.
  • Gebruik Cloudera Data Engineering (Spark) om gegevens op te nemen. Zie Cloudera Operationele Database - Cloudera Data Engineering met Phoenix.

Apache Phoenix DML-opdrachten

U kunt Apache Phoenix DML-opdrachten gebruiken, zoals UPSERT of DELETE. Zorg ervoor dat de DML-opdrachten die u wilt gebruiken, worden ondersteund door Apache Phoenix. Zie de grammaticareferentie van Apache Phoenix voor meer informatie.

Hue-gebruikersinterface voor toegang tot gegevens

Hue is een webgebaseerde interactieve SQL-editor waarmee u kunt communiceren met gegevens die zijn opgeslagen in Cloudera Operational Database. Zie Cloudera Operational Database Hue-toegang voor meer informatie over het gebruik van Hue met de Cloudera Operational Database-service.

Applicaties draaien op Data Hub en COD

Cloudera Operational Database ondersteunt applicaties die zijn geschreven in deze ondersteunde talen met behulp van Apache Phoenix. U kunt ook Apache HBase-applicaties ontwikkelen met behulp van de native HBase API's voor Java. In de volgende blogposts zullen we meer bespreken over het ontwikkelen van applicaties en enkele voorbeeldapplicaties die je kunt gebruiken.

Cloudera Operational Database (COD)-ervaring biedt gemakkelijke toegang tot informatie over clientconnectiviteit vanuit de gebruikersinterface. Zie Informatie over clientconnectiviteit voor het compileren van uw toepassing op basis van uw COD voor meer informatie. Zie Apache Phoenix gebruiken om gegevens op te slaan en te openen voor meer informatie.

In CDP Private Cloud Base kunt u deze informatie vinden in de gebruikersinterface van Apache Knox als u verbinding wilt maken met de Phoenix Query Server (PQS) via Apache Knox, of als u JDBC-stuurprogramma's en Phoenix-client-JAR's wilt gebruiken die aanwezig zijn op de volgende locatie in een cluster node met een phoenix-gateway-rol /opt/cloudera/parcels/CDH/lib/phoenix.

Conclusie

In de volgende berichten zullen we kijken naar ontwikkelingsoverwegingen en het bouwen van applicaties, inclusief voorbeeldapplicaties.

U kunt enkele bestaande voorbeeldtoepassingen en documentatie voor Cloudera Operational Database in Data Hub en Cloudera Operational Database experience dbPaaS-oplossing bekijken via de volgende links:

  • Cloudera Operational Database-ervaringsoverzicht
  • Snel aan de slag met Cloudera Operationele Database
  • Aan de slag met de sjabloon Operational Database Data Hub
  • Een machine learning-toepassing bouwen met Cloudera Data Science Workbench en operationele database

  1. Array-elementen opvragen met Mongo

  2. Mongoose-indexering in productiecode

  3. Hoe te herstellen van een MongoDB-terugdraaiing?

  4. Mongod-vork starten, ERROR:kindproces mislukt, afgesloten met foutnummer 1