مثال استعلام HBase: أمر put()، get()، scan() في HBase

كتابة البيانات إلى جدول HBase: Shell

يتم استخدام أمر put لتخزين البيانات في جدول

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

يتم استخدام هذا الأمر للمتابعةwing الأشياء

  • سيتم وضع "قيمة" خلية في جدول أو صف أو عمود محدد أو محدد.
  • فإنه سيتم تنسيق الطابع الزمني اختياريا.

على سبيل المثال:

  • نحن هنا نضع القيم في الجدول "guru99" أسفل الصف r1 والعمود c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • لقد وضعنا ثلاث قيم، 10,15،30 و99 في الجدول "guruXNUMX" كما هو موضح في لقطة الشاشة أدناه

كتابة البيانات إلى جدول HBase: Shell

  • لنفترض أنه إذا كان الجدول "Guru99" يحتوي على بعض المراجع الجدولية مثل g. يمكننا أيضًا تشغيل الأمر على مرجع الجدول أيضًا
    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • سيكون الإخراج كما هو موضح في لقطة الشاشة أعلاه بعد وضع القيم في "guru99".

قراءة البيانات من جدول HBase: Shell

في هذا القسم، سوف نتحقق من المتابعةwing

  • القيم التي تم إدراجها في جدول HBase "guru99"
  • أسماء الأعمدة ذات القيم الموجودة في HBase Table guru99

قراءة البيانات من جدول HBase: Shell

من لقطة الشاشة أعلاه، يمكننا أن نستنتج

  • إذا قمنا بتشغيل أمر "scan" في HBase Shell فسوف يعرض القيم المدرجة في "guru99" على النحو التالي
  • في HBase Shell، سيعرض القيم المُدرجة بواسطة الكود الخاص بنا مع أسماء الأعمدة والصفوف
  • هنا يمكننا أن نرى اسم العمود المدرج هو "التعليم" و"المشاريع"
  • القيم المدرجة هي "BigData"و"برامج HBase التعليمية" في الأعمدة المذكورة

يمكنك أيضًا استخدام أمر Get لقراءة البيانات من جدول

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

هنا تشمل النطاق الزمني والطابع الزمني والإصدارات والمرشحات.

باستخدام هذا الأمر، سوف تحصل على محتويات الصف أو الخلية الموجودة في الجدول. بالإضافة إلى ذلك، يمكنك أيضًا إضافة معلمات إضافية إليها مثل الطابع الزمني والنطاق الزمني والإصدارات والمرشحات وما إلى ذلك للحصول على صف معين أو محتوى خلية معينة.

قراءة البيانات من جدول 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"، سيتم عرض قيم c1 وc1 وc2 للصف r3 وعائلات الأعمدة باستخدام هذا الأمر

كتابة البيانات إلى جدول 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. تحديد أسماء الأعمدة "التعليم" و"المشاريع" وإدراج القيم في أسماء الأعمدة في الصف المعني. القيم المدرجة هنا هي "BigData" و"HBaseTutorials".

قراءة البيانات من جدول HBase: Java API

مهما كانت القيم التي وضعناها في جداول HBase في القسم أعلاه، فهنا سنقوم بجلب تلك القيم وعرضها.

لاسترجاع النتائج المخزنة في "guru99"

قراءة البيانات من جدول HBase: Java API

توضح لقطة الشاشة أعلاه أن البيانات قيد القراءة من جدول HBase "guru99"

  1. في هذا، سنقوم بإحضار القيم المخزنة في عائلات الأعمدة، مثل "التعليم" و"المشاريع".
  2. باستخدام الأمر "get" سنقوم بجلب القيم المخزنة في جدول HBase
  3. نتائج المسح باستخدام أمر "المسح". سيتم عرض القيم المخزنة في الصف 1 على وحدة التحكم.

بمجرد الانتهاء من كتابة التعليمات البرمجية، عليك تشغيله جافا تطبيق مثل هذا

  • انقر بزر الماوس الأيمن على HBaseLoading.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 لإدراج البيانات في جدول. يمكنك استخدام الفحص والحصول على أمر لقراءة البيانات من الجدول