مثال استعلام 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 و99 في الجدول "guruXNUMX" كما هو موضح في لقطة الشاشة أدناه
- لنفترض أن الجدول "Guru99" تحتوي على مرجع جدول مثل g. يمكننا أيضًا تشغيل الأمر على مرجع الجدول أيضًا مثل
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
- سيكون الإخراج كما هو موضح في لقطة الشاشة أعلاه بعد وضع القيم في "guru99".
قراءة البيانات من جدول HBase: Shell
في هذا القسم سوف نتحقق مما يلي
- القيم التي تم إدراجها في جدول HBase "guru99"
- أسماء الأعمدة ذات القيم الموجودة في HBase Table guru99
من لقطة الشاشة أعلاه، يمكننا أن نستنتج
- إذا قمنا بتشغيل أمر "scan" في HBase Shell فسوف يعرض القيم المدرجة في "guru99" على النحو التالي
- في HBase Shell، سيعرض القيم المُدرجة بواسطة الكود الخاص بنا مع أسماء الأعمدة والصفوف
- هنا يمكننا أن نرى اسم العمود المدرج هو "التعليم" و"المشاريع"
- القيم المدرجة هي "BigData"و"برامج HBase التعليمية" في الأعمدة المذكورة
يمكنك أيضًا استخدام أمر Get لقراءة البيانات من جدول
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
هنا تشمل النطاق الزمني والطابع الزمني والإصدارات والمرشحات.
باستخدام هذا الأمر، سوف تحصل على محتويات الصف أو الخلية الموجودة في الجدول. بالإضافة إلى ذلك، يمكنك أيضًا إضافة معلمات إضافية إليها مثل الطابع الزمني والنطاق الزمني والإصدارات والمرشحات وما إلى ذلك للحصول على صف معين أو محتوى خلية معينة.
أمثلة:-
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، فإنه سيشير إلى التكوينات التي قمنا بتعيينها في ملفات base-site.xml وhbase-default.xml أثناء المنشآت HBase
- إنشاء الجدول "guru99" باستخدام طريقة HTable
- إضافة الصف 1 إلى الجدول "guru99"
- تحديد أسماء الأعمدة "التعليم" و"المشاريع" وإدراج القيم في أسماء الأعمدة في الصف المعني. القيم المدرجة هنا هي "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 لإدراج البيانات في جدول. يمكنك استخدام الفحص والحصول على أمر لقراءة البيانات من الجدول





