2017-10-30 47 views
1

Talendを使用してさらに処理するために、いくつかのpostgresテーブルの内容をCSVファイルにコピーする必要があります。私は「tpostgresqlRow」コンポーネントでTalendのPostgres "copy"コマンドを使用してテーブルコンテンツをCSVファイルにロード

copy table_name to ‘/tmp/export/table_name.csv’ with CSV; 

を試したとき

、それは私が取得されない、「スーパーユーザのアクセスを必要とする」というエラーを投げました。代替として

、Iは、(最初​​のスラッシュが他をエスケープするために使用される)

\\copy table_name to ‘/tmp/export/table_name.csv’ with CSV;" 

として "\コピー" コマンドを試みました。それでも、 "\ 'で構文エラーが発生しました。

「コピー」コマンドを内部的に使用するtpostgresqlBulkExecコンポーネントも試してみましたが、「スーパーユーザーアクセスが必要です」というエラーが表示されました。

Talendを使ってこのpostgres "copy"コマンドを一括して実行する方法はありますか?

ご協力いただければ幸いです。

答えて

0

私はTalend Support TeamからtPostgresqlRowコンポーネントが 'COPY'コマンドをサポートしないという確認を受けました。私はPSQLクライアントをインストールし、TalendのtSSHコンポーネントを使用して同じものを呼び出して、目的の 'COPY'コマンドを実行することで、私のケースを解決しました。

0

copyコマンドは、postgresテーブルとローカルファイルシステムの両方にアクセスする必要があります。

ローカルフォルダにアクセスできないために問題が発生したと思います。それを並べ替えるか、アクセス権があることを知っている別のフォルダを試す必要があります。同じユーザーと

、あなたがLinuxコマンド

touch /tmp/export/test.csv 

を試す場合は、エラーが表示されることがあります。

\ copyコマンドは、まずpsqlというツールを使用する必要があるため、失敗します。

+0

あなたの答えをありがとう。しかし、私は/tmp/export/test.csvに触れることができます。ファイルシステムは注意が必要です。だから、私はTalendジョブを実行しているときに、クラウドまたはリモートエンジンにpsqlをインストールし、tSystemを使用してコマンドラインから\ copyコマンドを呼び出す必要がありますか? – Bhargavi

関連する問題