HBase
 sql >> Datenbank >  >> NoSQL >> HBase

Anwendungsentwicklungskonzepte für Cloudera Operational Database

Die Cloudera Operational Database ist jetzt in drei verschiedenen Formfaktoren in der Cloudera Data Platform (CDP) verfügbar.

Wenn Sie neu bei Cloudera Operational Database sind, lesen Sie diesen Blogbeitrag. Und sehen Sie sich die Dokumentation hier an.

In diesem Blog-Beitrag betrachten wir die Konzepte von Apache HBase und Apache Phoenix, die für die Entwicklung von Anwendungen für die Cloudera Operational Database relevant sind.

Aber zuerst sind dies die verschiedenen Formfaktoren, in denen die Cloudera Operational Database Entwicklern zur Verfügung steht:

Öffentliche Cloud:

  • CDP Data Hub Operational Database-Vorlage 
  • Cloudera Operational Database (COD)-Erfahrung, die eine verwaltete dbPaaS-Lösung ist

Lokal:

  • CDP Private Cloud Base

Die verschiedenen Formfaktoren ermöglichen es Ihnen, Anwendungen zu entwickeln, die On-Premises, in der Public Cloud oder beides ausgeführt werden können.

Cloudera Operational Database wird von Apache HBase und Apache Phoenix betrieben. In Cloudera Operational Database verwenden Sie Apache HBase als Datenspeicher, wobei HDFS und/oder S3 die Speicherinfrastruktur bereitstellen. Sie haben die Wahl, Anwendungen entweder mit einer der nativen Apache HBase-Anwendungen zu entwickeln oder Apache Phoenix für den Datenzugriff zu verwenden. Apache Phoenix ist eine SQL-Schicht, die eine programmatische ANSI-SQL-Schnittstelle bereitstellt. Es arbeitet auf Apache HBase und ermöglicht es, Daten mit Standard-SQL-Abfragen zu verarbeiten. (Die DML-Anweisungen sind kein Standard-SQL).

Viele Entwickler ziehen es vor, die Structured Query Language (SQL) zu verwenden, um auf Daten zuzugreifen, die in der Datenbank gespeichert sind, und Apache Phoenix in Cloudera Operational Database hilft Ihnen dabei. Wenn Sie ein Datenbankadministrator oder -entwickler sind, können Sie mit Apache Phoenix sofort mit dem Schreiben von Abfragen beginnen, ohne sich um Java-Code kümmern zu müssen.

Um Daten in der Betriebsdatenbank zu speichern und darauf zuzugreifen, haben Sie folgende Möglichkeiten:

Verwenden Sie native Apache HBase-Client-APIs, um mit Daten in HBase zu interagieren:

  • Verwenden Sie die HBase-APIs für Java
  • Verwenden Sie den HBase-REST-Server

Sie können auch über die Hue HBase App auf Ihre Daten zugreifen. Diese App ist eine Konsole, mit der Sie auf Daten zugreifen können, die in Apache HBase gespeichert sind.

Oder verwenden Sie Apache Phoenix mit einem der Apache Phoenix-Treiber, um mit Daten zu interagieren, die in Apache HBase gespeichert sind:

  • Verwenden Sie den JDBC-Treiber für Apache Phoenix
  • Verwenden Sie den ODBC-Treiber für Apache Phoenix
  • Verwenden Sie den Python-Treiber für Apache Phoenix

Sehen wir uns die Konzepte in Apache HBase und Apache Phoenix an, die Sie für Ihre Anwendungsentwicklung benötigen.

Namensraum

Ein Namespace ist eine logische Gruppierung von Tabellen, analog zu einer Datenbank in einem relationalen Datenbanksystem.

Tabellen und Zeilen

Ein oder mehrere Spaltenkennzeichner bilden eine Zeile; Eine oder mehrere Zeilen bilden eine Tabelle. Jede Zeile kann durch einen Zeilenschlüssel identifiziert werden. Beim Schreiben von Anwendungen können Sie mit dem eindeutigen Zeilenschlüssel auf eine Zeile oder eine Folge von Zeilen zugreifen.

Säulenfamilien

