Пример запроса HBase: команда put(), get(), scan() в HBase

Запись данных в таблицу HBase: Shell

Команда put используется для сохранения данных в таблице.

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

Эта команда используется для следующих вещей

  • Он поместит «значение» ячейки в определенную или указанную таблицу, строку или столбец.
  • Опционально будет координироваться отметка времени.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

  • Здесь мы помещаем значения в таблицу «guru99» в строке r1 и столбце c1.
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Мы поместили три значения: 10,15 и 30 в таблицу «guru99», как показано на скриншоте ниже.

Запись данных в таблицу HBase: Shell

  • Предположим, что таблица «Guru99» имеет некоторую ссылку на таблицу, например, g. Мы также можем запустить команду по ссылке на таблицу, например
    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Результат будет таким, как показано на скриншоте выше, после помещения значений в «guru99».

Чтение данных из таблицы HBase: Shell

В этом разделе мы проверим следующее

  • Значения, вставленные в таблицу HBase «guru99».
  • Имена столбцов со значениями, присутствующими в таблице HBase guru99

Чтение данных из таблицы HBase: Shell

Из приведенного выше скриншота мы можем сделать вывод

  • Если мы запустим команду «scan» в оболочке HBase, она отобразит вставленные значения в «guru99» следующим образом:
  • В оболочке HBase будут отображаться значения, вставленные нашим кодом, с именами столбцов и строк.
  • Здесь мы видим, что вставленные названия столбцов — «образование» и «проекты».
  • Вставленные значения: «BigData» и «HBase Tutorials» в указанные столбцы.

Вы также можете использовать команду Get для чтения данных из таблицы.

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

Здесь включая TIMERANGE, TIMESTAMP, ВЕРСИИ и ФИЛЬТРЫ.

Используя эту команду, вы получите содержимое строки или ячейки, присутствующее в таблице. В дополнение к этому вы также можете добавить к нему дополнительные параметры, такие как TIMESTAMP, TIMERANGE, VERSIONS, FILTERS и т. д., чтобы получить содержимое определенной строки или ячейки.

Чтение данных из таблицы HBase: Shell

Примеры:-

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: JAVA API

Из приведенного выше снимка экрана

  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: Java API

На снимке экрана выше показано, что данные считываются из таблицы HBase «guru99».

  1. При этом мы собираемся получить значения, которые хранятся в семействах столбцов, то есть «образование» и «проекты».
  2. Используя команду «get», мы собираемся получить сохраненные значения в таблице HBase.
  3. Результаты сканирования с помощью команды «сканировать». Значения, хранящиеся в строке 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 для вставки данных в таблицу. Вы можете использовать команду сканирования и получения для чтения данных из таблицы.