数据科学家如何将预测建模与 SQL 集成?

数据挖掘 r sql
2021-10-15 09:28:53

我听说过很多关于了解 SQL 的重要性,但是你们在大公司如何将用于建模/分析的软件与保存数据的服务器集成?

您是否只是访问一些 SQL Workbench 并下载一个 .csv 文件,然后在您的软件中读取该文件?或者您是否直接通过您的软件访问服务器?

这个问题来自一个学过 SQL 但从未学会如何与 R 同步的人。

4个回答

无需下载 CSV 格式的数据,在大多数情况下,这实际上是不好的做法。考虑数据大小 > 1GB 并且每天更新的情况。这会增加相当大的开销并且不容易自动化。

相反,您可以查看用于从 SQL 数据库中获取数据的各种 R 包。使用RODBCSQLitesqldf或其他可用库,您可以将数据导入 R、运行查询、创建表、更新表以及几乎所有您需要的东西。

同意@mincorp 关于 RODBC 的看法,并且我们在生产中大部分时间不使用 Workbenches 和 csvs。

此外,“生产”数据科学也倾向于存在于separate box数据库中。这可能是出于性能原因;有些模型很大,大多数 DBA 不喜欢你在他们无法真正控制的过程中占用资源。也可能是出于维护原因;通过“拥有自己的硬件”(即使它是 AWS EC2),您可以根据需要拆除、重新部署和重新架构,而不会影响数据库。

做这些之间的管道是我近年来最大的学习曲线,也是我完全没有预料到的数据科学的一部分,直到我做了一段时间之后。

学习如何为自己的模型制作接口并维护自己的工作是数据科学家的秘诀。

dbplyr是一个相对较新的包,它将复杂的 R 命令转换为 SQL 语句,然后在 DB 服务器上执行。

特别是对于聚合数据集或连接、过滤的数据集,这会带来性能优势。无需通过网络获取大量行,即可在本地执行处理;您还可以从 RDBMS 获得索引和可能的其他优化。

这篇关于dbplyr 1.4.0的文章展示了这个包变得多么聪明。

有像 RODBC 这样的包允许直接从连接中获取数据集,还有其他包和方法可以做到这一点,但我认为这证明了可以将查询与分析集成的观点。

RODBC