ここには関連するスレッドがいくつかありますが、OpenCPU と vRODBC を介して R を使用して Vertica に接続しようとした私の試みの要点は次のとおりです。
- RStudio (サーバー RStudio エディションでも) で正常に動作する RJDBC から始めましたが、OpenCPU/rApache はそれを好みません。OpenCPU 上の rJava
- RODBC の派生物である vRODBC パッケージをインストールし、isql を使用する CMD ラインと、DSN および odbcConnect('myDSNName') を使用する RStudio Server の両方から Vertica に正常にクエリを実行しました
- RStudio Server で動作するコードを使用してアプリをコンパイルすると、OpenCPU (コンソールから取得) で実行しようとすると接続エラーが発生します。
RStudioサーバーから動作します
> vertica = odbcConnect("VerticaDSN")
> data = sqlQuery(vertica, query)
> data
TDIDCount
1 3015
しかし、私が作成したOpencpuアプリからではありません
//From Console Output
[vRODBC] ERROR: state 01000, code 0, message [unixODBC][Driver Manager]Can't open lib '/opt/vertica/lib64/libverticaodbc.so.6.1.3' : file not found
Warning message:
ODBC connection failed
[1] -1
このパスを確認しましたが、明らかに存在します。このエラーはlibverticaodbc.soライブラリにロードできない依存関係が原因であるという別の質問を見つけたので、手順に従って、opencpuユーザーのアクセス許可を持っていなかった可能性のあるライブラリを確認しようとしましたが、役に立ちませんでした. UnixODBC で lib を開けません
$ sudo su - opencpu
$ ldd /opt/vertica/lib64/libverticaodbc.so.6.1.3
linux-vdso.so.1 => (0x00007fff5cd10000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f16a30cc000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f16a2eb1000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f16a2c77000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f16a2a59000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f16a2755000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f16a244e000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f16a2238000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f16a1e73000)
/lib64/ld-linux-x86-64.so.2 (0x00007f16a4854000)
$
私は近づいています...非常に近づいています...私はそれを感じることができます...OpenCPUがODBCドライバーを正しく検出できるように、いくつかの影の環境変数または権限を修正する必要があります。そうすれば、R + webAppの栄光がさらに推進されます私を前に!