Skip to content

Repository files navigation

HBaseNet

NuGet Badge

This is a pure CSharp client for HBase.

Supported Versions

HBase >= 1.0

Example Usage

Create a client

varZkQuorum="zooKeep-host-ip";varadmin=awaitnewAdminClient(ZkQuorum).Build();if(admin==null)return;varclient=awaitnewStandardClient(ZkQuorum).Build();if(client==null)return;

Admin operation

vartable="student";varcols=new[]{newColumnFamily("info"){Compression=Compression.GZ,KeepDeletedCells=KeepDeletedCells.TRUE},newColumnFamily("special"){Compression=Compression.GZ,KeepDeletedCells=KeepDeletedCells.TTL,DataBlockEncoding=DataBlockEncoding.PREFIX}};varcreate=newCreateTableCall(table,cols){SplitKeys=new[]{"0","5"}};varlistTable=newListTableNamesCall();vardisable=newDisableTableCall(table);vardelete=newDeleteTableCall(table);varct=awaitadmin.CreateTable(create);vartables=awaitadmin.ListTableNames(listTable);vardt=awaitadmin.DisableTable(disable);vardel=awaitadmin.DeleteTable(delete);

Generally operation

vartable="student";// putvarrowKey="123";varvalues=newDictionary<string,IDictionary<string,byte[]>>{{"default",newDictionary<string,byte[]>{{"key","value".ToUtf8Bytes()}}}};varrs=awaitclient.Put(newMutateCall(table,rowKey,values));// scanvarsc=newScanCall(table,"1",""){NumberOfRows=100000};usingvarscanner=client.Scan(sc);varscanResults=newList<Result>();while(scanner.CanContinueNext){varper=awaitscanner.Next();if(true!=per?.Any())continue;scanResults.AddRange(per);}// getvargetResult=awaitclient.Get(newGetCall(table,rowKey));// deletevardelResult=awaitclient.Delete(newMutateCall(table,rowKey,null));

Use conversion tools

publicclassStudent{publicstringName{get;set;}publicstringAddress{get;set;}publicintAge{get;set;}publicfloatScore{get;set;}publicbool?IsMarried{get;set;}[HBaseConverter(typeof(DateTimeUnix13Converter))]publicDateTimeCreate{get;set;}[HBaseProperty(family:"special")][HBaseConverter(typeof(DateTimeUnix13Converter))]publicDateTime?Modify{get;set;}[HBaseConverter(typeof(JsonStringConverter))]publicList<string>Courses{get;set;}}varconvertCache=newConvertCache().BuildCache<Student>(EndianBitConverter.BigEndian);varstudent=newStudent{Name="Anna",Age=20,Address="Yuxi, China",Score=99,IsMarried=true,Create=DateTime.Now,Courses=newList<string>{"Mathematics","physics","art"}};//object convert to values varvalues=HBaseConvert.Instance.ConvertToDictionary(student,convertCache);varrs=awaitclient.Put(newMutateCall(Program.Table,rowKey,values));//scan result convert to object of studentusingvarscanner=client.Scan(sc);varscanResults=newList<Student>();while(scanner.CanContinueNext){varper=awaitscanner.Next();if(true!=per?.Any())continue;varstus=HBaseConvert.Instance.ConvertToCustom<Student>(per,convertCache);scanResults.AddRange(stus);}

You can also refer to the "Samples/HBaseNet.Console" project.

About

CSharp client for HBase.

Topics

Resources

Stars

33 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages