云环境下畜禽诊断大数据管理与服务机制

2018-11-17 01:27吴华瑞李庆学
计算机工程与设计 2018年11期
关键词:疾病诊断检索畜禽

孙 想,吴华瑞+,李庆学,郝 鹏

(1.北京农业信息技术研究中心,北京 100097;2.国家农业信息化工程技术研究中心, 北京 100097;3.农业部农业信息技术重点开放实验室, 北京 100097)

0 引 言

大数据存储、处理工具、分析算法等技术研究是当前农业大数据技术研究热点[1-6]。在实际应用中,从云环境下分布存储的数据节点中快速获取需要的数据,满足高性能、大容量的农业领域应用大数据处理与服务的需求,是一个具有挑战性的技术问题。我国畜牧业发展迅速,在日常管理中畜禽疾病诊断产生了大量的病例知识和数据,但这些数据分散在各个规模化养殖场经营者或畜禽专家手中,难以进行有效的组织、共享和分析[7]。共享诊断病例知识和数据能够解决基层农技专家不足,提高畜禽生产疾病诊断效率,降低管理者的经营成本,建立面向畜禽疾病诊断的通用大数据应用服务模式具有重要现实意义。

1 云环境下畜禽大数据管理框架

Hadoop为大数据的处理提供了并行计算的框架,核心技术包括分布式文件系统HDFS(hadoop distributed file system)以及MapReduce并行计算模型。畜禽诊断大数据包括猪、牛、羊、禽类等品种信息,畜禽养殖环境监测、育种繁育、疾病诊断与防控、养殖场管理、质量追溯管理等信息,这些数据可以为文件、图片、数据库、视频、GIS、遥感等格式,具有异构性、差异性和时空性特征,文件大小从KB级到GB、TB级,大数据管理框架需要支撑数据的高效存储、管理以及计算调度[8,9]。

本文在HDFS的基础上,对目前的云存储架构进行适应性改进,对应不同的文件类型采取不同的读取策略,例如牧场遥感影像数据比较大,一般采用一次写入,多次读取的策略,通过改进数据分块传输技术提高存储平台对该类数据管理与服务的效率。牧场监测物联网数据实时性很强,通常需要对海量的图片流、视频流、位置信息等数据进行反复的存取,通过分级存储和负载均衡机制,可增强物联网大数据的存储和访问效率。

农业数据云管理框架(图1)分为4个层次,实现大数据资源的高效存储、组织管理和应用服务。

图1 大数据云管理框架

(1)数据资源存储层是框架的基础。由分布式存储节点组成,节点服务器管理和运行以DataNode为基础的物理存储服务,另外,配备高性能平台节点管理和调度服务器NameNode实现任务调度和控制。DataNode和NameNode之间通过交互通讯协议实现心跳信息的检测和状态维护。

(2)基础管理层是框架的核心,也是影响云存储功能与性能的关键部分,主要作用是在屏蔽分布式文件系统底层实现细节基础上进行参数配置操作,实现资源的描述和拓扑管理。针对数据类型的不同,采取不同的组织方式,例如农业影像数据由于数据较大,一般采用分布式多节点存储方式,农业物联网数据由于实时性很强,一般按照区域分级设置进行存储,实现资源的负载均衡。

(3)应用接口层通过多类型应用服务接口开发,为上层畜禽诊断检索等应用提供数据访问、设备接入等服务,各类接口通过Web Service来实现,例如根据资源大小判断是否需分块存储,大文件的存储通过分块副本管理方法来实现,而小文件(<64M)通过调度算法选择存储的节点后直接进行存储。

(4)访问层通过WEB网页、移动终端、智能手机等形式进行畜禽疾病诊断、畜禽生产技术检索等。

2 云环境下畜禽大数据逻辑访问架构

畜禽大数据资源不仅包括异构分布的生产、经营、流通、技术等各类数据库,还包含不同畜禽专家的诊断知识库、模型库、疾病诊断病例,这些数据专业领域、时空维度、更新频率、文件大小都不同,为了提高资源的访问效率,提出了畜禽大数据访问逻辑架构。

2.1 畜禽数据资源访问逻辑

数据资源访问逻辑(如图2)可形式化为服务三元组:

r= (TDescriptor,XIdentifier,SInterface),其中TDescriptor是数据资源服务的描述,表示资源内容、所属领域分类;XIdentifier用来标识数据资源服务,与元数据进行快速匹配提升检索速度;SInterface用来定义数据资源存储地址和访问端口。

XIdentifier描述从数据存储层的数据文件中抽取的元数据。Schema规定了每种资源都必须有的字段,根据相应分类的Schema描述。按照不同资源规范去描述,这一层存储的是比数据抽象程度更高的信息,系统中使用XML文件进行分类管理,并抽取公共属性存入数据库进行管理。

