HBase
 sql >> Baza danych >  >> NoSQL >> HBase

Koncepcje rozwoju aplikacji operacyjnej bazy danych Cloudera

Operacyjna baza danych Cloudera jest teraz dostępna w trzech różnych formatach w Cloudera Data Platform (CDP).

Jeśli jesteś nowy w operacyjnej bazie danych Cloudera, zobacz ten wpis na blogu. Sprawdź dokumentację tutaj.

W tym poście na blogu przyjrzymy się koncepcjom Apache HBase i Apache Phoenix istotnym dla tworzenia aplikacji dla operacyjnej bazy danych Cloudera.

Ale najpierw są to różne czynniki, w których operacyjna baza danych Cloudera jest dostępna dla programistów:

Chmura publiczna:

  • Szablon operacyjnej bazy danych CDP Data Hub 
  • Operacyjna baza danych Cloudera (COD), która jest zarządzanym rozwiązaniem dbPaaS

Lokalnie:

  • Prywatna baza chmury CDP

Różne formaty umożliwiają tworzenie aplikacji, które mogą działać lokalnie, w chmurze publicznej lub w obu przypadkach.

Operacyjna baza danych Cloudera jest obsługiwana przez Apache HBase i Apache Phoenix. W Cloudera Operational Database używasz Apache HBase jako datastore z HDFS i/lub S3 zapewniającymi infrastrukturę pamięci masowej. Możesz tworzyć aplikacje przy użyciu jednej z natywnych aplikacji Apache HBase lub użyć Apache Phoenix do dostępu do danych. Apache Phoenix to warstwa SQL, która zapewnia programistyczny interfejs ANSI SQL. Działa na bazie Apache HBase i umożliwia obsługę danych za pomocą standardowych zapytań SQL. (Instrukcje DML nie są standardowym językiem SQL).

Wielu programistów woli używać Structured Query Language (SQL) w celu uzyskania dostępu do danych przechowywanych w bazie danych, a Apache Phoenix w Cloudera Operational Database pomaga to osiągnąć. Jeśli jesteś administratorem bazy danych lub programistą, możesz od razu zacząć pisać zapytania za pomocą Apache Phoenix bez konieczności przerabiania kodu Java.

Aby przechowywać i uzyskiwać dostęp do danych w operacyjnej bazie danych, możesz wykonać jedną z następujących czynności:

Użyj natywnych interfejsów API klienta Apache HBase do interakcji z danymi w HBase:

  • Użyj interfejsów API HBase dla Javy
  • Użyj serwera HBase REST

Możesz również uzyskać dostęp do swoich danych za pomocą aplikacji Hue HBase. Ta aplikacja to konsola, za pomocą której możesz uzyskać dostęp do danych przechowywanych w Apache HBase.

Lub użyj Apache Phoenix z jednym ze sterowników Apache Phoenix do interakcji z danymi przechowywanymi w Apache HBase:

  • Użyj sterownika JDBC dla Apache Phoenix
  • Użyj sterownika ODBC dla Apache Phoenix
  • Użyj sterownika Pythona dla Apache Phoenix

Przyjrzyjmy się koncepcjom w Apache HBase i Apache Phoenix, których potrzebujesz do tworzenia aplikacji.

Przestrzeń nazw

Przestrzeń nazw to logiczne grupowanie tabel analogiczne do bazy danych w systemie relacyjnej bazy danych.

Tabele i wiersze

Jeden lub więcej kwalifikatorów kolumny tworzy wiersz; jeden lub więcej wierszy tworzy tabelę. Każdy wiersz można zidentyfikować za pomocą klucza wiersza. Podczas pisania aplikacji możesz uzyskać dostęp do wiersza lub sekwencji wierszy za pomocą unikalnego klucza wiersza.

Rodziny kolumn

Rodziny kolumn zdefiniowane podczas tworzenia tabeli na podstawie tego, jak są ze sobą powiązane. Rodziny kolumn mogą mieć kwalifikatory kolumn, w których można przechowywać wartości. Kwalifikatory kolumn są czasami nazywane po prostu kolumnami i są zorganizowane w rodziny kolumn. Rodziny kolumn znajdują się razem w magazynie.