Spaltenfamilien, die zum Zeitpunkt der Tabellenerstellung basierend auf ihrer Beziehung zueinander definiert wurden. Spaltenfamilien können Spaltenqualifizierer haben, in denen die Werte gespeichert werden können. Spaltenqualifizierer werden manchmal auch nur Spalten genannt und sind in Spaltenfamilien organisiert. Säulenfamilien befinden sich gemeinsam im Speicher.

Spaltenfamilien partitionieren Daten vertikal. Wenn Sie einen Anwendungsfall haben, in dem Sie auf eine Reihe von Spaltenqualifizierern zugreifen möchten, reduziert die Partitionierung von Spaltenfamilien die Anzahl der zu lesenden Speicherdateien und verbessert die Leseleistung. Sie müssen eine Partitionierung vermeiden, wenn Sie gleichzeitig auf zwei oder mehr Spaltenfamilien zugreifen möchten.

Komprimierung und Codierung werden auf der Ebene der Spaltenfamilie angewendet. Sie müssen nicht für jede Spaltenfamilie Datentypen deklarieren, und eine Spaltenfamilie kann Daten mehrerer Datentypen enthalten.

Zusammensetzung von Apache HBase-Tabellen

Apache HBase-Tabellen bestehen aus einer oder mehreren Spaltenfamilien und sind möglicherweise in mehrere Regionen aufgeteilt. Die Daten für jede Spaltenfamilie in jeder Region werden in mehreren HFiles gespeichert, die sich in HDFS oder Objektspeichern wie S3 und ADLS befinden.

Jede Region speichert die Zeilen innerhalb eines bestimmten Schlüsselraumbereichs, d. h. zwischen einem Anfangszeilenschlüssel und einem Endzeilenschlüssel. Zeilenschlüssel sind für eine Region eindeutig und keine zwei Regionen überschneiden sich. Eine Region wird jeweils von einem RegionServer bedient, wodurch die Konsistenz innerhalb einer Zeile sichergestellt wird.

Um mehr über das Aufteilen und Zusammenführen von Apache HBase-Regionen zu erfahren, lesen Sie den Blogbeitrag hier:https://blog.cloudera.com/apache-hbase-region-splitting-and-merging/

Apache HBase-Datenlayout

Apache HBase zeichnet sich in Anwendungsfällen für die Online-Transaktionsverarbeitung (OLTP) aus, da es mehr als eine Version seiner grundlegenden Speichereinheit geben kann, die auf der Grundlage eines Zeitstempels als Spaltenqualifizierer (CQ) bezeichnet wird. Der eindeutige Wert jeder Version des Spaltenqualifizierers wird separat gespeichert. Eine Spaltenfamilie kann eine beliebige Anzahl von Zellen haben und sie können völlig zufällig sein und unterschiedliche Datentypen, Zahlen und Namen in jeder Zeile haben. Sie können eine beliebige Anzahl von Zellen in einer Spaltenfamilie speichern, aber beachten Sie, dass Spaltenbezeichner in einer Spaltenfamilie getrennt von den Spaltenbezeichnern in anderen Spaltenfamilien gespeichert werden.

Wenn Sie daran interessiert sind, wie Apache HBase Multiversion Concurrency Control (MVCC) durchführt, können Sie diesen Blogbeitrag lesen:https://blogs.apache.org/hbase/entry/apache_hbase_internals_locking_and.

Apache Phoenix-Tabellen

Apache Phoenix-Tabellen haben eine 1:1-Beziehung zu einer Apache HBase-Tabelle. Sie können eine neue Tabelle mit einer Apache Phoenix DDL-Anweisung wie CREATE TABLE erstellen oder mit der VIEW-Anweisung eine Ansicht für eine vorhandene Apache HBase-Tabelle erstellen.

Erstellen, löschen oder ändern Sie den Inhalt einer Apache HBase-Tabelle mit Apache Phoenix DDL-Anweisungen. In vielen Fällen können Sie eine Apache Phoenix-Tabelle direkt mit den nativen APIs von Apache HBase ändern. Dies wird in Cloudera Operational Database nicht unterstützt und führt zu Fehlern, inkonsistenten Indizes, falschen Abfrageergebnissen und manchmal beschädigten Daten.

