2015-03-01から1ヶ月間の記事一覧
ちょっと間が空いてしまったが、この前の続き。 今回はPOIを使って、正方形を描いてみたい。 テキストボックスを描くのは簡単だが、問題は座標だ。 POIの座標指定 POIでテキストボックスを描くには、まず Sheet#createDrawingPatriarch() により、XSSFDrawin…
最近こればっかりだが…、現在embulk-output-oracleの高速化に励んでいる。 どうやったら大量データをOracleに高速に突っ込めるか?というのをいろいろ試してみた。 SQL*Loader Oracleが提供する、大量データロード用のツール。 その目的に作られているだけあ…
Cのポインタを保持したい 現在embulk-output-oracleを高速化するために、JNI(Java Native Interface)を使ってプログラミングしている。 その時ちょっと悩んだのが、Cのポインタをどうやって保持するか、だ。 フローとしては、 Java C 初期化処理 → 必要なメ…
embulk-output-oracleが一応公開されたが、とりあえず動く、というレベルのもので、まだ完成度は低い。 とは言え、現状の仕様についてまとめてみる。 Oracleのバージョン 12c(Windows)で検証したが、たぶん他のでも動くと思う。 driver_path ymlファイル中の…
Embulkの並列処理 Embulkは、処理を複数のタスクに分割して並列に実行する仕組みを備えている。 しかし、標準のファイル入力プラグインでは、単純に1つのファイルを入力すると1タスクにしかならないようだ(こちら参照)。 ソースを読んでみると、複数ファイ…
EmbulkではJavaやRubyでプラグインを開発することができる。 自分は今のところJavaで開発しているので、それについて書いてみたい。 どうやってプラグインをテストする? EmbulkのプラグインはRubyのgemとして配布される。 そして、embulk gem install ~ で…
Javaでデータベースに関するツールを作るときに便利なのがjava.sql.DatabaseMetaData。 これを使うとテーブルの情報とかカラムの情報などいろいろ取れる。 しかし、面倒なのは、DBMSの型がJDBCのどの型にマッピングされているかだ(JDBCの型はjava.sql.Types…
Embulkを使えば、いろいろなデータを簡単にDBに突っ込めるはず。 でも、パフォーマンスが気になるよね。 という訳で、Embulkのパフォーマンスを測ってみることにした。 環境の準備 自分のマシンでパフォーマンステストをすると他のことができなくなってしま…
JDBCには便利な機能があって、テーブルや列のメタ情報を取得できる(java.sql.DatabaseMetaDataのgetTablesとかgetColumnsとか)。 で、これらのメソッドの引数にはカタログとかスキーマを渡す必要がある。 これって何なの?というのを調べてみたい。 ちなみ…
業務システムでは「Excelファイルをアップロードしてデータを入力したい」「検索結果をExcelファイルでダウンロードしたい」というような要求が日常茶飯事だ。 そんなときに役に立つのが、ApacheのPOI。 POIではセルの値を読み書きするだけでなく、図形を描…