Rodziny kolumn dzielą dane pionowo. Jeśli masz przypadek użycia, w którym chcesz uzyskać dostęp do zestawu kwalifikatorów kolumn, partycjonowanie rodzin kolumn zmniejszy liczbę plików magazynu do odczytu i poprawi wydajność odczytu. Musisz unikać partycjonowania, jeśli chcesz uzyskać dostęp do dwóch lub więcej rodzin kolumn w tym samym czasie.

Kompresja i kodowanie są stosowane na poziomie rodziny kolumn. Nie trzeba deklarować typów danych dla każdej rodziny kolumn, a rodzina kolumn może zawierać dane wielu typów danych.

Skład tabel Apache HBase

Tabele Apache HBase składają się z co najmniej jednej rodziny kolumn i mogą być podzielone na wiele regionów. Dane dla każdej rodziny kolumn w każdym regionie są zapisywane w kilku plikach HFile, które znajdują się w HDFS lub obiektowej pamięci masowej, takiej jak S3 i ADLS.

Każdy region przechowuje wiersze w określonym zakresie przestrzeni kluczy, czyli między początkowym kluczem wiersza a końcowym kluczem wiersza. Klucze wierszy są unikatowe dla regionu i żadne dwa regiony się nie nakładają. Region jest obsługiwany przez jeden RegionServer na raz, zapewniając spójność w rzędzie.

Aby dowiedzieć się więcej o dzieleniu i łączeniu regionów Apache HBase, zapoznaj się z wpisem na blogu tutaj:https://blog.cloudera.com/apache-hbase-region-splitting-and-merging/

Układ danych Apache HBase

Apache HBase wyróżnia się w przypadkach użycia Online Transaction Processing (OLTP), ponieważ może istnieć więcej niż jedna wersja jego podstawowej jednostki pamięci, która jest nazywana kwalifikatorem kolumny (CQ) na podstawie sygnatury czasowej. Unikalna wartość każdej wersji kwalifikatora kolumny jest przechowywana oddzielnie. Rodzina kolumn może mieć dowolną liczbę komórek i mogą być całkowicie losowe oraz zawierać różne typy danych, liczby i nazwy w każdym wierszu. W rodzinie kolumn można przechowywać dowolną liczbę komórek, ale należy pamiętać, że kwalifikatory kolumn w jednej rodzinie kolumn są przechowywane oddzielnie od kwalifikatorów kolumn w innych rodzinach kolumn.

Jeśli jesteś zainteresowany tym, jak Apache HBase wykonuje Multiversion Concurrency Control (MVCC), możesz przeczytać ten wpis na blogu:https://blogs.apache.org/hbase/entry/apache_hbase_internals_locking_and.

Stoły Apache Phoenix

Tabele Apache Phoenix mają relację 1:1 z tabelą Apache HBase. Możesz utworzyć nową tabelę za pomocą instrukcji Apache Phoenix DDL, takiej jak CREATE TABLE, lub utworzyć widok istniejącej tabeli Apache HBase za pomocą instrukcji VIEW.

Twórz, usuwaj lub modyfikuj zawartość tabeli Apache HBase za pomocą instrukcji Apache Phoenix DDL. W wielu przypadkach można zmienić tabelę Apache Phoenix bezpośrednio przy użyciu natywnych interfejsów API Apache HBase. Nie jest to obsługiwane w operacyjnej bazie danych Cloudera i spowoduje błędy, niespójne indeksy, nieprawidłowe wyniki zapytań, a czasami uszkodzone dane.

Pozyskiwanie danych

