最近の更新

2009-09-27
2009-07-06
2009-04-11
2009-04-09
2009-03-06

최신 파일 자료

sticker (0.1.5.2)2009-10-25 12:47

サイドバー

Sticker

RDBとCSVデータ連係をもっと手軽に!

はじめに

企業の業務システムにおいて、システム間連携にCSVデータを利用してデータ連係をしていませんか?業務システム開発で、プロジェクトにアサインされるたびにCSVファイルのインポート、エクスポート機能を実装していませんか? StickerはRDBからCSVファイルへ、CSVファイルからRDBへデータを自由に加工し連携をとることに特化したツールです。RDBに付属のインポートエクスポートツールはデータの転送速度は速いのですが、自由度が低かったり各RDB固有の定義ファイル書式を覚えたりと手間がかかります。
Stickerを使えば速度こそ遅いですが、これらの問題が解決されます!

Sticker動作環境

Stickerは以下の環境で動作します。

  • JRE1.5以上のJavaVM
  • データベースベンダーから提供されるJDBCドライバ

Download

Stickerの動作概念

StickerがRDB/CSVとデータ連係を取る場合、以下のような概念で動作しています。

sticker.png
  • StickerはXMLによる定義情報を基に順次データ連係を実行します。
  • RDBとの接続はJDBCにて接続を行います。
  • RDBに対して任意のSQL(DDL/DML問わず)を発行することができます。
  • CSVからデータをインポート、RDBからデータをエクスポートする際のワークエリアとしてHSQLDBによる仮想DBを提供していますのでインポート・エクスポートの際にここにデータを仮置きし、自由にデータを加工することもできます。
  • 外部プロセスの実行(同期・非同期)をサポートしていますのでデータ連係の結果をメールで通知したり、必要なファイルをFTPなどで転送したりすることも可能です。
  • 例外処理機構をサポートしていますので、データ連係の失敗時、後処理を行うこともできます。

何に使えるのか

作者はSticker(と、その前身となるツール)を以下のように使っていました

  • データ移行ツールとしての利用
旧システムのRDBデータを内部DBにエクスポートし、新システム用に加工してインポートすることによりデータ移行を行いました。
  • 複数間システムの連携
CSVファイルとFTP/WebDAVを使ってデータ連係を行っている基幹システム群において、データのインポート、エクスポート、データ加工部分をStickerで置き換えました。 Stickerはcronにより定期的に起動され、動作ログをファイルにリダイレクトし、処理終了後にそのファイルを添付して管理者宛にメールを送信する運用を行いました。
  • 業務アプリケーションにてCSVダウンロード機能のエンジンとして
StickerのCommandRunnerとCommand部分だけを利用し、業務アプリケーションによくあるCSVファイルダウンロード機能のエンジンとして利用しました。

使い方

Stickerは以下のようにコマンドラインから起動します。
  1. java -jar sticker-x.x.x.jar [オプション...] sticker定義ファイル名
詳しくはオプション一覧のページを参照してください。
定義ファイルの書式はマニュアルページを参照してください。
また、 定義ファイルの書き方も参考にすると幸せになれるかもしれません。

起動オプション

ここを参照してください

定義ファイルの書き方

StickerはXMLの定義ファイルを必要とします。

また、オプションとして、StickerのXML定義ファイルを生成するスクリプトを利用することもできます。
Sticker定義ファイル生成スクリプトStickleについては、ここを参照してください。

現在実装済みの機能

対象バージョン:0.1.5

  • CSVファイル→RDBインポート
  • CSV→仮想データベースインポート
  • RDB→CSVファイルエクスポート
  • RDB→仮想データベースインポート
  • 仮想データベース→CSVファイルエクスポート
  • 仮想データベース→RDBインポート
  • 仮想データベース→RDBインポート(クエリによる絞込機能あり)
  • 外部プロセス実行
  • 例外処理機構
  • ロギング処理
  • ログ出力命令
  • 繰り返し処理
  • 条件分岐処理
  • 内部DB(HSQLDB)をインプロセスモードで起動し、内部DBの状態を確認できる機能
  • JDBCドライバをクラスパス以外から読み込んで利用
  • 実行停止処理
  • 定数定義と置換機能
  • ストアドプロシージャ実行機能

ToDo

タスクリスト

FAQ(よくある質問)

FAQを参照してください

ライセンス

その他

みなさんのお役に立てることができるならば、本当に嬉しいです。
もし「使ったよ!」ってdeveloper@murakamin.netまでメールをくれたら励みになります。