Datenaufnahme

Sie können Apache Phoenix SQL-Anweisungen verwenden, um Daten in die Cloudera Operational Database (COD) aufzunehmen. COD ist auch eng mit anderen Cloudera Data Platform-Diensten integriert. Unter den folgenden Links können Sie sehen, wie Sie einige der Datenerfassungsfunktionen verwenden.

  • Verwenden Sie Spark oder Hive zusammen mit Apache HBase, um Daten aufzunehmen. Sie können den HBase-Spark-Konnektor verwenden. Sehen Sie sich auch eine Liste mit Möglichkeiten zum Importieren von Daten in HBase an. Importieren von Daten in HBase.
  • Verwenden Sie Spark oder Hive zusammen mit Apache Phoenix, um Daten aufzunehmen. Sie können die Phoenix-Spark- und Phoenix-Hive-Anschlüsse verwenden. Siehe Apache Phoenix-Spark-Connector verstehen und Apache Phoenix-Hive-Connector verstehen.
  • Verwenden Sie Cloudera DataFlow (Apache NiFi), um Daten aufzunehmen. Siehe Daten in Apache HBase in CDP Public Cloud aufnehmen.
  • Verwenden Sie Cloudera Data Engineering (Spark), um Daten aufzunehmen. Siehe Cloudera Operational Database – Cloudera Data Engineering mit Phoenix.

Apache Phoenix DML-Befehle

Sie können Apache Phoenix DML-Befehle wie UPSERT oder DELETE verwenden. Stellen Sie sicher, dass die DML-Befehle, die Sie verwenden möchten, von Apache Phoenix unterstützt werden. Weitere Informationen finden Sie in der Apache Phoenix-Grammatikreferenz.

Hue-Benutzeroberfläche für den Zugriff auf Daten

Hue ist ein webbasierter interaktiver SQL-Editor, mit dem Sie mit Daten interagieren können, die in der Cloudera Operational Database gespeichert sind. Weitere Informationen zur Verwendung von Hue mit dem Cloudera Operational Database-Dienst finden Sie unter Cloudera Operational Database Hue-Zugriff.

Ausführen von Anwendungen auf Data Hub und COD

Cloudera Operational Database unterstützt Anwendungen, die in diesen unterstützten Sprachen mit Apache Phoenix geschrieben wurden. Sie können auch Apache HBase-Anwendungen mit den nativen HBase-APIs für Java entwickeln. In den nächsten Blogbeiträgen werden wir mehr über die Entwicklung von Anwendungen und einige Beispielanwendungen behandeln, die Sie verwenden können.

Die Cloudera Operational Database (COD)-Erfahrung bietet einfachen Zugriff auf Client-Konnektivitätsinformationen über die Benutzeroberfläche. Weitere Informationen finden Sie unter Informationen zur Clientkonnektivität zum Kompilieren Ihrer Anwendung für Ihre COD. Weitere Informationen finden Sie unter Verwenden von Apache Phoenix zum Speichern und Zugreifen auf Daten.

In CDP Private Cloud Base finden Sie diese Informationen auf der Benutzeroberfläche von Apache Knox, wenn Sie über Apache Knox eine Verbindung zum Phoenix Query Server (PQS) herstellen oder JDBC-Treiber und Phoenix-Client-JARs verwenden möchten, die an der folgenden Stelle in einem Cluster vorhanden sind Knoten mit einer Phoenix-Gateway-Rolle /opt/cloudera/parcels/CDH/lib/phoenix.

Schlussfolgerung

In den nächsten Beiträgen gehen wir auf Entwicklungsüberlegungen und Bauanwendungen inklusive Anwendungsbeispiele ein.

Unter den folgenden Links finden Sie einige vorhandene Beispielanwendungen und Dokumentationen für Cloudera Operational Database in Data Hub und Cloudera Operational Database Experience dbPaaS-Lösung:

  • Cloudera Operational Database Erfahrungsübersicht
  • Cloudera Operational Database Schnellstart
  • Erste Schritte mit der Operational Database Data Hub-Vorlage
  • Erstellen einer Anwendung für maschinelles Lernen mit Cloudera Data Science Workbench und Betriebsdatenbank