ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

AsakusaFW0.7.3 DataFilter

2015-04-24 01:42:56 | PG(分散処理)

Asakusa Framework0.7.3が出たよーん。→リリースノート

今回のトップは、Direct I/Oの入力フィルター(DataFilter)。
パスを条件にして読み込むファイルを絞り込む、あるいはデータを条件にしてフィルターすることが出来る。
パスフィルターは、例えばファイルのPATHの一部が日付になっているとき、その日付部分を取り出して特定期間内かどうかという判定を行い、そのファイルだけを読み込むといった使い方が出来る。
データフィルターは、削除フラグが立っていないものだけを読み込むといった使い方が出来る。 


次は、0.7.1で導入されたスモールジョブ実行エンジンが正式対応になった。
正式対応に伴い、build.gradleの記述方法が変わった。当面は以前の書き方でも問題ないらしいけど、今後は新しい書き方をしよう。


WindGate JDBCでは、INSERT前のデータ削除のSQLが(エクスポーター毎に)書けるようになった。
今までは(およびデフォルトでは)TRUNCATE TABLE文によりテーブルを全部クリアしてからINSERTされていたが、例えばDELETE文で当日データだけを削除する(過去データは残したままにする)といったことが出来る。
(プロファイルASAKUSA_HOME/windgate/profile/asakusa.propertiesで削除用のSQL文を指定することは今までも出来たが、これは全テーブル共通だった。今回のはエクスポーターに記述するので、テーブル毎に変えることが出来る)


Direct I/O CSVおよびWindGate CSVでは、入力時にヘッダーの検証をスキップするオプションforce_headerが追加になった。
今まではhas_headerでヘッダー有りを指定すると、1行目の各フィールドの値がプロパティー名(あるいはDMDLの属性で指定した名前)と一致している必要があったが、force_headerをTRUEにすると、そういったチェックは行わず、ただ単に1行目がスキップされるだけとなる。


テストドライバーを利用したインテグレーションテスト用のAPIというのは、TestToolTaskというGradleタスクが追加になったということらしい。
まぁ自分にはとりあえず関係なさそう(爆)


多相データフロー向けコア演算子用APIの拡張とは、asメソッドのこと。
と言うだけでは分からないだろうけど^^;、core.emptyextendprojectrestructureでデータモデルクラスを指定するのではなく、In,Source,Outの変数を指定して「それと同じデータモデルである」ということが表せるようになった。
これが嬉しいのは主に多相データフローで使うときだけなので、関係ない人は多いかもしれないが、自分は嬉しいw 


ドキュメント構成の改善はどこの事なのか具体的には分からないけど、ひとつだけ分かり易いのは、右側のメニューの位置が固定になったこと!
縦に長いページで本文を上下にスクロールさせても、メニューが表示され続けるようになったw


それと、開発環境および実行環境でJDK1.6が非推奨になって、JDK1.7を使えということになったようだ(笑)


最後に。
正式にドキュメント化されてはいないが、サンドボックスにDirect I/O APIが追加されている。
これはいわゆる「定数表」の暫定対応版。Operatorのメソッドの中から自由にHDFS上のファイルが読めるというもの。
ただしあくまで暫定版なので、たぶんサンドボックスから正式版に昇格することは無い。
仮に定数表相当のものが正式対応されたら、今回の方式は使えなくなる可能性が高いので要注意。
とは言え、便利な場面では便利(笑)

ただし使い方を誤ると性能劣化を招いたりしそうなので、注意は必要。(例えばOperatorのメソッドが呼ばれる度にHDFSからファイルを読み込むようなコーディングをしたら、遅くなるのは目に見えている)
また、乱用すると、どこでファイルを読み込んでいるのか探すのが大変になるだろう。(今は必ずジョブフローにImporter/Exporterを記述しないといけないので、面倒ではあるけれども、どこでファイルを読み書きしているのかの調査はジョブフローだけ調べれば分かる) 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする