HBase
 sql >> база данни >  >> NoSQL >> HBase

Концепции за разработка на приложения за оперативна база данни на Cloudera

Оперативната база данни на Cloudera вече се предлага в три различни форм-фактора в Cloudera Data Platform (CDP).

Ако сте нов в Cloudera Operational Database, вижте тази публикация в блога. И вижте документацията тук.

В тази публикация в блога ще разгледаме концепциите на Apache HBase и Apache Phoenix, свързани с разработването на приложения за оперативна база данни Cloudera.

Но първо, това са различните форм фактори, в които Cloudera Operational Database е достъпна за разработчиците:

Обществен облак:

  • Шаблон за оперативна база данни на CDP Data Hub 
  • Опитът на Cloudera Operational Database (COD) е управлявано dbPaaS решение

На място:

  • CDP Private Cloud Base

Различните форм-фактори ви позволяват да разработвате приложения, които могат да се изпълняват на място, в публичния облак или и двете.

Оперативната база данни Cloudera се захранва от Apache HBase и Apache Phoenix. В Cloudera Operational Database използвате Apache HBase като хранилище за данни с HDFS и/или S3, осигуряващи инфраструктурата за съхранение. Имате избор или да разработите приложения, като използвате едно от родните приложения на Apache HBase, или можете да използвате Apache Phoenix за достъп до данни. Apache Phoenix е SQL слой, който предоставя програмен ANSI SQL интерфейс. Работи върху Apache HBase и прави възможно обработването на данни с помощта на стандартни SQL заявки. (DML изразите не са стандартен SQL).

Много разработчици предпочитат да използват Structured Query Language (SQL) за достъп до данни, съхранявани в базата данни, а Apache Phoenix в Cloudera Operational Database ви помага да постигнете това. Ако сте администратор на база данни или разработчик, можете да започнете да пишете заявки веднага, като използвате Apache Phoenix, без да се налага да спорите с Java код.

За да съхранявате и осъществявате достъп до данни в оперативната база данни, можете да направите едно от следните неща:

Използвайте собствени клиентски API на Apache HBase за взаимодействие с данни в HBase:

  • Използвайте API на HBase за Java
  • Използвайте HBase REST сървъра

Можете също да получите достъп до вашите данни с помощта на приложението Hue HBase. Това приложение е конзола, която можете да използвате за достъп до данни, съхранявани в Apache HBase.

Или използвайте Apache Phoenix с един от драйверите на Apache Phoenix, за да взаимодействате с данни, съхранявани в Apache HBase:

  • Използвайте JDBC драйвера за Apache Phoenix
  • Използвайте ODBC драйвера за Apache Phoenix
  • Използвайте драйвера на Python за Apache Phoenix

Нека разгледаме концепциите в Apache HBase и Apache Phoenix, които са ви необходими за разработката на вашето приложение.

Пространство от имена

Пространството от имена е логическо групиране на таблици, аналогично на база данни в система за релационна база данни.

Таблици и редове

Един или повече квалификатори на колони представляват ред; един или повече редове съставляват таблица. Всеки ред може да бъде идентифициран с ключ за ред. Когато пишете приложения, можете да получите достъп до ред или поредица от редове, като използвате уникалния ключ за ред.

Семейства колони

Семейства колони, дефинирани в момента на създаване на таблицата въз основа на това как са свързани помежду си. Семействата на колони могат да имат квалификатори на колони, където стойностите могат да се съхраняват. Квалификаторите на колони също понякога се наричат ​​просто колони и са организирани в семейства от колони. Семействата на колоните са разположени заедно в хранилището.

Фамилии на колони вертикално разделят данни. Ако имате случай на използване, при който искате да получите достъп до набор от квалификатори на колони, разделянето на семейства колони ще намали броя на файловете в магазина за четене и ще подобри производителността на четене. Трябва да избягвате разделянето, ако искате да получите достъп до две или повече семейства колони по едно и също време.

Компресирането и кодирането се прилагат на ниво семейство колони. Не е нужно да декларирате типове данни за всяко семейство колони и семейство колони може да съдържа данни от множество типове данни.

Състав на Apache HBase таблици

Таблиците на Apache HBase се състоят от едно или повече семейства колони и може би са разделени на множество региони. Данните за всяко семейство колони във всеки регион се записват в няколко HFiles, които са в HDFS или обектно съхранение, като S3 и ADLS.

Всеки регион съхранява редовете в рамките на определен диапазон от ключово пространство, което е между начален ключ на ред и ключ за краен ред. Ключовете на редовете са уникални за даден регион и няма два региона, които се припокриват. Регион се обслужва от един RegionServer в даден момент, осигурявайки последователност в рамките на един ред.

За да научите повече за разделянето и сливането на регион Apache HBase, вижте публикацията в блога тук:https://blog.cloudera.com/apache-hbase-region-splitting-and-merging/

Оформление на данните на Apache HBase