Za pomocą instrukcji Apache Phoenix SQL można pozyskiwać dane do operacyjnej bazy danych Cloudera (COD). COD jest również ściśle zintegrowany z innymi usługami Cloudera Data Platform. Możesz zobaczyć, jak korzystać z niektórych możliwości pozyskiwania danych, korzystając z poniższych łączy.

  • Użyj Spark lub Hive razem z Apache HBase do pozyskiwania danych. Możesz użyć złącza HBase-Spark. Zobacz także listę sposobów importowania danych do HBase Importowanie danych do HBase.
  • Użyj Spark lub Hive razem z Apache Phoenix do pozyskiwania danych. Możesz użyć złączy Phoenix-Spark i Phoenix-Hive. Zobacz, Omówienie złącza Apache Phoenix-Spark i Omówienie złącza Apache Phoenix-Hive.
  • Użyj Cloudera DataFlow (Apache NiFi) do pozyskiwania danych. Zobacz Pozyskiwanie danych do Apache HBase w chmurze publicznej CDP.
  • Użyj Cloudera Data Engineering (Spark) do pozyskiwania danych. Zobacz operacyjną bazę danych Cloudera – Cloudera Data Engineering przy użyciu oprogramowania Phoenix.

Polecenia Apache Phoenix DML

Możesz używać poleceń Apache Phoenix DML, takich jak UPSERT lub DELETE. Upewnij się, że polecenia DML, których chcesz użyć, są obsługiwane przez Apache Phoenix. Więcej informacji można znaleźć w dokumentacji gramatycznej Apache Phoenix.

Interfejs użytkownika Hue umożliwiający dostęp do danych

Hue to internetowy interaktywny edytor SQL, który umożliwia interakcję z danymi przechowywanymi w operacyjnej bazie danych Cloudera. Aby uzyskać więcej informacji na temat korzystania z Hue z usługą operacyjnej bazy danych Cloudera, zobacz Dostęp do operacyjnej bazy danych Cloudera Hue.

Uruchamianie aplikacji w Data Hub i COD

Operacyjna baza danych Cloudera obsługuje aplikacje napisane w tych obsługiwanych językach przy użyciu Apache Phoenix. Możesz także tworzyć aplikacje Apache HBase przy użyciu natywnych interfejsów API HBase dla języka Java. W kilku następnych wpisach na blogu omówimy więcej o tworzeniu aplikacji i przykładowych aplikacjach, z których możesz korzystać.

Doświadczenie Cloudera Operational Database (COD) zapewnia łatwy dostęp do informacji o łączności klienta z interfejsu użytkownika. Aby uzyskać więcej informacji, zobacz Informacje o łączności klienta w celu kompilowania aplikacji według COD. Aby uzyskać więcej informacji, zobacz Używanie Apache Phoenix do przechowywania i uzyskiwania dostępu do danych.

W CDP Private Cloud Base te informacje można znaleźć w interfejsie użytkownika Apache Knox, jeśli chcesz połączyć się z serwerem Phoenix Query Server (PQS) za pośrednictwem Apache Knox lub użyć sterowników JDBC i plików JAR klienta Phoenix znajdujących się w następującej lokalizacji w klastrze węzeł z rolą phoenix-gateway /opt/cloudera/parcels/CDH/lib/phoenix.

Wniosek

W kolejnych wpisach przyjrzymy się względom deweloperskim i budowaniu aplikacji, w tym przykładowych aplikacji.

Możesz zobaczyć niektóre istniejące przykładowe aplikacje i dokumentację dla operacyjnej bazy danych Cloudera w Data Hub i Cloudera Operational Database doświadczenie dbPaaS pod następującymi linkami:

  • Omówienie obsługi operacyjnej bazy danych Cloudera
  • Operacyjna baza danych Cloudera — szybki start
  • Pierwsze kroki z szablonem Operational Database Data Hub
  • Tworzenie aplikacji do uczenia maszynowego z Cloudera Data Science Workbench i operacyjnej bazy danych

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MapReduce tasowanie i sortowanie w Hadoop

  2. zabij serwery martwych regionów zombie

  3. Wewnątrz architektury Santander do przetwarzania danych w czasie zbliżonym do rzeczywistego

  4. Wszystkiego najlepszego Apache HBase! 10 lat odporności, stabilności i wydajności

  5. Hadoop Combiner Wprowadzenie, działanie i zalety