سؤال
كيف يمكنني استخدام قاعدة بيانات HBase مع C#/vb.net؟ (استخدم = الاتصال ، الاستعلام ، احصل على النتيجة ، إدراج ، تحديث ، حذف)
لا أجد إجابات مفيدة مع Google.
المحلول
لقد نشرت للتو HBase C# Thrift Binding كحزمة Nuget. بدلاً من ذلك ، يمكنك الحصول على الكود/الثنائيات من Bitbucket: https://bitbucket.org/vadim/hbase-sharp/downloads
نصائح أخرى
من وصف:
بوابة خدمة ويب مريحة تدعم خيارات تشفير XML و Protobuf وترميز البيانات الثنائية
هناك منفذ Protobuf لـ .NET وهناك العديد من واجهات برمجة تطبيقات التلاعب XML مدمجة.
Hbase C# يعمل التوفير بشكل جيد. ما عليك سوى تنزيل أحدث ملف Thrift-0.9.2.exe و thrift.dll و hbase.thrift على جهاز Windows الخاص بك. يمكنك إنشاء ملفات C# المطلوبة مع الأمر التالي:
thrift-0.9.2.exe -gen csharp Hbase.thrift
ستحصل على الملفات التالية نتيجة:
AlreadyExists.cs
BatchMutation.cs
ColumnDescriptor.cs
Hbase.cs
IllegalArgument.cs
IOError.cs
Mutation.cs
TAppend.cs
TCell.cs
TColumn.cs
TIncrement.cs
TRegionInfo.cs
TRowResult.cs
TScan.cs
قم بتضمينها في مشروعك وإضافة Thrift.dll إلى مراجع مشروعك. رمز عينة قصير (قائمة الجداول وإدراج/تحديث قيمة الخلية):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Thrift.Protocol;
using Thrift.Transport;
namespace bdc
{
class Program
{
static void Main(string[] args)
{
// Connection
var socket = new TSocket("hdp1.localdomain", 9090);
var transport =new TBufferedTransport(socket);
var protocol = new TBinaryProtocol(transport);
Hbase.Client hba = new Hbase.Client(protocol);
transport.Open();
// Get table names
Console.WriteLine("<-GET LIST OF TABLES->");
var tableNames = hba.getTableNames();
foreach (var tableName in tableNames)
Console.WriteLine(Encoding.UTF8.GetString(tableName, 0, tableName.Length));
// Insert rows
Console.WriteLine("<-INSERT->");
Mutation _mutation = new Mutation();
_mutation.IsDelete = false;
_mutation.Column = Encoding.UTF8.GetBytes("image:bodyimage");
_mutation.Value = Encoding.UTF8.GetBytes("newnew image 2.jpg");
hba.mutateRow(Encoding.UTF8.GetBytes("blogposts"), Encoding.UTF8.GetBytes("post1"), new List<Mutation> { _mutation }, null);
// Finished
Console.WriteLine("<-FINISHED->");
Console.ReadKey();
}
}
}
يعمل الرمز أعلاه بشكل جيد مع تثبيت HBase لأحدث منصة بيانات HortonWorks ، التي تعمل على CentOS 7.