打字猴:1.70043218e+09
1700432180
1700432181 2.自定义函数(UDF)
1700432182
1700432183 自定义函数(User-Defined Function,UDF)是关系型数据库的一个相关的新特性。UDF的处理能力大大超越了普通的SQL。UDF可以让用户自定义一些可以重复使用的数据处理逻辑,并像SQL自带函数一样自由地使用。
1700432184
1700432185 例如,要查询客户的销售总额,分析专家可能会写这样的SQL:
1700432186
1700432187 “Select Customer, Sum(sales) …”
1700432188
1700432189 如果要查询客户某一项属性的评分,使用UDF的SQL可能会是这样:
1700432190
1700432191 “Select Customer, Attrition_Score…”
1700432192
1700432193 在这个SQL语句里,“Attrition_Score”是一个已经被部署在关系型数据库内的自定义函数。这个函数可以在任何时候被使用,其内部包含比纯SQL更复杂的处理逻辑。
1700432194
1700432195 UDF通常使用C++或Java等编程语言进行开发。使用这些编程语言,使得编程语言的某些特性嵌入了SQL中,这让SQL获得了一些新的功能,而这些功能通过SQL往往是无法实现的。UDF的一个缺陷是,不少分析专家并不了解如何使用这些编程语言开发UDF,但幸运的是,很多分析工具都已经提供了自动生成这些函数的功能。这些分析工具可以帮助分析师生成合适的UDF,并将它部署在数据库里,分析师可以直接使用这些自定义函数。
1700432196
1700432197 3.嵌入式过程
1700432198
1700432199 嵌入式过程(Embedded Process)是另一种把处理任务提交给数据库执行的方法。嵌入式过程的集成程度要比刚才提到的自定义函数高得多。自定义函数是编写一段程序,并将其部署在数据库内,让其他的SQL语句能够随意地调用它。对使用者来说,这个分析函数与其他分析工具提供的原始代码没有什么不同,都可以在数据库中并发地调用。区别在于,分析工具提供的原始代码通常不得不转换为数据库语言,以提高在数据库内的处理效率。
1700432200
1700432201 对于嵌入式过程,情况就完全不一样了。嵌入式过程是将分析工具的处理引擎直接运行在数据库中。嵌入式过程具备在数据库内直接运行程序的能力。嵌入式过程充分利用了那些已经被部署在数据库内的分析程序。当需要运行某一段分析程序时,为了利用数据库的并行处理能力,嵌入式过程会把分析程序运行在数据库的每一个处理单元上。嵌入式过程不需要转换脚本语言,只需要修改很少的内部代码,但部署嵌入式过程会比较困难。各个分析软件与数据库供应商们已经开始广泛地研究并应用嵌入式过程。在不久的将来,嵌入式过程将成为一种可选的处理方法。
1700432202
1700432203 4.预测建模标记语言(PMML)
1700432204
1700432205 预测建模标记语言(Predictive Modeling Markup Language,PMML),可以把模型结果从一个分析工具导入另外一个工具中。从概念上讲,PMML包集成了预测模型进行准确预测所必需的各种信息,与模型无关的信息则不包含在内。一个PMML包的内部信息通常包括模型类型、变量名称、变量格式以及必要的参数值。〔1〕分析师可以使用任何兼容PMML的分析工具开发分析模型,当模型开发完成后,如果要把这个模型部署到另外一个兼容PMML的工具内,那么分析师只需把PMML文件直接导入新的工具,新工具内的评分模型就可以使用了。
1700432206
1700432207 PMML有一个不那么明显的缺点。要使用PMML在新的工具和环境下部署分析模型,前提条件是这个新环境内的变量名称和数据格式,必须和开发模型的原始环境中相应的名称和格式完全保持一致。例如,开发某一个模型时,某一个输入变量叫做“SumOfSales”,代表客户在某一段时间内的消费总额,格式是数值类型。那么,使用PMML在新的环境下部署这个模型时,就要确保在新的环境下也有“SumOfSales”这个变量,并且名称、含义、格式都完全相同。这意味着人们不得不在新系统里再次创建这个变量。
1700432208
1700432209 最初,很多分析专家认为,在开发模型时使用PMML,意味着他们不需要去考虑库内处理的问题。他们认为,使用分析工具开发好了模型,利用PMML就可以轻松地把模型部署到关系型数据库内了。这种想法是错误的,PMML要求不同环境下的数据变量完全一致,但事实上这不太可能出现。因此,在利用PMML部署模型前,如果分析师在数据库之外对数据进行了一些处理和转换,那么这些操作必须在数据库内完整地重复执行一遍。PMML并不负责任何数据准备的工作,它只是把同样的算法直接应用于最终数据,而PMML假定这些数据都已经被处理过了。
1700432210
1700432211 不要错误地理解PMML
1700432212
1700432213 PMML的确强化了在数据库内进行数据准备的必要性与好处。如果分析工具在数据库外部进行了任何形式的数据处理,这些过程必须在数据库内重复执行一遍,以确保PMML能正常工作。为什么要在2个环境中重复地执行数据处理过程呢?还是直接在数据库里执行吧。
1700432214
1700432215 PMML确实强化了库内处理的必要性。为了确保PMML高效地工作,建模所需的输入数据必须提前准备好。这些数据不能有任何变化,分析算法必须能够直接使用。只有这样,PMML生成的模型评分代码才能立刻开始工作,否则就需要在部署环境下进行数据的重新组织与二次处理。
1700432216
1700432217 新版的PMML已经开始具备部分特定的数据处理能力,但要彻底弥补我们提到的这个缺陷,PMML还有很长的路要走,这也限制了PMML的应用范围。
1700432218
1700432219 驾驭大数据 [:1700430566]
1700432220 4.3.2 使用MPP系统进行数据准备与评分小结
1700432221
1700432222 海量并行处理平台(MPP)是当代数据分析架构中价值很高且越来越重要的一种方法。今天,大部分大型企业都已经建立了企业级的数据仓库,对企业内大量的重要数据进行集中管理,而小型企业则通常选择建立各种数据集市。越来越多的数据处理过程将在数据仓库内进行,这种趋势将会长期地持续下去。
1700432223
1700432224 任何希望提高自身分析能力的公司,都必须了解并使用MPP。在数据规模持续增长的今天,为了进行某项分析,除非完全不可避免,我们都不应该把数据从仓库中抽取出来。使用MPP可以给企业带来分析可扩展性的额外提升,扩大可分析数据的广度与规模。不管是传统数据、大数据还是这两类数据的混合体,均可以使用这种处理方法。
1700432225
1700432226 在我们结束这一小节前,还要讨论最后一个主题。当企业级数据仓库已经成为分析环境的核心主题时,许多MPP系统供应商也开始提供比数据仓库性能略低的“一体机平台”系统。这些一体机平台系统是为某一些特定目的而设计的,例如,高级分析团队希望对海量数据进行复杂的处理。区别在于,企业级数据仓库能支持许多不同类型的数据管理工作,而这些一体机平台只能支持某一种或特定的几种数据管理工作。
1700432227
1700432228 高级分析也是分析系统承担的一项工作,而且是很重要的一项工作。当计划使用企业级数据仓库支持高级分析时,要确保数据仓库也能同时完成其承担的其他工作,如报表或查询等,通常所有这些工作都在数据仓库中同时进行。如果数据仓库实现不了,可以考虑部署独立的一体机平台系统。这些独立的一体机平台系统的价格是可以接受的,并且遵循与MPP架构一样的设计原则。
1700432229
[ 上一页 ]  [ :1.70043218e+09 ]  [ 下一页 ]