图2 资源访问逻辑

为了提高响应用户检索能力,定义R={Ri|Ri包含d个元数据描述,1≤i≤m}和用户某个查询Q={Q1,Q2,…,Qn},包含n个描述,通过用户查询Q,可以在R中检索出元数据描述相互匹配的数据记录。

采用Bloom Filter算法实现资源的快速检索索引,每个元数据描述通过Bloom Filter算法与存储数据进行关联,每个Map节点接受一个文件块分片,并赋予Bloom Filter二进制标签值写入索引文件,Reduce节点合并索引文件相同键值的索引内容,从而提升数据访问性能。

2.2 畜禽数据资源领域分类

建立畜禽数据资源的分类树,资源具有唯一类型,即分类T,且对于每一个资源r∈R,都有唯一的类型T(r),T(r)∈T。每个类型数据对应一个类型码,通过与资源元数据的对应关系维护资源的唯一性和层次关系。畜禽数据资源描述架构如图3所示。

图3 层次资源分类树

2.3 数据资源元数据描述

每种元数据分类对应一种元数据描述,如数据库资源的元数据描述可包括资源名称、领域分类、资源出处等内容,如图4所示。

元数据描述信息使用Schema和XML文件存储,把描述元数据信息的字段、属性分别用XML语法中的元素和属性来表示,其中元素包括简单元素和复合元素,简单元素表示的是元数据的信息,复合元素是由大量简单元素组成的,即包含着大量元数据的信息。属性表示的是元数据的编号,可以通过不同的编号来给元数据分类,以确定元数据的层次分类结构。元数据XML与Schema表示的应用实例如图5所示。

图4 元数据描述

图5 元数据XML与Schema表示的应用实例

3 农业云环境下畜禽疾病诊断数据服务

3.1 诊断服务内容划分

农业云环境下畜禽疾病诊断大数据服务主要包括以下几个方面[10]:

(1)数据资源:根据诊断服务需求,对畜禽疾病诊断案例数据进行整合,形成案例大数据资源,供后续的数据检索和分析计算,所有病例数据逻辑管理模型前面已经讨论。

(2)任务规划:根据诊断服务需求为用户提供任务规划方案T=T1+T2+T3,其中,T1表示数据存储任务;T2代表数据索引计算任务,T3则是代表数据处理计算任务。

(3)诊断大数据检索和分析算法:基于疾病案例大数据的索引方法,实现高效的疾病诊断和防治方法查询。

3.2 诊断检索索引

畜禽疾病电子案例可由一个四元组表示:CEMR=(分类信息,个体信息,病史,诊断记录),其中分类信息包括畜禽种类、地点、单位、联系信息、养殖方式;个体信息包括品种、猪群类别、出生日期、照片、实时环境、现场视频等;病史信息包括畜禽疾病史、用药史、健康状态等信息;诊断记录包括畜禽疾病的发病时间、症状、化验单、诊断结果、治疗方案、疗效等,图6给出了一个XML格式的电子案例实例。

图6 电子案例实例(XML格式)

畜禽疾病电子案例存储在文件系统中的XML文档中,与关系数据库的关系型记录对应存储系统中的实际数据(实时数据、症状图片、治疗视频、处方文件),可提供案例数据的在线查询。

采用Bloom Filter算法进行查询,诊断索引数据结构如图7所示。查询的症状元数据描述值包括“粪便臭”、“发烧”、“粪稀如水”、“不愿站立”。

定义病例在算法中哈希函数集合h={h1,h2},m值为8。症状对应的hash值为h1(粪便臭)=2,h1(发烧)=

4,h1(粪稀如水)=6,h1(不愿站立)=8,h1作用下病例8比特向量值为01010101;h2(粪便臭)=2,h2(发烧)=3,h2(粪稀如水)=4,h2(不愿站立)=8,h2作用下病例8比特向量值为01110001;症状Bloom Filter二进制标签值为01110101。

猪病诊断关键因素之一生猪个体的所属单位和生猪编号。元数据描述文件中记录了诊断记录编号与生猪个体的所属单位和生猪编号的映射关系,用于检索过程中快速过滤不相符合的诊断记录。

图7 诊断索引数据结构

3.3 畜禽诊断处理模型

猪病电子病历索引基于Hadoop的MapReduce建立,云环境下的诊断处理服务由在线分布式查询处理集群完成,该集群主要由负载均衡器,分发、搜索和分析虚拟机服务节点构成[11,12]。

诊断流程如图8所示,分析过程如下:

