سؤال

كيف يمكنني استخدام قاعدة بيانات 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top