Вставити & Отримати дані у HBase: Приклади get (), put (), scan ()

Зміст:

Anonim

У цьому підручнику ви дізнаєтесь:

  • Запис даних у таблицю HBase: оболонка
  • Зчитування даних з таблиці HBase: Shell
  • Запис даних у таблицю HBase: API JAVA
  • Зчитування даних із таблиці HBase: API JAVA

Запис даних у таблицю HBase: оболонка

Команда put використовується для зберігання даних у таблиці

Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>

Ця команда використовується для наступних речей

  • Він помістить "значення" комірки у визначену або вказану таблицю, рядок чи стовпець.
  • Він додатково координуватиме позначку часу.

Приклад:

  • Тут ми розміщуємо значення в таблиці "guru99" під рядком r1 і стовпцем c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Ми помістили три значення, 10,15 та 30 у таблиці "guru99", як показано на скріншоті нижче

  • Припустимо, якщо таблиця "Guru99" має посилання на таблицю, наприклад, скажімо g. Ми також можемо запустити команду на посилання на таблицю

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Результат буде таким, як показано на наведеному вище знімку екрана після розміщення значень у "guru99".

Зчитування даних з таблиці HBase: Shell

У цьому розділі ми перевіримо наступне

  • Значення, які вставляються в таблицю HBase "guru99"
  • Назви стовпців зі значеннями, наявними у таблиці HBase Table guru99

З наведеного вище скріншоту ми можемо зробити висновок

  • Якщо ми запустимо команду "сканувати" в оболонці HBase, вона відобразить вставлені значення в "guru99" наступним чином
  • У оболонці HBase він відображатиме значення, вставлені нашим кодом, з іменами стовпців та рядків
  • Тут ми бачимо, що введені назви стовпців - це "освіта" та "проекти"
  • До вказаних стовпців додаються значення "BigData" та "Підручники HBase"

Ви також можете використовувати команду Отримати для зчитування даних із таблиці

Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}

Тут <Додаткові параметри> включають TIMERANGE, TIMESTAMP, VERSIONS та FILTERS.

За допомогою цієї команди ви отримаєте вміст рядка або комірки, присутній у таблиці. На додаток до цього ви також можете додати до нього додаткові параметри, такі як TIMESTAMP, TIMERANGE, VERSIONS, FILTERS тощо, щоб отримати певний вміст рядка або комірки.

Приклади: -

hbase> get 'guru99', 'r1', {COLUMN => 'c1'}

Для таблиці "guru99 'значення рядка r1 і стовпця c1 відображатимуться за допомогою цієї команди, як показано на скріншоті вище

hbase> get 'guru99', 'r1'

Для таблиці "guru99" значення r1 відображатимуться за допомогою цієї команди

hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}

Для таблиці "guru99" значення рядка 1 у часовому діапазоні ts1 і ts2 відображатимуться за допомогою цієї команди

hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}

Для таблиці "guru99" за допомогою цієї команди відображатимуться значення c1, c2, c3 сімейств рядків r1 та стовпців

Запис даних у таблицю HBase: API JAVA

На цьому кроці ми збираємося записати дані в таблицю HBase "guru99"

По-перше, нам потрібно написати код для вставки та отримання значень з HBase за допомогою програми HBaseLoading.java.

Для створення та вставки значень у таблицю на рівні стовпця вам потрібно кодувати, як показано нижче .

З екрану, знятого вище

  1. Коли ми створюємо конфігурацію HBase, вона вказуватиме на будь-які конфігурації, які ми встановили у файлах base-site.xml та hbase-default.xml під час встановлення HBase
  2. Створення таблиці "guru99" за допомогою методу HTable
  3. Додавання рядка1 до таблиці "guru99"
  4. Визначення назв стовпців "освіта" та "проекти" та вставка значень до назв стовпців у відповідному рядку1. Тут введені значення "BigData" та "HBaseTutorials".

Зчитування даних з таблиці HBase: Java API

Незалежно від значень, які ми розмістили у таблицях HBase у наведеному вище розділі, тут ми збираємось отримати та відобразити ці значення.

Для отримання результатів, що зберігаються в "guru99"

На скріншоті вище показано, що дані зчитуються з таблиці HBase 'guru99'

  1. У цьому ми збираємось отримати значення, які зберігаються у сімействах стовпців, тобто "освіта" та "проекти"
  2. За допомогою команди "get" ми збираємось отримати збережені значення в таблиці HBase
  3. Сканування результатів за допомогою команди "сканувати". Значення, які зберігаються в рядку1, він відображатиме на консолі.

Після того, як написання коду буде виконано, вам доведеться запустити додаток Java, як це

  • Клацніть правою кнопкою миші на HBaseLoading.java -> Запустити як -> Додаток Java
  • Після запуску "HBaseLoading .java" значення, які збираються вставити в "guru99" у кожному стовпці в HBase, і в тій же програмі він також може отримувати значення.

Ось повний код

import java.io.IOException;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.client.Get;import org.apache.hadoop.hbase.client.HTable;import org.apache.hadoop.hbase.client.Put;import org.apache.hadoop.hbase.client.Result;import org.apache.hadoop.hbase.client.ResultScanner;import org.apache.hadoop.hbase.client.Scan;import org.apache.hadoop.hbase.util.Bytes;public class HBaseLoading{public static void main(String[] args) throws IOException{/* When you create a HBaseConfiguration, it reads in whatever you've set into your hbase-site.xml and in hbase-default.xml, as long as these can be found on the CLASSPATH*/org.apache.hadoop.conf.Configuration config = HBaseConfiguration.create();/*This instantiates an HTable object that connects you to the "test" table*/HTable table = new HTable(config, "guru99");/* To add to a row, use Put. A Put constructor takes the name of the row you want to insert into as a byte array.*/Put p = new Put(Bytes.toBytes("row1"));/*To set the value you'd like to update in the row 'row1', specify the column family, column qualifier, and value of the table cell you'd like to update. The column family must already exist in your table schema. The qualifier can be anything.*/p.add(Bytes.toBytes("education"), Bytes.toBytes("col1"),Bytes.toBytes("BigData"));p.add(Bytes.toBytes("projects"),Bytes.toBytes("col2"),Bytes.toBytes("HBaseTutorials"));// Once you've adorned your Put instance with all the updates you want to make, to commit it do the followingtable.put(p);// Now, to retrieve the data we just wrote.Get g = new Get(Bytes.toBytes("row1"));Result r = table.get(g);byte [] value = r.getValue(Bytes.toBytes("education"),Bytes.toBytes("col1"));byte [] value1 = r.getValue(Bytes.toBytes("projects"),Bytes.toBytes("col2"));String valueStr = Bytes.toString(value);String valueStr1 = Bytes.toString(value1);System.out.println("GET: " +"education: "+ valueStr+"projects: "+valueStr1);Scan s = new Scan();s.addColumn(Bytes.toBytes("education"), Bytes.toBytes("col1"));s.addColumn(Bytes.toBytes("projects"), Bytes.toBytes("col2"));ResultScanner scanner = table.getScanner(s);try{for (Result rr = scanner.next(); rr != null; rr = scanner.next()){System.out.println("Found row : " + rr);}} finally{// Make sure you close your scanners when you are done!scanner.close();}}}

Короткий зміст:

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