Asakusa FrameworkのWindGateのメモ。
|
|
|
WindGate(風門)は、AsakusaFWで外部(ローカルファイルやRDB)とデータ連携する機能。
WindGateを使うと、JDBC経由でRDBのテーブルを読み書きできる。
ただしシンプルな作りなので、速度は普通。
AsakusaFW 0.2.4では、WindGateがローカルマシン上のCSVファイルに対応した。
Asakusaアプリケーション(WindGate)を起動したマシンのローカルにあるCSVファイルを読み込んでHDFSへ書き込み、処理した結果のファイルを読み込んでローカル上にCSVファイルを作成することが出来る。[2012-01-07]
WindGate | (AsakusaFW) Hadoop |
WindGate | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
ローカル CSVファイル |
→ | 転送・変換 | → | HDFS 中間ファイル |
→ | バッチ処理 | → | HDFS 中間ファイル |
→ | 転送・変換 | → | ローカル CSVファイル |
WindGateが扱うファイルはローカルファイルであり、HDFS上のCSVファイルを読み込んだり、HDFS上にCSVファイルを出力したりするわけではない。
(HDFS上のCSVファイルを読み書きしたい場合はDirect I/Oを使用する)
WindGate自体は転送(と変換)を行うだけだが、DMDLファイル上のデータモデルに@windgate.jdbcや@windgate.csvといった属性を付けることにより、WindGateを使用する為のクラスが自動生成される。
その生成されたクラスをジョブフローのImporter/Exporterとして記述することで、WindGateと連動する。
AsakusaFW 0.6.0より前は、WindGateを使ったAsakusaアプリケーションを作成するにはMavenを使ってWindGateアーキタイプを指定する必要があった。[2014-12-13]
AsakusaFW 0.6.0以降はGradleを使うようになり、アプリケーションプロジェクトのテンプレートファイルが提供されるようになった。[2014-12-13]
テンプレートファイルではデフォルトでWindGateが使えるようになっている。
(テンプレートファイルのダウンロードや新規プロジェクトの作成は、Shafuを使うのが便利)
AsakusaFW 0.9.0でも、WindGateはテンプレートに自動的に含まれる。[2016-12-10]
逆にWindGateを使用しない(依存ライブラリーから除外する)場合は、以下のようにする。
asakusafw { sdk { windgate false } }
参考: Asakusa Gradle Plugin リファレンスの規約プロパティのSDKプロパティ