1、三七数据大数据技术解决方案北京三七数据技术有限公司2017 年 7 月 31 日目 录1 概述 .62 面临的挑战 .62.1 数据采集 .102.2 数据清洗 .102.3 数据存储 .122.4 数据并行处理 .122.5 数据分析 .122.6 可视化 .122.7 传统解决方案的分析 .123 相关技术的研究 .123.1 参考模型框架 .123.2 数据采集 .123.2.1 结构化数据的采集 .123.2.2 半结构化数据的采集 .123.2.3 非结构化文本数据中信息的抽取 .153.3 数据清洗和数据质量的保证 .153.3.1 数据质量的概念及分类 .153.3.2 数据清洗
2、的原理 .183.3.3 单数据源中的数据清洗 .203.4 数据的集成和融合 .373.4.1 多数据源集成问题的分类 .383.4.2 数据标准化的研究 .403.4.3 数据集成的流程 .413.4.4 多数据源中重复实体的清理 .413.4.5 数据不一致性问题的研究 .433.5 数据的存储和处理 .433.5.1 并行和分布式处理理论 .433.5.2 并行 RDBMS.473.5.3 Hadoop.493.5.4 Hadoop 扩展和优化 .533.5.5 NoSQL.583.5.6 查询优化 .1103.6 大数据中的数据挖掘 .1123.6.1 传统数据挖掘概述 .1123.
3、6.2 大数据时代数据挖掘发展新趋势 .1203.6.3 WEB 数据挖掘 .1243.6.4 超数据集成挖掘方法与技术研究 .1533.6.5 数据挖掘网格技术 .1863.7 大规模机器学习 .2083.7.1 机器学习概述 .2093.7.2 扩展机器学习的必要性 .2113.7.3 面临的挑战 .2133.7.4 概率图模型 .2143.7.5 集成学习 .2153.8 可视化和可视化分析 .2253.8.1 概述 .2253.8.2 可视化技术 .2253.8.3 可视化分析 .2273.8.4 文本的可视化分析 .2283.8.5 网络可视化分析 .2303.8.6 移动轨迹数据的
4、可视化分析 .2303.8.7 交互式可视化分析 .2303.9 数据溯源技术的研究 .2303.9.1 概述 .2313.9.2 模式级数据的溯源 .2323.9.3 实例级数据的溯源 .2323.9.4 数据溯源应用的分类 .2333.9.5 未来研究方向 .2343.10 同步技术的研究 .2353.10.1 概述 .2353.10.2 通信程序 .2353.10.3 数据库复制技术 .2393.10.4 ETL 技术 .2423.10.5 事务处理 .2443.10.6 XML 技术 .2463.11 数据共享技术 .2483.12 安全技术的研究 .2493.12.1 安全风险分析
5、.2493.12.2 安全技术需求 .2503.12.3 身份认证与密匙协商 .2513.12.4 访问控制技术 .2513.12.5 入侵检测技术 .2523.13 隐私保护技术的研究 .2533.13.1 概述 .2533.13.2 隐私保护的技术手段 .2543.13.3 匿名技术研究 .2564 总体技术解决方案 .2584.1 总体描述 .2584.2 功能框架 .2584.3 技术架构 .2584.3.1 数据采集层 .2584.3.2 数据管理层 .2584.3.3 数据分析层 .2584.3.4 数据展示层 .2584.3.5 数据应用层 .2584.4 与传统数据解决方案对比
6、 .2585 实施方案设计和建议 .2581 概述(主要是描述大数据的定义,大数据的特点,大数据的来源,大数据的行业趋势,大数据的应用。可以把行业研究报告的总结放在这里)2 面临的挑战大数据分析面临巨大的挑战,以下我们从 5 方面来讨论: 异构性和非完整性当用户使用信息时,可以容忍大量的异构性。实际上,自然语言的丰富性和微妙可以提供有价值的深度。然而,机器分析通常希望是同构的数据,无法理解自然语言的微妙之处。所以,通过机器进行数据分析的第一步就是必须仔细地定义数据结构。很多的数据分析系统都要求好的数据结构。少一些的结构化设计对于一些目的可能更加有效,但是计算机系统的有效性则有赖于多个数据的大小
7、和结构的一致性。半结构化数据的有效表示,访问和分析需要更加进一步的工作。即便是在数据清洗和错误纠正之后,数据还可能是不完整的和错误的。在数据分析得过程中应该有效地管理这种不完整性以及这些错误。这是一个非常大的挑战。近期关于概率数据或者不确定数据的管理也许可以在这方面取得一些进展。 数据的大小任何人对大数据的第一个想法就是它的大小。多年来,对大数据并且快速增长的数据的管理一直是很具有挑战的问题。在过去,这些挑战都是通过更快的处理器来应对的。但是现在我们面临的一个基本的事实是,数据量的增长速度超过了 CPU 速率的增长速度。首先,在过去 5 年,处理器技术已经有了巨大的转变,根据摩尔定理处理器的主
8、频每 18 个月就会翻倍,现在因为功率和散热的限制,单个处理器的主频基本上停滞不前了,业界都在通过多核技术来生产处理器。在过去,大型的数据处理系统需要避免在计算机群中跨节点的并行机制;现在,则需要处理在一个节点内的并行机制。不幸的是,过去应用于跨节点数据处理的并行数据处理技术并不能直接用于节点内的并行处理,因为架构看上去非常不同。比如,在单个节点中多核之间通常会共享 Caches 和内存通道。另外,在将来出于规律的考虑,我们可能不会持续使用系统中的硬件,数据处理系统可能需要主动第管理处理器的功耗。这些变化要求我们重新思考如何设计,搭建以及运行数据处理组件。第二个巨大的转变是向云计算的迁移,云计
9、算将多个分离的计算任务汇聚到非常大的计算机群中,每个计算任务具有不同的性能目标。在大的计算机群中的资源共享要求新的方法来决定如何运行和执行数据处理工作,以便我们可以经济有效地满足每个计算任务的目标;还要求我们能够应对系统失效,这在越来越的计算机群中发生得更加频繁。在这种情况下,说明式编程方案更加有效,甚至是那些在做复杂的机器学习任务的程序,因为为了获得好的整体性能,跨多个用户程序的全局优化是是十分必要的。依靠用户驱动的程序优化有可能导致较差的群的整体性能。系统驱动的整体优化要求程序是足够透明的,比如在关系型数据库中,说明式的查询语言就是这样设计的。第三个转变是传统的 I/O 子系统发生了巨大的
10、变化。多年来,永久性数据主要是存在硬盘上。硬盘的随机访问 I/O 性能比顺序 I/O 性能要慢很多,通常数据处理引擎通过格式化数据,以及查询处理方法的设计来克服这些限制。如今,硬盘正在逐步被固态驱动器取代,其他的技术如相变内存正在出现。这些新型的存储技术在随机访问 I/O 性能比顺序I/O 性能之间不存在那么大的差异,这就要求我们重新思考数据处理系统中存储子系统的设计。存储子系统这种变化的影响基本上触及数据处理的每个方面,包括查询处理算法,查询排队算法,数据库设计,并发性控制方法以及恢复方法。 及时性数据大小的另一面是速度。需要处理的数据集越大,分析所需要的时间就越长。设计的系统如果可以有效地
11、处理大数据,那么这样的系统就能够快速地处理一个给定大小的数据集。但是,这里的处理速度不完全是谈到大数据时通常所谈到的速度,在大数据中还需要应对数据获取的速度的挑战。现实中有很多情况需要立刻得到分析得结果。比如,如果怀疑一个欺诈性信用卡交易,在交易完成之前我们就应该标识出这样的交易,这样可以从根本上防止欺诈性交易的发生。很显然,对一个用户的消费历史进行全面实时的分析是不太可行的。我们需要预先获得部分的结果,以便我们可以通过在新数据上少量的渐进式计算就可以快速地做决定。给定一个大的数据集,通常需要找到满足一个特定准则那些数据。在数据分析得过程中,这种类型的搜索有可能重复地发生。为了找到适合的数据,
12、每次对整个数据集进行搜索显然是不现实的。我们需要实现建立索引结构来快速找到符合要求的数据。这里的问题是,因为每个索引结构是按照一些类型的准则来设计的。当需要使用大数据时,有可能定义新型的准则,这时就需要设计新的索引结构来支持新的准则。例如,考虑一个流量管理系统, 数据的隐私性数据的隐私性是另外一个重要的问题,特别是在大数据中显得更加重要。对于电子医疗记录,有严格的法律规定可以做什么,不可以做什么。对于其他的数据,就没有那么硬性的规定,特别是在美国。然而,公众还是很担心个人数据的不正当使用,特别是通过链接多个数据源的数据。对隐私性的管理既是技术上的问题,也是社会学的问题,需要从这两个领域去寻找解
13、决方案。例如,我们考虑从基于位置的服务中收集到的数据。这些新的架构要求用户把他们的位置信息共享给业务提供商,这是一个很明显的隐私性问题。如果只是隐藏用户的身份信息,而没有隐藏他的位置信息,这并不是一个好的解决方案。因为可以从位置信息推理出被查询者的身份信息。比如,我们可以通过几个静态的连接点(如基站)跟踪用户的位置信息。一段时间后,用户就会留下一些踪迹,这些踪迹可以和特定的住所以及办公地点相关联,从而可以确定用户的身份。其他几种个人信息如关于个人健康(比如在癌症治疗中心去过)或者宗教偏好(比如去过教堂)等也可以通过观察匿名用户的移动和使用模式推理获得。一般来说,研究结果表明在用户的身份和他们的
14、移动模式之间存在很强的相关性。将用户的位置信息隐藏起来远比隐藏用户的身份信息要困难得多。这是因为在基于位置的服务中,为了成功的数据访问和数据收集,就需要用到用户的位置信息,而用户的身份信息就可以不需要。还有很多其他的具有挑战性的研究课题。比如,我们没有找到好的数据共享方法,如何在限制个人信息披露的前提下,还保证在共享数据中有足够有用的信息。目前关于差异化隐私的研究是解决这个问题的重要一步,但是这个研究删除掉的信息太多了,在很多实际的情况中无法用。另外,实际中的数据不是静态的,而是会随着时间的推移发生变化并且变得更大。还有一个重要方向是重新思考在大数据中信息共享的安全性研究。今天很多的在线业务都
15、要求我们共享个人信息,但是除了访问控制之外,对于其他的方面如共享数据意味着什么,共享数据是如何链接的,以及如何让用户对数据的共享能够进行更细颗粒的控制等则一无所知。 人力的介入与协作尽管机器分析取得了很大的进展,但还是存在人可以轻易检测出的很多模式,计算机算法却很难做到。理想的方案是,大数据分析并不完全是计算机算法,而是设计成明确地把人放到分析的环路中。新的可视化分析尝试按照这种原理去做,至少是在整个管道中建模和分析得环节。实际上在整个管道的所有环节人力的介入都有类似的价值。在今天复杂的世界中,通常需要来自各个不同的领域的多个专家去真正理解到底在发生什么。一个大数据分析系统应该支持来自多个专家
16、的输入,并共享分析的结果。这些专家有可能在空间和时间上是分离的,数据系统应该接受这种分布式的专家输入,并支持多个专家之间的协作。一个现在比较流行的利用人的聪明才智来解决问题的新方法众包的方式。Wikipedia在线百科全书就是众包数据的最著名的例子,信息时由未经审查的陌生人提供的,通常他们提供的信息时正确的。但是,还是存在一些个人有其他的动机和角色,有些人出于某种原因故意提供错误的信息以误导别人。虽然大部分这种错误会被其他的人发现并且纠正,我们需要技术来支撑。我们也需要一个框架来分析这些带有矛盾陈述的众包数据。作为人,我们可以查看关于饭店的评价,有些是正面的,有些是负面的,然后我们形成一个总结
17、性评估,基于此评估我们可以决定是否去这个饭店试试。我们希望计算机能够做类似的事情。在一种特定类型的众包,即参与感测中不确定性和错误的问题更加显著。在这种情况下,每个持有手机的人可以作为一个多模的传感器,收集各种类型的数据,比如图片,图像,声音,时间,速度,方向,加速度等数据。这里比较大的挑战是数据搜集设备内在的不确定性。收集到的数据在时间和空间上的相关性可以用来更好地评估数据的正确性。2.1 数据采集2.2 数据清洗随着信息化建设的不断深入,企事业单位积累了大量的电子数据,这些数据非常重要。为了使信息系统中的数据更准确、一致,能支持正确决策,就要求所管理的数据准确、可靠。因此,企业数据质量的管理正在获得越来越多的关注。但是,由于各种原因,如数据录入错误、不同来源数据引起的不同表示方法、数据间的不一致等,导致企业现有系统数