1

Hypertable DB に接続できるコネクタ/ライブラリを探しています。Hypertable を Windows マシンにインストールしましたが、接続方法がわかりません。Visual Studio で ASP.NET 4.5 C# を使用しています。

私はこれを試しました: http://ht4n.softdev.ch/index.php/getting-started-in-5min

しかし、私はそれを使用する方法がわかりません。ht4d.dll を「bin」フォルダーにインポートしましたが、他に何をすべきかわかりません。

ありがとう。

4

3 に答える 3

1

まず、インストールが成功することを確認します。私のシステムのハイパーテーブルインストールフォルダを指すPATHシステム環境変数が次の場所にあることを確認してください。

 C:\Program Files\Hypertable

その後、cmdからコマンド「hypertable」を試して、ハイパーテーブルのウェルカムメッセージを取得する必要があります。

また、ht4nコネクタをダウンロードし、テスト用のコンソールアプリケーションを作成し、ht4n.dllへの参照を作成しました。

これは私が使用したコードであり、正常に接続されました。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Hypertable;

namespace HypertableTest1
{
class Program
{
    static void Main(string[] args)
    {

        //Hyper net.tcp://host[:port]   Native Hypertable client protocol
        //Thrift    net.tcp://host[:port]   Hypertable Thrift API
        //SQLite    file://[drive][/path]/filename  Embedded key-value store, based on SQLite
        //Hamster   file://[drive][/path]/filename  Embedded key-value store, based on hamsterdb

        var connectionString = "Provider=Hyper;Uri=net.tcp://localhost";

        using (var context = Context.Create(connectionString))
        using (var client = context.CreateClient())
        {
            // use the client
            //client.CreateNamespace("CSharp");

            if (!client.NamespaceExists("/CSharp"))
                client.CreateNamespace("/CSharp");

            INamespace csNamespace = client.OpenNamespace("CSharp");    
            csNamespace.CreateTable("MyFirstTable", "");
            IList<Cell> c = csNamespace.Query("");
        }

        Console.ReadLine();
    }
}
}
于 2012-06-06T20:02:07.697 に答える
1

ここで
ht4n のネクロマンシングは面倒です。

まず、GNU General Public License v3 (LGPL ではありません) の下にあり、商用のクローズド ソース ライセンスです。基本的に、それ以上はありません。

その後、C++.NET で記述されます。これは、Thrift よりも高速ですが、Windows へのプラットフォームの依存関係を作成します (mono は C++.NET をサポートしていません)。
また、C++.NET で記述されているため、Windows の x86 (32/64) プロセッサでのみ実行される個別の 32/64 ビット dll バージョンが付属しています。
どちらか一方が必要な場合は、再コンパイルする必要があります...
これらの問題が組み合わさると、愚かで商用ライセンスを侵害するだけでなく、.NET のような VM 言語のアイデアを無効にします。



私の Chrubuntu Chromebook は Linux (ARM プロセッサを使用) を使用しており、C++.NET はそこで動作しないため、Java Thrift-Client を C# に移植しました。

あなたはそれを見つけることができます >ここ<.
ところで、素敵なサンプルプログラムが付属しています。

基本的

ThriftClient client = null;
long ns = -1;

try
{
    client = ThriftClient.create("localhost", 38080);

    if (!client.namespace_exists("test"))
    {
        System.Console.WriteLine("Namespace test does not exist");
        client.create_namespace("test");
    }

    ns = client.namespace_open("test");

    System.Console.WriteLine(client.hql_query(ns, "show tables").ToString());


    client.namespace_close(ns);
} // End Try
catch (System.Exception e)
{
    System.Console.WriteLine (e.Message);
    System.Console.Error.WriteLine (e.StackTrace);

    try
    {
        if (client != null && ns != -1)
            client.namespace_close(ns);
    } 
    catch (System.Exception ex)
    {
        System.Console.WriteLine (ex.Message);
        System.Console.Error.WriteLine("Problem closing namespace \"test\" - " + e.Message);
    }
    System.Environment.Exit(1);
} // End Catch

Thrift-Client は、任意のビット数でどこでも動作します。
そして何よりも、この時点から、最小限の変更ですべての Java Thrift サンプル/チュートリアルを使用できます。

于 2014-08-27T10:30:50.633 に答える