Comment puis-je utiliser une base de données Hbase avec C#/VB.NET? (utiliser = se connecter, interroger, obtenir le résultat, insérer, mettre à jour, supprimer)Utilisation de l'Hbase avec C#
Je ne trouve pas de réponses utiles avec google.
Comment puis-je utiliser une base de données Hbase avec C#/VB.NET? (utiliser = se connecter, interroger, obtenir le résultat, insérer, mettre à jour, supprimer)Utilisation de l'Hbase avec C#
Je ne trouve pas de réponses utiles avec google.
Je viens de publier la liaison HBase C# Thrift en tant que paquet de nuget. Vous pouvez également saisir le code/les binaires de bitbucket: https://bitbucket.org/vadim/hbase-sharp/downloads
De l'description:
Une passerelle de services Web REST-ful que prend en charge XML, Protobuf et binaires options d'encodage de données
Il y a un protobuf port for .NET et il y a beaucoup d'API de manipulation XML intégré.
HBase C# Thrift fonctionne bien. Il suffit de télécharger le dernier fichier thrift-0.9.2.exe, thrift.dll et Hbase.thrift sur votre machine Windows. Vous pouvez générer les fichiers C# requis avec la commande suivante:
thrift-0.9.2.exe -gen csharp Hbase.thrift
Vous obtiendrez les fichiers suivants à la suite:
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
les inclure dans votre projet et ajoutez thrift.dll à vos références de projet . Code court échantillon (tableaux de liste et insérer/mettre à jour une valeur cellulaire):
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();
}
}
}
Le code ci-dessus fonctionne bien avec l'installation Hbase de la dernière Hortonworks Data Platform, en cours d'exécution sur CentOS 7.
Malheureusement, à partir de thrift-0.9.3.exe, je n'obtiens pas les fichiers TAppend, TColumn ou TIncrement et je reçois une exception dans VS concernant l'exception TException de l'espace de nom qui n'a pas été trouvée. – SDillon
J'obtiens aussi les mêmes résultats de la version 0.9.2. – SDillon
Je n'ai pas fait un test complet avec 0.9.3 (mais je le ferai dans quelques jours). Bien que j'ai testé la commande (générant des fichiers cs) avec la dernière 0.9.3 et cela a fonctionné. J'ai tous les fichiers. S'il vous plaît, essayez de télécharger Hbase.thrift à http://svn.apache.org/viewvc/hbase/trunk/hbase-thrift/src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift?revision = 1590152 & view = co – user3330535
Cest grand Vadim! Il semble être très vieux. Où puis-je obtenir la version mise à jour de HBase-Sharp pour supporter la dernière version de HBase? –