Je travaille avec un grand volume de messages HL7 formatés au format 2.x. Le format est un format de tube délimité où chaque format ressemble à peu près comme ceci (données fictives):Dois-je aplatir les données HL7 pour les utiliser dans Hadoop/Hive? Ou étendre Hive?
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
Je voudrais faire des requêtes volumineuses/exploration de ces données en utilisant Hive ou quelque chose de similaire. Dois-je d'abord aplatir ces données dans plus d'un format de table en utilisant HParser ou quelque chose de similaire? Ou serait-il utile de prolonger Hive pour pouvoir interroger ceci via un SerDer ou un InputFormat personnalisé?
Merci, Jakob. Regex fonctionnerait, sans aucun doute. J'ai trouvé une librairie d'analyse syntaxique Java HL7, ce qui fait que je finirai par l'emballer dans un SerDe personnalisé pour avoir les noms des champs. – Jelling