3

2.x形式でフォーマットされた大量のHL7メッセージを処理しています。形式はパイプ区切り形式であり、各形式はおおよそ次のようになります(ダミーデータ)。

MSH|^~\&|EPIC|EPICADT|SMS|SMSADT|199912271408|CHARRIS|ADT^A04|1817457|D|2.5|
PID||0493575^^^2^ID 1|454721||DOE^JOHN^^^^|DOE^JOHN^^^^|19480203|M||B|254 MYSTREET AVE^^MYTOWN^OH^44123^USA||(216)123-4567|||M|NON|400003403~1129086|
NK1||ROE^MARIE^^^^|SPO||(216)123-4567||EC|||||||||||||||||||||||||||
PV1||O|168 ~219~C~PMA^^^^^^^^^||||277^ALLEN MYLASTNAME^BONNIE^^^^|||||||||| ||2688684|||||||||||||||||||||||||199912271408||||||002376853

Hiveなどを使用して、このデータの大規模なクエリ/調査を行いたいと思います。最初に、HParserまたは同様のものを使用して、このデータをより多くのテーブル形式にフラット化する必要がありますか?または、カスタムSerDerまたはInputFormatを介してこれをクエリできるようにHiveを拡張する価値はありますか?

4

2 に答える 2

4

RegExSerdeを介して正規表現を使用してHL7を比較的簡単に処理できるはずです。そうは言っても、objectinspectorや他のHive配管を調べたら、Serdeの作成はそれほど難しくありません(数時間)。カスタムSerdeはフィールド名を自動的に提供することもできますが、それは小さなメリットです。別の解析ステップはやり過ぎです。

于 2012-11-28T00:37:49.793 に答える
1

Hadoop APIを使用してカスタムInputFormatとRecordReaderを作成できます...開始するには、この記事を参照してください:http: //bigdatacircus.com/2012/08/01/wordcount-with-custom-record-reader-of-textinputformat/

于 2013-01-08T16:49:43.197 に答える