400 050 6600
数据分析师

手机号

验证码

30天自动登录
当前位置:首页 - Q&A问答

Q&AQ&A问答

构建机器学习应用程序?从SQL开始

来源:CPDA数据分析师网 / 作者:数据君 / 时间:2020-09-03

新的数据库和硬件方法使机器学习受益机器学习不是新事物,SQL数据库也不是新事物,那么发生了什么变化?三件事

分布式系统: 今天,SQL数据库是分布式的,允许您使用更多的内核并具有更好的并行性,总体而言,这使更多的硬件可以一次处理单个查询,从而提供性能,分布式系统可以扩展到数百个服务器或云实例,从而提供与单节点系统不同的性能竞争环境。

 

新硬件: 现代CPU处理器硬件越来越复杂。例如,英特尔高级矢量扩展模型允许处理器在多条数据上进行计算,同时提高了处理器级别的并行度。此外,GPU可通过同时在多个内核之间进行协调来实现类似的并行性。

 

代码生成: 代码生成通过将原始请求转换为机器代码,从而帮助其更快地运行,从而有助于优化数据库中的查询和自定义功能。但是,代码生成的真正能力来自生成针对特定查询优化的机器代码,从而避免了解释程序的开销。解释器是一段代码,可以运行任何查询,因此包含更通用的指令,通常对于给定特定查询的性能而言不是的。

 

从历史上看,传统数据库具有内置且快速的功能

但是这些都是有限的集合,很少添加新的东西,通过代码生成,客户部署的任何新功能都可以从转换为机器代码中受益,从本质上讲,具有有效代码生成功能的数据库正在不断地代表数据库用户进行优化。

 

推动ML炒作的原因

毫无疑问,人们和公司希望从他们的数据中获得更多收益,而今天的数据实在太大了,无法在人类规模上进行分析,机器处理或机器学习是收集见解的方法,机器学习通常涉及以计算密集的方式处理大量数据。在软件系统中拥有这些潜在的技术能力是机器学习的关键推动力。

 

并行化

机器学习不是新事物,但是ML的并行化是新事物。从历史上看,ML一直专注于RPython等语言,它们是:

 

灵活

C ++Java之类的较低级语言相比,它相对容易学习,尽管比SQL更难学习。

由单线程进程控制。

另一方面,SQL已经:

 

从历史上讲,它的灵活性较差

但是,它易于学习,并在企业中广泛部署,SQL几乎和今天一样,几乎用英语问计算机一个精确定义的问题,历史上具有多线程功能,但经常执行单服务器,如今,随着分布式SQL数据存储的进步,您可以将SQL作为数据访问语言的优势与可伸缩并行系统的性能和功能结合起来。

 

处理接近数据

进一步促进SQLML融合的另一项发展是,使用RPython等语言,处理工作越来越远离数据。从数据存储中提取数据,然后在外部引擎或数据应用程序层进行处理,支持对内存中的数据进行RPython代码的分布式执行,但是这样做是暂时的,仍然需要数据源和结果的外部持久性,对于SQL数据库,数据库本身正在存储数据并处理数据,因此,通过使用SQL操作,可以折叠堆栈以提高性能和可伸缩性。

 

SQLML的示例

有几种方法可以利用SQLML,特别地这些方法着重于机器学习模型的操作。这些方法并不能涵盖所有的ML模型实现,但是它们确实为实时应用程序提供了一组新的可伸缩性和性能,如果没有共同定位功能,则需要有一个外部系统来匹配向量,然后在数据库中查找它们。性能更高的方法将的匹配步骤放在数据旁边。

 

开发机器学习模型通常是离线进行的,但评分通常是实时进行的,从而为现代应用程序提供了引人注目的业务价值

使用正确的SQL数据库,可以将ML模型作为系统中的数据域执行,从而在同一表的同一行中同时提供原始数据点和ML结果点,使用实时方法,计分就可以进行了,不需要第二阶段来运行和建立计分。由于分数一直存在,因此可以减少管理的总体流程,从而大大降低了应用程序的复杂性,与分布式SQL数据库结合使用时,系统可以轻松扩展以处理来自全局应用程序的传入工作负载。高性能并行连接器可为消息队列和执行引擎带来更多好处。

 

MLSQL前进

展望未来,我们很可能会在数据库内部使用更多的机器学习方法。一旦数据存在并且用户正在输入SQL查询,数据库自然会收集有关每个用户的更多信息,这将推动易用性方面的进步,现在如果要合并ML,则必须编写所有内容,但是没有什么比SQL查询更容易的了,MLSQL将以许多方式和一系列框架继续重叠。

  客服热线:400-050-6600

商业联合会数据分析专业委员会

 

 

Prev article

为什么您认为数据准备全错了?

Next article

视频数据流量对网络中立性的影响?

数据分析师

报名咨询

数据分析师

报名缴费

数据分析师

客服中心

数据分析师

课程服务

数据分析师

认证服务