Cloudera Operational Database è ora disponibile in tre diversi fattori di forma in Cloudera Data Platform (CDP).
Se non conosci il database operativo di Cloudera, consulta questo post del blog. E, controlla la documentazione qui.
In questo post del blog esamineremo i concetti di Apache HBase e Apache Phoenix rilevanti per lo sviluppo di applicazioni per Cloudera Operational Database.
Ma prima, questi sono i vari fattori di forma in cui Cloudera Operational Database è disponibile per gli sviluppatori:
Cloud pubblico:
- Modello di database operativo di CDP Data Hub
- Esperienza di Cloudera Operational Database (COD) che è una soluzione dbPaaS gestita
On-premise:
- Base cloud privata CDP
I diversi fattori di forma ti consentono di sviluppare applicazioni che possono essere eseguite in locale, sul cloud pubblico o entrambi.
Il database operativo di Cloudera è basato su Apache HBase e Apache Phoenix. In Cloudera Operational Database, utilizzi Apache HBase come datastore con HDFS e/o S3 che fornisce l'infrastruttura di storage. Puoi scegliere se sviluppare applicazioni utilizzando una delle applicazioni HBase Apache native oppure puoi utilizzare Apache Phoenix per l'accesso ai dati. Apache Phoenix è un livello SQL che fornisce un'interfaccia SQL ANSI programmatica. Funziona su Apache HBase e consente di gestire i dati utilizzando query SQL standard. (Le istruzioni DML non sono SQL standard).
Molti sviluppatori preferiscono utilizzare il Structured Query Language (SQL) per accedere ai dati archiviati nel database e Apache Phoenix in Cloudera Operational Database ti aiuta a raggiungere questo obiettivo. Se sei un amministratore di database o uno sviluppatore, puoi iniziare subito a scrivere query utilizzando Apache Phoenix senza dover manipolare il codice Java.
Per archiviare e accedere ai dati nel database operativo, puoi eseguire una delle seguenti operazioni:
Utilizza le API client native di Apache HBase per interagire con i dati in HBase:
- Utilizza le API HBase per Java
- Utilizza il server HBase REST
Puoi anche accedere ai tuoi dati utilizzando l'app Hue HBase. Questa app è una console che puoi utilizzare per accedere ai dati archiviati in Apache HBase.
Oppure, usa Apache Phoenix con uno dei driver Apache Phoenix per interagire con i dati archiviati in Apache HBase:
- Utilizza il driver JDBC per Apache Phoenix
- Utilizza il driver ODBC per Apache Phoenix
- Usa il driver Python per Apache Phoenix
Esaminiamo i concetti in Apache HBase e Apache Phoenix di cui hai bisogno per lo sviluppo della tua applicazione.
Spazio dei nomi
Uno spazio dei nomi è un raggruppamento logico di tabelle analogo a un database in un sistema di database relazionale.
Tabelle e righe
Uno o più qualificatori di colonna costituiscono una riga; una o più righe costituiscono una tabella. Ogni riga può essere identificata da una chiave di riga. Quando si scrivono applicazioni, è possibile accedere a una riga oa una sequenza di righe utilizzando la chiave di riga univoca.
Famiglie di colonne
Famiglie di colonne definite al momento della creazione della tabella in base a come sono correlate tra loro. Le famiglie di colonne possono avere qualificatori di colonna in cui è possibile archiviare i valori. I qualificatori di colonna a volte sono anche chiamati semplicemente colonne e sono organizzati in famiglie di colonne. Le famiglie di colonne si trovano insieme nell'archivio.
Le famiglie di colonne partizionano verticalmente i dati. Se si dispone di un caso d'uso in cui si desidera accedere a un set di qualificatori di colonna, il partizionamento delle famiglie di colonne ridurrà il numero di file di archivio da leggere e migliorerà le prestazioni di lettura. È necessario evitare il partizionamento se si desidera accedere a due o più famiglie di colonne contemporaneamente.
La compressione e la codifica vengono applicate a livello di famiglia di colonne. Non è necessario dichiarare i tipi di dati per ciascuna famiglia di colonne e una famiglia di colonne può contenere dati di più tipi di dati.
Composizione di tabelle Apache HBase
Le tabelle Apache HBase sono costituite da una o più famiglie di colonne e possono essere suddivise in più regioni. I dati per ciascuna famiglia di colonne in ciascuna regione vengono salvati su diversi HFile, che si trovano in HDFS o nell'archiviazione di oggetti come S3 e ADLS.
Ciascuna regione memorizza le righe all'interno di un intervallo di spazio delle chiavi specifico, ovvero tra una chiave di riga iniziale e una chiave di riga finale. Le chiavi di riga sono univoche per una regione e non ci sono due regioni sovrapposte. Una regione è servita da un RegionServer alla volta, garantendo la coerenza all'interno di una riga.
Per saperne di più sulla divisione e l'unione di regioni Apache HBase, vedere il post del blog qui:https://blog.cloudera.com/apache-hbase-region-splitting-and-merging/
Layout dei dati di Apache HBase
Apache HBase eccelle nei casi d'uso OLTP (Online Transaction Processing) perché può esserci più di una versione della sua unità di archiviazione di base chiamata qualificatore di colonna (CQ) in base a un timestamp. Il valore univoco di ciascuna versione del qualificatore di colonna viene archiviato separatamente. Una famiglia di colonne può avere un numero qualsiasi di celle e possono essere completamente casuali e avere tipi di dati, numeri e nomi diversi in ogni riga. È possibile memorizzare un numero qualsiasi di celle in una famiglia di colonne, ma si noti che i qualificatori di colonna in una famiglia di colonne vengono archiviati separatamente dai qualificatori di colonna in altre famiglie di colonne.
Se sei interessato a come Apache HBase esegue Multiversion Concurrency Control (MVCC), puoi leggere questo post sul blog:https://blogs.apache.org/hbase/entry/apache_hbase_internals_locking_and.
Tabelle Apache Phoenix
Le tabelle Apache Phoenix hanno una relazione 1:1 con una tabella Apache HBase. È possibile scegliere di creare una nuova tabella utilizzando un'istruzione DDL Apache Phoenix come CREATE TABLE o creare una vista su una tabella HBase Apache esistente utilizzando l'istruzione VIEW.
Crea, elimina o modifica il contenuto di una tabella HBase di Apache utilizzando le istruzioni DDL di Apache Phoenix. In molti casi, potresti essere in grado di modificare una tabella Apache Phoenix direttamente utilizzando le API native di Apache HBase. Ciò non è supportato in Cloudera Operational Database e risulterà in errori, indici incoerenti, risultati di query errati e talvolta dati corrotti.
Inserimento dati
Puoi utilizzare le istruzioni SQL di Apache Phoenix per importare i dati nel Cloudera Operational Database (COD). COD è inoltre strettamente integrato con altri servizi Cloudera Data Platform. Puoi vedere come utilizzare alcune delle funzionalità di acquisizione dei dati nei collegamenti seguenti.
- Usa Spark o Hive insieme ad Apache HBase per importare i dati. È possibile utilizzare il connettore HBase-Spark. Inoltre, consulta un elenco di modi in cui puoi importare dati in HBase Importare dati in HBase.
- Usa Spark o Hive insieme ad Apache Phoenix per importare i dati. È possibile utilizzare i connettori Phoenix-Spark e Phoenix-Hive. Vedere Informazioni sul connettore Apache Phoenix-Spark e Informazioni sul connettore Apache Phoenix-Hive.
- Utilizza Cloudera DataFlow (Apache NiFi) per importare i dati. Vedere Inserimento di dati in Apache HBase in CDP Public Cloud.
- Utilizza Cloudera Data Engineering (Spark) per importare i dati. Consulta Cloudera Operational Database – Cloudera Data Engineering utilizzando Phoenix.
Comandi DML di Apache Phoenix
È possibile utilizzare i comandi DML di Apache Phoenix come UPSERT o DELETE. Assicurati che i comandi DML che desideri utilizzare siano supportati da Apache Phoenix. Per ulteriori informazioni, vedere il riferimento grammaticale di Apache Phoenix.
Interfaccia utente Hue per accedere ai dati
Hue è un editor SQL interattivo basato sul Web che consente di interagire con i dati archiviati nel database operativo di Cloudera. Per ulteriori informazioni sull'utilizzo di Hue con il servizio Cloudera Operational Database, consulta Accesso a Cloudera Operational Database Hue.
Applicazioni in esecuzione su Data Hub e COD
Cloudera Operational Database supporta le applicazioni scritte in queste lingue supportate utilizzando Apache Phoenix. Puoi anche sviluppare applicazioni Apache HBase utilizzando le API HBase native per Java. Tratteremo di più sullo sviluppo di applicazioni e alcune applicazioni di esempio che puoi utilizzare nei prossimi post del blog.
L'esperienza di Cloudera Operational Database (COD) fornisce un facile accesso alle informazioni sulla connettività del client dall'interfaccia utente. Per ulteriori informazioni, vedere Informazioni sulla connettività client per la compilazione dell'applicazione rispetto al COD. Per ulteriori informazioni, consulta Utilizzo di Apache Phoenix per archiviare e accedere ai dati.
In CDP Private Cloud Base, puoi trovare queste informazioni dall'interfaccia utente di Apache Knox se desideri connetterti al Phoenix Query Server (PQS) tramite Apache Knox, oppure utilizzare i driver JDBC e i JAR del client Phoenix presenti nella seguente posizione in un cluster nodo con un ruolo phoenix-gateway /opt/cloudera/parcels/CDH/lib/phoenix.
Conclusione
Nei prossimi post, esamineremo le considerazioni sullo sviluppo e la creazione di applicazioni, comprese le applicazioni di esempio.
È possibile visualizzare alcune applicazioni di esempio e la documentazione esistenti per Cloudera Operational Database in Data Hub e Cloudera Operational Database Experience soluzione dbPaaS nei seguenti collegamenti:
- Panoramica dell'esperienza del database operativo Cloudera
- Avvio rapido del database operativo di Cloudera
- Guida introduttiva al modello Hub dati database operativo
- Creazione di un'applicazione di machine learning con Cloudera Data Science Workbench e database operativo