Apache HBase се отличава в случаите на използване на онлайн обработка на транзакции (OLTP), тъй като може да има повече от една версия на основната му единица за съхранение, която се нарича квалификатор на колона (CQ) въз основа на времеви печат. Уникалната стойност на всяка версия на квалификатора на колона се съхранява отделно. Семейство колони може да има произволен брой клетки и те могат да бъдат напълно произволни и да имат различни типове данни, числа и имена във всеки ред. Можете да съхранявате произволен брой клетки в семейство колони, но имайте предвид, че квалификаторите на колони в едно семейство колони се съхраняват отделно от квалификаторите на колони в други семейства колони.

Ако се интересувате от това как Apache HBase извършва контрол на едновременното използване на мултиверсии (MVCC), можете да прочетете тази публикация в блога:https://blogs.apache.org/hbase/entry/apache_hbase_internals_locking_and.

Таблици на Apache Phoenix

Таблиците на Apache Phoenix имат връзка 1:1 с таблица на Apache HBase. Можете да изберете да създадете нова таблица с помощта на DDL оператор на Apache Phoenix като CREATE TABLE или да създадете изглед на съществуваща таблица на Apache HBase с помощта на оператора VIEW.

Създайте, пуснете или модифицирайте съдържанието на Apache HBase таблица с помощта на Apache Phoenix DDL изрази. В много случаи може да сте в състояние да промените таблица на Apache Phoenix директно, като използвате собствени API на Apache HBase. Това не се поддържа в Cloudera Operational Database и ще доведе до грешки, непоследователни индекси, неправилни резултати от заявката и понякога повредени данни.

Поемане на данни

Можете да използвате SQL изрази на Apache Phoenix за поглъщане на данни в оперативна база данни на Cloudera (COD). COD също е тясно интегриран с други услуги на Cloudera Data Platform. Можете да видите как да използвате някои от възможностите за поглъщане на данни в следните връзки.

  • Използвайте Spark или Hive заедно с Apache HBase за поглъщане на данни. Можете да използвате конектора HBase-Spark. Вижте също и списък с начини, по които можете да импортирате данни в HBase Импортиране на данни в HBase.
  • Използвайте Spark или Hive заедно с Apache Phoenix за поглъщане на данни. Можете да използвате конекторите Phoenix-Spark и Phoenix-Hive. Вижте, Разбиране на Apache Phoenix-Spark конектор и Разбиране на Apache Phoenix-Hive конектор.
  • Използвайте Cloudera DataFlow (Apache NiFi), за да приемате данни. Вижте Поглъщане на данни в Apache HBase в CDP Public Cloud.
  • Използвайте Cloudera Data Engineering (Spark), за да приемате данни. Вижте Cloudera Operational Database – Cloudera Data Engineering с помощта на Phoenix.

Команди на Apache Phoenix DML

Можете да използвате DML команди на Apache Phoenix като UPSERT или DELETE. Уверете се, че DML командите, които искате да използвате, се поддържат от Apache Phoenix. За повече информация вижте справочника за граматиката на Apache Phoenix.

Потребителски интерфейс на Hue за достъп до данни

Hue е уеб-базиран интерактивен SQL редактор, който ви позволява да взаимодействате с данни, съхранявани в Cloudera Operational Database. За повече информация относно използването на Hue с услугата Cloudera Operational Database, вижте Cloudera Operational Database Hue достъп.

Изпълнение на приложения на Data Hub и COD

Cloudera Operational Database поддържа приложения, написани на тези поддържани езици, използвайки Apache Phoenix. Можете също да разработите Apache HBase приложения, като използвате собствените API на HBase за Java. Ще разгледаме повече за разработването на приложения и някои примерни приложения, които можете да използвате в следващите няколко публикации в блога.

Опитът на Cloudera Operational Database (COD) осигурява лесен достъп до информация за свързване на клиента от потребителския интерфейс. За повече информация вижте Информация за свързване на клиента за компилиране на вашето приложение спрямо вашия COD. За повече информация вижте Използване на Apache Phoenix за съхранение и достъп до данни.

В CDP Private Cloud Base можете да намерите тази информация от потребителския интерфейс на Apache Knox, ако искате да се свържете с Phoenix Query Server (PQS) чрез Apache Knox или да използвате JDBC драйвери и JAR на Phoenix клиент, присъстващи на следното място в клъстер възел с роля на phoenix-gateway /opt/cloudera/parcels/CDH/lib/phoenix.

Заключение

В следващите публикации ще разгледаме съображенията за разработка и изграждане на приложения, включително примерни приложения.

Можете да видите някои съществуващи примерни приложения и документация за Cloudera Operational Database в Data Hub и Cloudera Operational Database опит dbPaaS решение в следните връзки:

  • Общ преглед на оперативната база данни на Cloudera
  • Бърз старт на оперативната база данни на Cloudera
  • Първи стъпки с шаблон за оперативна база данни за център за данни
  • Изграждане на приложение за машинно обучение с Cloudera Data Science Workbench и оперативна база данни

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да внедрите ML модели в производството

  2. Настройка на събирането на отпадъци на Java за HBase

  3. Честит рожден ден на Apache HBase! 10 години устойчивост, стабилност и производителност

  4. Apache HBase, които трябва и не трябва

  5. Hadoop – уроци за Apache Hadoop за начинаещи