10:04フォローする近頃寒いですね。こんな寒い日はお鍋で一杯。お外は寒くても心はホクホクな大崎です。日本酒でお鍋をつつきながらインターネットを徘徊していたら、こんなblogを見つけました。http://d.hatena.ne.jp/naoya/20130209/1360381374最近はログフォーマットにLTSVというものを使うのかー。DataSpiderでもアダプタ作らないといけないかな。なんて考えながら読んでいましたが、読み進めていくうちに、これはCSVアダプタとMapperを組み合わせて解析できるのではないかと思ったので、実際に解析してみました。Valuesの略で、タブ区切りのテキストフォーマットで各カラムは「:」で区切られたラベルと値で構成されています。カラムの値ががラベル付けされるので、通常のCSV(カンマ区切り)やTSV(タブ区切り)のようにカラムの順序に依存することがありませんので、より柔軟で拡張性が高くなります。スクリプト解説それではスクリプトについて説明したいと思います。スクリプトはこのようにCSVから読み取ってMapperでラベルから値を取得して、出力先のXMLに書き込みます。CSVの読み取りでは、タブで区切ってテーブルデータとしてMapperに渡します。Mapperの中ではそれぞれのカラムからラベルに対応する項目を抽出して出力に渡します。ラベルに対応する項目を取得するために、次のユーザ定義ロジックを定義しています。ユーザ定義ロジックの中ではそれぞれのカラムをラベルと値に分離して、入力から受け取ったラベルの値と比較して連結ロジックで連結します。ラベルにマッチする値を選択するときにswitchロジックを使うこともできますが、このようにラベルにマッチする値だけを取り出して、それ以外は空文字列を連結ロジックに渡すことで必要な値だけを取り出すことができます。以下の様なXMLフォーマットされた出力を得ることができます。;Nav)</userAgent></row></root>最後にこのようにDataSpiderでは柔軟なマッピングの設定を行うことができますので、専用のアダプタがないフォーマットでも対応出来る可能性があります。Mapperをつかいこなせば、いままで諦めていたような処理を実現できるかもしれませんね。LTSVのような汎用的なフォーマットの場合、専用のアダプタがあったほうが扱いやすいのは言うまでもありません。みなさまの反響が大きければ専用のアダプタが実現される可能性が高くなりますので、このブログのコメントやdstnのフォーラムでみなさまのお声をお待ちしております。コミュニティを開くコメントログインしてコメントを残してください。