1

Ruby を使用して (Linux マシンから) Vertica 分析 DB に接続しようとしています。isqlと を使用して接続が可能であることを確認しました(多かれ少なかれこの回答unixodbcに基づいて、 で定義された DSN )。/etc/odbc.ini

$ isql VerticaDSN
+--------------------------------------------+
| Connected!                                 |
|                                            |
| sql-statement                              |
| help [tablename]                           |
| quit                                       |
|                                            |
+--------------------------------------------+

とgemsもインストールverticaしました(ruby 1.9.2を使用)。これらすべてに接続できていません。何か間違ったことをしているのか、依存関係が不足しているのか疑問に思っています。dbiruby-odbc

vertica gem を使用:

>> require 'vertica'
=> true
>> client = Vertica.connect({ :host => '10.0.0.15', :user => 'dbadmin', :password => 'pwd' })
Errno::ECONNREFUSED: Connection refused - connect(2)
    from /home/sa125/.rvm/gems/ruby-1.9.2-p290/gems/vertica-0.8.1/lib/vertica/connection:31:in `initialize'
    from /home/sa125/.rvm/gems/ruby-1.9.2-p290/gems/vertica-0.8.1/lib/vertica/connection:31:in `new'
    from /home/sa125/.rvm/gems/ruby-1.9.2-p290/gems/vertica-0.8.1/lib/vertica/connection:31:in `connection'
    from /home/sa125/.rvm/gems/ruby-1.9.2-p290/gems/vertica-0.8.1/lib/vertica/connection:24:in `initialize'
    from /home/sa125/.rvm/gems/ruby-1.9.2-p290/gems/vertica-0.8.1/lib/vertica.rb:11:in `new'
    from /home/sa125/.rvm/gems/ruby-1.9.2-p290/gems/vertica-0.8.1/lib/vertica.rb:11:in `connect'

DBI / ODBC gem の使用:

(これを使っ)

>> require 'dbi'
=> true
>> require 'odbc'
=> true
>> ODBC.datasources
=> [#<ODBC::DSN:0x0000000284c6f8 @name="VerticaDSN", @descr="\"test database\"">]
>> dbc = ODBC.connect('VerticaDSN')
ArgumentError: string contains null byte
    from (irb):15:in `initialize'
    from (irb):15:in `connect'
    from (irb):15
>> dbh = DBI.connect('DBI:ODBC:VerticaDSN', 'dbadmin', 'pwd')
DBI::InterfaceError: Could not load driver (undefined method `driver_name' for ODBC:Module)
    from /home/sa125/.rvm/gems/ruby-1.9.2-p290/gems/dbi-0.4.5/lib/dbi.rb:318:in `rescue in load_driver'
    from /home/sa125/.rvm/gems/ruby-1.9.2-p290/gems/dbi-0.4.5/lib/dbi.rb:242:in `load_driver'
    from /home/sa125/.rvm/gems/ruby-1.9.2-p290/gems/dbi-0.4.5/lib/dbi.rb:160:in `_get_full_driver'
    from /home/sa125/.rvm/gems/ruby-1.9.2-p290/gems/dbi-0.4.5/lib/dbi.rb:145:in `connect'

ここで何か不足していますか?ありがとう。

4

1 に答える 1

3

vertica gem をバージョンにアップグレードすると--pre、最初のアプローチを使用する際の問題が解決されました。rubygems で入手できる gem のバージョンは (現時点では)0.8.1で、うまく動作していないようです。gem の作成者から得たフィードバックに基づいて、次のように変更Gemfileしました。

gem 'vertica'

これに:

gem 'vertica', '0.9.0.beta9' # current edge
于 2012-02-29T05:32:09.767 に答える