上QQ阅读APP看书,第一时间看更新
第三节 临床工程研究中信息技术手段的利用
随着信息技术的不断发展,医院内的各种业务也对信息系统的依赖越来越强,设备与器械的管理也不例外。利用信息技术,可以为临床工程研究提供更有利的数据支持,帮助以往基于经验的模糊管理和研究向基于数据的精确管理和研究转变。
一、 数据结构设计
(一)数据结构简介
在计算机科学中,数据结构是一门研究非数值计算的程序设计问题中,计算机的操作对象(数据元素)以及它们之间的关系和运算等的学科,确保经过这些运算后所得到的新结构仍然是原来的结构类型。数据结构不仅是一般程序设计(特别是非数值性程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序的重要基础。
数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合,以及该集合中数据元素之间的关系组成,即数据结构(Data-Structure)=(D,R),其中D是数据元素的集合,R是该集合中所有元素之间的关系的有限集合。通常情况下,精心选择的数据结构可以带来更高的运行或存储效率。数据结构往往同高效的检索算法和索引技术有关。
(二)数据结构设计的重要性
从应用角度来讲,数据结构是否合理,直接影响通过应用程序获取数据的可利用性。如果数据结构完整,相互的关联性清晰,可以用来研究的数据可用性也大大增加;如果数据结构不完整,没有清晰的索引和关联性,最后拿到的数据就是一团无法整理利用的数据,对研究的价值非常有限。
从更深层次的程序开发角度来讲,应用程序设计质量的好坏和数据的结构层次设计有很大关系,结构是否合理直接影响程序的运行效率和性能。
(三)数据库表结构设计方法及原则
1.不可能一张表就能覆盖系统中的所有功能,因此不应该针对整个系统进行数据库设计,而应该根据系统架构中的功能模块划分,针对每个组件所处理的业务进行组件单元的数据库设计。不同组件间所对应的数据库表之间的关联应尽可能简洁、唯一。如果不同组件间的表需要外键关联也尽量不要创建,而只记录关联表的一个主键,确保组件对应的表之间的独立性,为系统或表结构的重构提供可能性。
2.采用领域模型驱动的方式和自顶向下的思路进行数据库设计,首先分析系统业务,根据职责定义对象。对象要符合封装的特性,确保与职责相关的数据项被定义在一个对象之内,这些数据项能够完整描述该职责,不会出现职责描述缺失。一个对象有且只有一项职责。如果一个对象要负责两个或两个以上的职责,应进行分拆。
3.根据建立的领域模型进行数据库表的映射。此时应参考数据库设计第二范式:一个表中的所有非关键字属性都依赖于整个关键字。关键字可以是一个属性,也可以是多个属性的集合,无论哪种方式,都应确保关键字能够保证唯一性。在确定关键字时,应保证关键字不会参与业务且不会出现更新异常,这时最优解决方案为采用一个自增数值型属性或一个随机字符串作为表的关键字。
4.采用领域模型驱动方式设计数据库表结构,由于领域模型中的每一个对象只有一项职责,所以对象中的数据项不存在传递依赖。这种思路的数据库表结构设计从一开始即满足第三范式:一个表应满足第二范式,并且属性间不存在传递依赖。
5.由于对象职责的单一性以及对象之间的关系反映的是业务逻辑之间的关系,所以领域模型中的对象存在主对象和从对象之分。从对象是从1-N或N-N的角度进一步扩展补充主对象的业务逻辑,所以从对象及对象关系映射为表及表关联关系,不存在删除和插入异常。
6.在映射后得出的数据库表结构中,应再根据第四范式进行进一步修改,确保不存在多值依赖。这时,应根据反向工程的思路反馈给领域模型。如果表结构中存在多值依赖,则证明领域模型中的对象具有至少2个以上的职责,应根据第一条进行设计修正。第四范式:一个表如果满足巴斯-科德范式(Boyce-Codd normal form,BCNF),不应存在多值依赖。
7.在经过分析后确认所有表都满足二、三、四范式的情况下,表和表之间的关联尽量采用弱关联,以便于对表字段和表结构的调整和重构。并且,数据库中的表是用来持久化一个对象实例在特定时间及特定条件下的状态的,只是一个存储介质,所以表和表之间不应用强关联来表述业务(数据间的一致性)。这一职责应由系统的逻辑层来保证。这种方式也确保了系统对于不正确数据(脏数据)的兼容性。当然,从整个系统的角度来说,还是要尽最大努力确保系统不会产生脏数据。从另一个角度来说,脏数据的产生在一定程度上也是不可避免的,因此也要保证系统对这种情况的容错性。这是一个折中的方案。
8.应针对所有表的主键和外键建立索引,有针对性地(针对一些大数据量和常用检索方式)建立组合属性的索引,提高检索效率。虽然建立索引会消耗部分系统资源,但比较在检索时搜索整张表中的数据,尤其是表中数据量较大以及无索引时排序操作所带来的性能影响,这种方式仍然是值得提倡的。
9.尽量少采用存储过程。目前已经有很多技术可以替代存储过程的功能,如“对象/关系映射”等。将数据一致放在数据库中,对于版本控制、开发和部署以及数据库的迁移都会带来很大的影响。但不可否认,存储过程具有性能上的优势,所以当系统可使用的硬件不会提升而性能又是非常重要的质量属性时,可平衡考虑选用存储过程。
10.当处理表间的关联约束所付出的代价(常是使用性上的代价)超过了保证不会出现修改、删除、更改异常所付出的代价,并且数据冗余也不是主要问题时,表设计可以不符合4个范式。4个范式确保了不会出现异常,但也可能导致过于纯洁的设计,使表结构难以使用,因此,在设计时需要进行综合判断,首先确保符合4个范式,然后再进行精化修正,这是刚进入数据库设计领域时可以采用的最好办法。
11.设计出的表要具有较好的使用性,主要体现在查询时是否需要关联多张表并且使用复杂的结构化查询语言(structured query language,SQL)技巧。
12.设计出的表要尽可能减少数据冗余,确保数据的准确性。有效控制冗余有助于提高数据库的性能。
二、 数据采集
数据采集又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。数据采集技术广泛应用在各个领域。
国内医疗信息系统中,目前常用的是人工录入的数据采集方式。但是随着数据采集技术的发展,以及对大数据重视程度的加深,自动获取的采集方式会越来越多。被采集数据是已被转换为电讯号的各种物理量,如温度、水位、风速、压力等,可以是模拟量,也可以是数字量。自动的采集一般是采样方式,即间隔一定时间(采样周期)对同一点数据重复采集。采集的数据大多是瞬时值,也可是某段时间内的一个特征值。准确的数据量测是数据采集的基础。数据量测方法有接触式和非接触式,检测元件多种多样。不论哪种方法和元件,均以不影响被测对象状态和测量环境为前提,以保证数据的正确性。数据采集含义很广,如对连续物理量的采集。在计算机辅助制图、测图、设计中,图形或图像的数字化过程也可称为数据采集,此时被采集的是几何量(或包括物理量,如灰度)数据。
在互联网行业快速发展的今天,数据采集领域已经发生了重要的变化,数据采集已经被广泛应用于互联网及分布式领域。首先,分布式控制应用场合中的智能数据采集系统已经取得了长足的发展。其次,总线兼容型数据采集插件的数量不断增大,与个人计算机兼容的数据采集系统的数量也在增加。各种数据采集机先后问世,将数据采集带入了一个全新的时代。
(一)大数据技术采用的新数据采集方法
1.系统日志采集方法
很多互联网企业都有自己的海量数据采集工具,多用于系统日志采集,如Hadoop的Chukwa,Cloudera的Flume,Facebook的Scribe等,这些工具均采用分布式架构,能满足每秒数百兆的日志数据采集和传输需求。
2.网络数据采集方法:
指通过网络爬虫或网站公开应用程序编程接口(application programming interface,API)等方式从网站上获取数据信息。该方法可以将非结构化数据从网页中抽取出来,并以结构化的方式存储为统一的本地数据文件。它支持图片、音频、视频等文件或附件的采集,附件与正文可以自动关联。
除了网络中包含的内容之外,对于网络流量的采集可以使用深度包检测(deep packet inspection,DPI)或深度/动态流检测(deep/dynamic flow inspection,DFI)等带宽管理技术进行处理。
3.其他数据采集方法
对于企业生产经营数据或学科研究数据等保密性要求较高的数据,可以通过与企业或研究机构合作,使用特定系统接口等相关方式采集数据。
(二)数据采集质量控制
全面、真实、合法地进行数据采集,加强对调查数据采集质量的控制,对确保统计调查的顺利完成十分重要。
1.数据采集质量控制中存在的问题
(1)虚假的数据:
这是最常见,也是危害最严重的数据质量问题。这类数据完全是虚构的、杜撰的,毫无事实根据。造成数据虚假的因素多种多样,如有意虚报、瞒报统计数据资料,指标制订不严密,统计制度不完善等。
(2)拼凑的数据:
指在数据采集过程中,把不同地点、不同条件、不同性质的数据人为地拼凑成同一时间、同一地点、同一条件和同一性质下的同一数据。这种东拼西凑的数据,虽然都有事实根据,但从整体上看是不符合事实的。
(3)指标数值背离原意:
指由于对指标的理解不准确,或指标含义解释不清楚,或填报指标项目随意等原因,造成数据采集不是统计制度所要求的内容,数据与指标原意出现背离。
(4)数据不完整:
指在数据采集过程中出现指标项目上的遗漏,所列指标项目的资料没有采集齐全,不符合统计资料完整性的要求。数据不完整,就不可能反映出调查对象的全貌和真实情况。
(5)数据逻辑性错误:
指数据资料的填报不符合逻辑要求,报表中各个指标项目的数据相互矛盾。
(6)数据非同一性:
指把同一个指标在不同时期的统计范围、口径、内容、方法、单位和价格等混为一谈,从而造成数据的不可比性。
2.数据采集质量控制的方法
首先,数据采集质量控制要贯穿于采集工作的全过程。采集工作每进行一步,都要对已经完成的工作进行检查。对已发生的差错要及时进行纠正,防止差错流入下一个工作环节。其次,数据采集质量控制应当是全方位的。尤其是调查工作者都要树立起数据质量第一的思想,在数据采集工作的各个环节上都要强化责任意识。只有人人关心数据质量,对数据质量高度负责,数据采集质量控制才能达到预期目的。
三、 数据清洗
现实世界中的数据源极易受空缺、不一致和噪声数据的侵扰。根据GIGO(garbage in,garbage out)原理,没有良好的数据质量作后盾,再先进的数据处理技术和分析工具也不能发挥作用。要想数据仓库真正发挥作用,就必须提高业务系统的数据质量。数据质量的控制是数据仓库建设发展过程中越来越引起重视的突出问题,而解决这些问题的过程称为数据清理。
在数据仓库环境下,数据清理是数据抽取转化装载(extract transform loading,ETL)过程的一个重要部分,要考虑数据仓库的集成性与面向主题的需要。数据清理目的是检测数据中存在的错误和不一致,剔除或者改正它们,这样就提高了数据的质量。业务系统数据清理是提升业务系统数据质量的有效手段,是数据仓库实施过程中数据质量管控的源头,是整个数据仓库项目成功的关键。业务系统数据清理工作一方面能有效提升业务系统的数据质量和系统可用性,另一方面也能有效降低整个数据仓库ETL的复杂度和工作量,保证数据仓库中的数据质量。数据清理主要是针对源数据库,对其中出现二义性、重复、不完整、违反业务或逻辑规则等问题的数据进行相应的清洗操作。在清洗之前,需要进行数据质量分析,以找出存在问题的数据,否则数据清洗将无从谈起。
(一)数据质量
1.数据质量定义
数据质量定义为数据的一致性、正确性、完整性和最小性在信息系统中得到满足的程度。数据质量衡量指标有数据质量指示器和数据质量参数两类,用户应根据需求选择其中一部分。在此基础上,有人提出了数据工程中数据质量的需求分析和模型。
数据的完整性(Completeness)、正确性(Correctness)、一致性(Consistency)和当前性(Currency)称为4C。完整性指数据是否按规则填写完整;正确性指数据是否满足域定义和业务逻辑要求;一致性指不同系统之间关联的数据在定义、含义、取值及操作等方面是否一致;当前性指数据是否能够反映当前状态。高质量的数据应该是完整的、正确的、一致的、当前的。
2.数据质量问题的分类
(1)根据处理的是单数据源还是多数据源以及问题出在模式层还是实例层,可将数据质量问题分为4类:单数据源模式层问题、单数据源实例层问题、多数据源模式层问题和多数据源实例层问题。
(2)根据用户角色的不同,可将数据仓库质量分为4类:设计与管理质量、软件实现质量、数据使用质量以及数据质量。其中每一类又包括正确性、完整性、可靠性等指标。
3.数据质量控制方法及实现
从对数据仓库自身数据的监控到对数据形成过程的管理,数据仓库中用于数据质量控制的方法有很多。不论何种方法,面向数据仓库的长期建设,必须建立有效的数据质量评估体系。数据质量将逐渐与企业业绩和价值挂钩。针对专门的数据质量模型进行计算的质量评估软件不能适应这种动态性的需求。
将质量模型的描述作为元数据进行定义,在一个质量元模型下可以定义多个质量模型。有学者在此基础上提出了一个可扩展的数据质量控制元模型。该元模型是对企业数据质量模型的抽象,由核心层、初始层和扩展层3层组成,目的是为企业的数据质量体系定义提供一个完整的框架。
首先,明确清理主题以及主题域定义的数据源、数据模型;接着,对数据源进行抽样分析,对数据问题进行分类;然后,提出清理尺度来确保数据质量;最后,通过对业务规则的巩固和进一步核实,确认数据质量需求。
(二)数据清洗
1.数据清理原理
存在不完整的、含噪声的和不一致的数据是现实数据库/数据仓库的共同特点。数据清理原理就是利用有关技术,如数理统计、数据挖掘或预定义的清理规则将脏数据转化为满足数据质量要求的数据。数据清理的原理如图2-6所示。
图2-6 数据清理原理
2.数据清理框架
数据清理过程必须满足如下几个条件:①不论是单数据源还是多数据源,都要检测并且除去数据中所有明显错误和不一致;②尽可能减小人工干预和用户的编程工作量,而且要容易扩展到其他数据源;③应该和数据转化结合;④要有相应的描述语言来指定数据转化和数据清理操作,所有这些操作应该在一个统一的框架下完成。
设计了数据ETL工具的整体框架,使用通用数据访问接口来屏蔽各种数据源之间的差异,并以数据清理为主要目的,为消除多数据源的模式冲突和数据冲突提供了通用而有效的解决方案。①提出了一个数据清理框架,试图清晰地分离逻辑规范层和物理实现层。用户在逻辑层设计数据处理流程,确定清理过程需要执行的数据转化步骤;物理层实现这些数据转化操作,并对它们进行优化。②提出了一种描述性语言。该描述性语言可以在逻辑层上指定数据清理过程所需采取的数据转化操作,并指定何时可以抛出异常,要求用户的交互。该描述性语言还可以指定一些数据转化操作的参数,如记录匹配操作所使用的距离函数等。③提出了一种交互式的数据清理框架。它由数据源、数据转换引擎、在线记录器以及自动差异监测器4部分构成。用户利用系统提供的基本数据转化操作,无须书写复杂的程序就能够完成数据清洗任务,而且能够随时看到每一步转化操作后的结果,没有很长的延迟。
不论采用何种清理方法,数据清理过程一般由4个阶段构成:①清理主题定义;②数据(质量)分析,定义错误类型;③针对分析结果,定义清理技术;④实现程序,搜索识别,修正错误。
数据清理框架包含以下4方面内容:
(1)概念定义层:
主要定义数据清理的主题和数据质量需求。根据数据仓库项目的需求定义用户资料清理、定单数据清理、产品和服务清理、账单数据清理、服务数据清理和结算数据清理等以及相应数据质量需求。
(2)逻辑规范层:
主要是将概念转换为业务逻辑,描述数据流,并且实现业务逻辑向处理逻辑的转换。例如,资料清理可以划分为核对有效数、数据源间资料的对比及核实、补充缺失的关键字段、进行属性编码的统一、归并与切割5个步骤。根据每个步骤对质量的需求,将业务需求转换为相应的处理逻辑。例如,归并与切割可映射到重复记录查找、数据备份/恢复/删除、聚类/孤立点检测等处理逻辑。
(3)物理实现层:
主要功能为实现具体的清理程序以及算法,进行数据错误的修正和迁移,以及出现异常后人为干预。
(4)层的映射关系:
给出了一种采用可扩展标记语言(extensible markup language,XML)描述网络映射的模式。
在数据仓库应用中,数据清理并不是一个单独的部分,需要和ETL过程统一使用,在数据质量控制下,进行循环处理。数据清理系统采用了基于构件的设计思路,实现了以数据清理为主的ETL工具。
其主要功能及流程包括:①通用数据访问接口,该接口能够跨平台(网络)访问数据,支持在异构数据源间建立连接,可选多种数据访问接口方式,如JDBC、ODBC、OLEDB等;②数据抽取,包括模式数据和实例数据抽取,此过程需要处理噪声数据,补充部分特殊空缺值,并建议使用增量的抽取方法;③数据集成和变换,经过数据抽取后可以得到多个模式和多个实例数据集,在此过程中,需要进行数据规范化和一致性校验;④数据规约,经过数据集成后的数据集中还包含许多相似重复记录,此过程要完成重复数据查找,进行数据的归并或切割;⑤数据装载,此过程需要自动或异常后在人工干预下将清理后的数据装载至目标数据模型,支持数据备份和恢复功能;⑥元数据管理,元数据是描述数据的数据,系统使用元数据来描述数据质量对象及其属性,描述数据清理构件对象及属性和构件的检索方法等属性,此过程伴随系统运行的始终。
数据是数据仓库系统的血液,数据仓库能否为决策提供有效支持的关键就在数据质量,数据质量建设的成功与否直接决定数据仓库的应用质量。数据清理就是为了解决数据质量问题而采取手动或人工智能的方法进行的清理操作。
3.数据的主要类型
(1)残缺数据:
主要指一些应该有的信息缺失,如供应商的名称、分公司的名称、客户的区域信息缺失、业务系统中主表与明细表不能匹配等。对于这类数据,可将其过滤出来,按缺失的内容分别写入不同Excel文件提交客户,要求在规定的时间内补全,补全后才写入数据仓库。
(2)错误数据:
这类错误是业务系统不健全,在接收输入后没有进行判断,直接写入后台数据库造成的。例如,数值数据输成全角数字字符、字符串数据后面有一个回车操作、日期格式不正确、日期越界等。对于这类数据也要分类,对于类似全角字符、数据前后有不可见字符的问题,只能通过写SQL语句的方式找出来,然后要求客户在业务系统修正之后抽取。日期格式不正确或日期越界的错误会导致ETL运行失败。对于这类错误,需要在业务系统数据库用SQL的方式挑出来,交给业务主管部门要求限期修正,修正之后再抽取。
(3)重复数据:
对于这类问题(特别是维表中会出现这种情况),将重复数据记录的所有字段导出来,让客户确认并整理。
数据清洗是一个反复的过程,不可能在几天内完成,只能不断地发现问题,解决问题。对于是否过滤、是否修正,一般要客户确认。对于过滤掉的数据,写入Excel文件或者数据表。在ETL开发的初期,可以每天向业务单位发送过滤数据的邮件,促使他们尽快修正错误,同时也可以作为将来验证数据的依据。
数据清洗需要注意:不要将有用的数据过滤掉,对于每个过滤规则认真验证,并要用户确认。
四、 大数据的处理和计算
(一)大数据及其特征
大数据具有5个主要技术特点(即5V特征):①大体量(Volume),即规模可从数百TB到数十数百PB,甚至EB;②多样性(Variety),即大数据包括各种格式和形态的数据;③时效性(Velocity),即很多大数据需要在一定时间限度下得到及时处理;④准确性(Veracity),即处理的结果要保证一定的准确性;⑤大价值(Value),即大数据包含很多深度的价值,分析、挖掘和利用大数据将带来巨大的商业价值。
传统的数据库系统主要面向结构化数据的存储和处理,但现实中的大数据具有各种不同的格式和形态。据统计,现实世界中80%以上的数据都是文本和媒体等非结构化数据。同时,大数据还具有很多不同的计算特征。我们可以从多个角度分类大数据的类型和计算特征。
1.从数据结构特征角度看,大数据可分为结构化与非结构化/半结构化数据。
2.从数据获取处理方式看,大数据可分为批处理与流式计算方式。
3.从数据处理类型看,大数据处理可分为传统的查询分析计算和复杂数据挖掘计算。
4.从大数据处理响应性能看,大数据处理可分为实时/准实时与非实时计算,或者联机计算与线下计算。流式计算通常属于实时计算。此外,查询分析类计算通常要求具有高响应性能,因而可以归为实时或准实时计算。而批处理计算和复杂数据挖掘计算通常属于非实时或线下计算。
5.从数据关系角度看,大数据可分为简单关系数据(如Web日志)和复杂关系数据(如社会网络等具有复杂数据关系的图计算)。
6.从迭代计算角度看,数据处理过程中有很多计算问题需要大量的迭代计算,如一些机器学习等复杂的计算任务,为此需要提供具有高效迭代计算能力的大数据处理和计算方法。
7.从并行计算体系结构特征角度看,由于需要支持大规模数据的存储和计算,目前绝大多数大数据处理都使用基于集群的分布式存储与并行计算体系结构和硬件平台。
(二)大数据分析的5个基本方面
1.预测性分析能力
数据挖掘可以让分析员更好地理解数据;而预测性分析可以让分析员根据可视化分析和数据挖掘的结果,做出一些预测性的判断。
2.数据质量和数据管理
数据质量和数据管理是一些管理方面的最佳实践。通过标准化的流程和工具对数据进行处理,可以保证一个预先定义好的高质量的分析结果。
3.可视化分析
不管是对数据分析专家还是普通用户,数据可视化是数据分析工具最基本的要求。可视化可以直观地展示数据,让数据自己“说话”,让观众“听”到结果。
4.语义引擎
非结构化数据的多样性带来了数据分析的新的挑战,因此需要一系列工具去解析、提取、分析数据。语义引擎需要被设计成能够从“文档”中智能提取信息。
5.数据挖掘算法
可视化是给人看的,数据挖掘则是给机器看的。集群、分割、孤立点分析记忆其他算法让人深入数据内部,挖掘价值。这些算法不仅要求处理大数据的量,也要处理大数据的速度。
(三)大数据的处理
大数据处理数据时代有三大理念转变:①要全体,不要抽样;②要效率,不要绝对精确;③要相关,不要因果。具体的大数据处理方法其实有很多,但是根据长时间的实践,笔者总结了一个基本的大数据处理流程,应该能够对大家理顺大数据的处理有所帮助。整个处理流程可以概括为4步:①采集;②导入和预处理;③统计和分析;④挖掘。
1.采集
大数据的采集是指利用多个数据库来接收发自客户端的数据,用户可以通过这些数据库来进行简单的查询和处理工作。比如,电商会使用传统的关系型数据库MySQL和Oracle等来存储每一笔事务数据。此外,Redis和MongoDB等NoSQL数据库也常用于数据的采集。
大数据的采集的主要特点和挑战是并发数高,因为同时有可能有成千上万的用户来进行访问和操作,比如火车票售票网站,并发的访问量在峰值时达到上百万,所以需要在采集端部署大量数据库才能支撑。如何在这些数据库之间进行负载均衡和分片是需要深入思考和设计的。
2.导入和预处理
采集端本身会有很多数据库,如果要对这些海量数据进行有效的分析,应该将这些来自前端的数据导入一个集中的大型分布式数据库或分布式存储集群,并且在导入基础上做一些简单的清洗和预处理工作。有一些用户会在导入时使用来自Twitter的Storm来对数据进行流式计算,以满足部分业务的实时计算需求。导入与预处理过程的特点和挑战主要是导入的数据量大,每秒钟的导入量经常会达到百兆,甚至千兆级别。
3.统计和分析
主要利用分布式数据库或分布式计算集群,对存储于其内的海量数据进行普通的分析和分类汇总等,以满足大多数常见的分析需求。在这方面,一些实时性需求会用到EMC的GreenPlum、Oracle的Exadata,以及基于MySQL的列式存储Infobright等,而一些批处理或基于半结构化数据的需求可以使用Hadoop。统计与分析的主要特点和挑战是分析涉及的数据量大,对系统资源,特别是I/O会有极大的占用。
4.挖掘
数据挖掘一般没有预先设定好的主题,主要是在现有数据上进行基于各种算法的计算,起到预测的效果,从而实现一些高级别数据分析的需求。比较典型的算法有用于聚类的K-Means、用于统计学习的SVM和用于分类的Naive Bayes,主要使用的工具有Hadoop的Mahout等。该过程的特点和挑战主要是用于挖掘的算法很复杂,计算涉及的数据量和计算量都很大,并且常用数据挖掘算法都以单线程为主。