(1)对病历大数据索引文件进行限定大小切片处理和检索服务器分布式部属;

(2)负载均衡器根据病猪症状选择的“粪便臭”、“粪稀如水”等查询请求,发送至分发器进行检索;

(3)分发器接收到查询请求后,分发至服务器集合中的检索节点服务器,经过限定大小切片处理后的服务器在内存中进行检索病历数据匹配,并将结果反馈给分发器;

(4)分发器将各节点服务器反馈的病历数据进行整合,并发送给病例数据分析器节点服务器;

图8 诊断流程

(5)病例数据分析器根据与猪场管理人员的交互信息进行诊断。

通过对病例大数据文件进行限定大小切片处理,使其小于服务器内存,便于在内存中执行大数据的分析处理,有效提高了大数据并发处理效率。本文采用“疾病-症状”概念集合计算进行诊断。

疾病集合DIS={胃肠炎,急性副伤寒,砷中毒}

症状集合SYM={粪便臭,粪稀如水,发烧,不愿站,皮肤发绀,流涎,体温低,兴奋不安}

概念集合:“粪便臭,粪稀如水”是3种疾病在本集合中的共有症状;“发烧”是胃肠炎和急性副伤寒在本集合中的共有症状;“不愿站立”是胃肠炎在本集合中的个性症状;“皮肤发绀”是急性副伤寒在本集合中的个性症状;“流涎,体温低,兴奋不安”是急性副伤寒在本集合中的个性症状。

根据特征值与查询概念进行逐层交互诊断后,最终获得诊断结果,见表1。

4 云环境下畜禽疾病诊断应用分析

本文搭建了存储和在线服务集群组成的应用环境,并在绿云格平台中得到应用。大数据集群使用hadoop-2.7.3 + spark-1.6.2搭建,集群包括一个北京主节点和天津、山东、河北、湖南、浙江等8个从节点,存储了XML文件格式的200余个畜禽疾病病历数据,以及猪场空间分布数据、猪舍现场环境监测、疾病症状图片、现场监控视频等数据,在线诊断服务包括分发器、数据分析器和分布式搜索器等集群调用Hadoop的MapReduce和Lucene接口实现索引建立和检索。

表1 “疾病-病症”概念集合对应表

平台用户通过录入和交互疾病症状实现畜禽疾病智能诊断。如图9猪场技术员进行猪病诊断,根据“粪便臭”,“粪稀如水”系统推断其可能患有“胃肠炎”、“急性副伤寒”、“砷中毒”、“慢性副伤寒”、“仔猪黄痢”、“仔猪白痢”、“急性猪肺疫”;根据病猪个体信息的猪群类别排除患有“仔猪黄痢”、“仔猪白痢”两种疾病;根据病猪“体温升高”症状排除患有“砷中毒”疾病;根据病猪没有“呼吸困难”症状排除患有“急性猪肺疫”、“急性副伤寒”、“慢性副伤寒”疾病;最终确定该病猪所患疾病为“胃肠炎”。诊断过程中,每个疾病都会外链该病的电子病历、症状图片,猪场技术员可打开病历和症状图片进行浏览对照,从而提高了猪病诊断的准确率。

5 结束语

本文为畜禽疾病诊断提供了一个基于云服务架构的智能服务应用方法,同时也提供了一个大数据和云计算技术在畜禽领域诊断服务中的应用模式。该应用模式围绕云环境下畜禽疾病诊断,在云环境下给出了畜禽大数据管理和逻辑访问框架、畜禽数据资源描述分类与元数据描述模型和畜禽疾病诊断数据服务方法,有效利用了云环境下畜禽疾病诊断相关大数据进行交互式的诊断服务,提高了诊断准确度,帮助用户获得到更多有意义的决策支持。本文为大数据资源和知识的协同服务提供了可参考的技术方法,突破了传统的智能系统数据和知识资源的局限性,具有较高的实用应用价值。

图9 诊断应用

随着本系统方法的不断应用,下一步将对诊断服务的高并发的在线大数据处理与分析效率进行提升,满足当畜禽病历索引文件规模巨大,且用户的访问数量不断增加时数据处理性能问题。

猜你喜欢
疾病诊断检索畜禽
畜禽夏季喂野菜 防病快长真不赖
菌株出马让畜禽污染物变废为宝
夏季养畜禽 驱蚊有妙招
超高频超声在浅表器官疾病诊断中的应用
《呼吸疾病诊断流程与治疗策略》已出版
基于Web及知识推理的宠物狗疾病诊断专家系统
多胚蛋白酶 高效养畜禽
专利检索中“语义”的表现
CD10表达在滋养叶细胞疾病诊断中的临床意义
国际标准检索