Приклад запиту HBase: команда put(), get(), scan() у HBase
Запис даних у таблицю HBase: оболонка
Команда put використовується для збереження даних у таблиці
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
Ця команда використовується для наступних речей
- Він помістить «значення» комірки у визначену чи задану таблицю, рядок чи стовпець.
- Він додатково координуватиме позначку часу.
приклад:
- Тут ми розміщуємо значення в таблиці «guru99» у рядку r1 і стовпці c1
hbase> put 'guru99', 'r1', 'c1', 'value', 10
- Ми розмістили три значення, 10,15, 30 і 99 у таблиці «guruXNUMX», як показано на знімку екрана нижче
- Припустімо, якщо таблиця “Guru99” має деяке посилання на таблицю, наприклад g. Ми також можемо виконати команду для посилання на таблицю
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
- Після розміщення значень у «guru99» результат буде таким, як показано на знімку екрана вище.
Читання даних із таблиці HBase: Shell
У цьому розділі ми перевіримо наступне
- Значення, які вставляються в таблицю HBase «guru99»
- Назви стовпців із значеннями, присутніми в HBase Table guru99
З наведеного вище знімка екрана ми можемо зробити висновок
- Якщо ми запустимо команду “scan” в оболонці HBase, вона відобразить вставлені значення в “guru99” наступним чином
- В оболонці HBase він відображатиме значення, вставлені нашим кодом, із назвами стовпців і рядків
- Тут ми бачимо назву вставленого стовпця: «освіта» та «проекти».
- Вставлені значення:BigData” і “HBase Tutorials” у згадані стовпці
Ви також можете використовувати команду Get для читання даних із таблиці
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” рядок r1 і значення c1, c2, c3 сімейств стовпців відображатимуться за допомогою цієї команди
Запис даних у таблицю HBase: JAVA API
На цьому кроці ми збираємося записати дані в таблицю HBase «guru99»
По-перше, ми повинні написати код для вставки та отримання значень з HBase за допомогою-Програма HBaseLoading.java.
Щоб створити та вставити значення в таблицю на рівні стовпців, потрібно ввести код, як показано нижче.
З наведеного вище знімка екрана
- Коли ми створюємо конфігурацію HBase, вона вказуватиме на будь-які конфігурації, які ми встановлюємо у файлах base-site.xml і hbase-default.xml під час Встановлення HBase
- Створення таблиці “guru99” методом HTable
- Додавання рядка 1 до таблиці «guru99»
- Зазначення назв стовпців «освіта» та «проекти» та вставка значень у назви стовпців у відповідному рядку1. Тут вставлено значення «BigData» і «HBaseTutorials».
Читання даних із таблиці HBase: Java API
Незалежно від значень, які ми розмістили в таблицях HBase у розділі вище, тут ми збираємося отримати та відобразити ці значення.
Для отримання результатів, збережених у «guru99»
На знімку вище показано, як дані зчитуються з таблиці HBase 'guru99'
- У цьому випадку ми збираємося отримати значення, які зберігаються в сімействах стовпців, наприклад «освіта» та «проекти».
- За допомогою команди «get» ми збираємося отримати збережені значення в таблиці HBase
- Результати сканування за допомогою команди «сканувати». Значення, які зберігаються в рядку 1, відображатимуться на консолі.
Коли написання коду завершено, вам потрібно запустити Ява такий додаток
- Клацніть правою кнопкою миші на 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 following table.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, щоб вставити дані в таблицю. Ви можете використовувати команду сканування, отримати для читання даних із таблиці