2014-03-04 179 views
0

我試圖通過Simba ODBC驅動程序(v 1.0.2)將我的C#應用​​程序連接到Hbase(v 0.94)。我已經配置了ODBC DSN成功地爲HBase的休息API,但是當我試圖HBase的從代碼連接它拋出異常說:Hbase ODBC連接C#

ERROR [HY000] [Simba][ODBC] (10430) Not enough information provided to establish 
a connection to the data source and specified to not prompt for more information. 

但我給下面的連接字符串屬性:

 OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder(); 
     builder.Driver = "Simba Hbase ODBC Driver"; 
     builder.Dsn = "HbaseTest"; 
     builder.Add("Host", "192.168.122.5"); 
     builder.Add("Port", "8080"); 
     builder.Add("MaxFetchRows", "20000000"); 
     builder.Add("DefaultMaxColumnSize", "255"); 
     builder.Add("Sdrl", "128"); 
     builder.Add("Description", "hbase"); 
     builder.Add("SslMode", "Preferred"); 
     builder.Add("User ID", "user"); 
     builder.Add("Password","pass"); 
     var con = new OdbcConnection(builder.ConnectionString.ToString()); 

我已經嘗試過不提供憑據,但沒有成功。 請引導我在這裏,我在這裏失去了什麼。

回答

0

我不確定這是否仍然是您的問題,但是這表明HBase驅動程序中一個或多個必需的關鍵字未在連接字符串中提供。

如果您已經設置了您的DSN,併成功地進行了測試,那麼你可以用下面的替換代碼:

OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder(); 
    builder.Dsn = "HbaseTest"; 
    var con = new OdbcConnection(builder.ConnectionString.ToString()); 

如果你有一個DSN設置已經,您可以直接使用和使用預配置的設置。如果您尚未設置DSN,請僅使用Driver屬性。請注意,使用Driver屬性將需要您爲ODBC驅動程序提供所有必需的連接設置。

+0

是的,我有一個工作的DSN,但忘記了所有的屬性在代碼中僅由DSN覆蓋。 無論如何,我離開這種方式在C#中使用HBASE連接,而使用C#Thrift API來提高查詢性能,因爲SIMBA固有地使用REST。 – tom