byClassmethod検索AWSAlexaモバイルビッグデータサーバーレスTableauAlteryxイベントTalendからPostgreSQLにCSVデータをインポートするTalend『カスタマーストーリー』を支えるツール特集2017年03月21日k.ootaki(39)2この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。はじめにDI部のおおたきです。Talendを使ってPostgreSQLにCSVファイルのインポートをやってみました。Redshiftはよく使うのですがPostgreSQLはあまり触ったことがなく、どうやってCSVをインポートするのかと調べたら、Redshiftと同様にCOPYコマンドでインポートが出来ると知り、RedshiftのベースがPostgreSQLだからまぁ当たり前かと納得してました。9.6.2Talendで作ってみるでは早速実装してみます。TalendでPostgreSQLにCSVインポートするには「tPostgresqlOutputBulkExec」というコンポーネントがあるのでこちらを使ってみました。設定項目としては以下のようになっています。見て分かるようにDBの接続情報とファイル名の設定項目があります。ファイル名は変換処理したファイルを出力するパスを設定します。出力した後にこのファイルをPostgreSQLにインポートします。ジョブ全体としては以下のようになります。ジョブについて簡単に説明します。tFileInputDelimitedコンポーネントでCSVファイルを読み込みます。次にtMapを使ってCSVデータに変換処理をしています。ここでは読み込んだCSVデータに対してID列を追加しています。最後にtPostgresqlOutputBulkExecで変換処理したCSVファイルを出力し、そのファイルをインポートします。自分のPCにインストールされているPostgreSQLに登録してみました。・1000件ほどのデータでしたが一瞬で登録ができました。RDSのPostgreSQLにインポートしてみた先ほどは自分のPCにインストールしてあるPostgreSQLでしたが今度はAWS上に作成したRDS(PostgresSQL)に対して登録してみました。実行したところ、以下のエラーが発生してしまいました。filesuperuser権限がないとダメと書かれているので、権限を付与して再度実行。そこでドキュメントを読んでみると、以下のように書いてあります。COPYコマンドで指定するファイルは、クライアントアプリケーションではなく、サーバが直接読み込み/書き込みを行います。したがって、それらのファイルは、クライアントではなく、データベースサーバマシン上に存在するか、または、データベースサーバマシンからアクセス可能である必要があります。RDSに対して登録できないわけです。RDSに対してCSVインポートはできないのかと思って調べたら、AWSのドキュメントに登録方法が書いてありました。インスタンス上のテーブルにデータをインポートできます。インスタンスには、テーブルがあらかじめ存在している必要があります。ドキュメントを参照してください。psqlコマンドからの実行になるので、Talendから実行すのはちょっと不便です。調べるとJavaでCOPYをするならJDBCにCopyManagerというクラスがあることが判明。(APIドキュメントに記載)なのでこれを使ってTalendからCSVインポートをできるように修正してみます。ルーチンを作成するCopyManagerを呼び出すルーチンPostgresqlUtilを作成します。ルーチン内でコネクションも生成しようかと思ったのですが、コンポーネントで作成したコネクションを渡した方が使い勝手が良さそうなので、引数にコネクションを設定しています。result;}}※ルーチンを作成したら、PostgreSqlのjdbcドライバをダウンロードして外部ライブラリのインポートの設定をしてください。次に、ジョブを修正します。tPostgresqlOutputBulkExecコンポーネントは使えないので削除し、tFileOutputDelimitedでファイル出力するようにします。次にtPostgresqlConnectionコンポーネントでコネクション生成し、tJavaコンポーネントでルーチンにコネクションを渡すようにします。tJava内のコードで先ほど作成したルーチンを呼び出しています。"public.user");System.out.println(result);実行したら問題なく登録ができました!まとめいかがでしたでしょうか。RDS(Postgresとジョブが同一環境にない)の場合はコンポーネントが使えず、少し不便ですが一度ルーチンを作ってしまえば割と簡単にCSVファイルのインポートが出来るのではないでしょうか。できればコンポーネントでその辺も対応してくれと助かりますが。396,386まだプロフィールが設定されていません。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。CAFEの他、NTTデータとセブンイレブンの取り組みや、サインポスト、Zippinなどの各社と流通・小売業との連携を業界マップに作成してみました。濱田孝治70re:Invnetの動画検索でもめちゃくちゃ便利ですが、その他ブログやホワイトペーパーやGitHubも横断検索できるので、是非一度使ってみてください。PolicyのConditionにaws:CalledViaというキーが追加されました。いったキーなのかご説明します。夏目祐樹403こんにちは、CX事業本部の夏目です。MacのタッチバーのタッチIDが非常に便利なのですが、Terminalでsudoを叩かないと行けないときに使えたらなぁと思ったので、情報を共有します。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介256SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健233こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。