数据空间
您当前的位置: 首页 /数据知识

构建AI前的数据准备,SQL要比Python强

发布时间:[2019-07-02] 来源:网络大数据
点击量:

中国企业数据治理联盟www.chinaedg.com/

进入》主数据管理    企业数据治理   信息资源规划   数据安全管理

Python 可以完成某项任务,并不意味着这个任务就应该使用 Python 来做。

作为一名 Web 开发人员,我第一次与数据库 SQL 产生交集是使用对象关系映射(ORM)。我使用的是 Django 查询集 API,这个界面用户体验很好。之后,我转向数据工程方向,更多地利用数据集来构建 AI。我的职责是从用户应用程序中获取数据,并将其转换为数据科学家可利用的内容,这一过程通常称为 ETL (extract, transform and load)

随着产业发展,生产系统中的数据非常混乱,需要进行大量转换才能用于构建 AI。有些 JSON 列每行模式都不相同,有些列包含混合数据类型,有些行有错误值。此外,还需要计算「用户成为访问者的时间」以及「他们在两次访问间的等待时间」等特征。当我着手清理、聚合和管理数据特征时,我想确定哪种语言最适合该任务。在之前的工作中我每天都使用 Python,我知道它可以完成工作。但是,这次经历使我了解到,Python 可以完成一项任务并不意味着这个任务就应该使用 Python 来做。

我对 SQL 的第一个误解是:SQL 无法进行复杂的转换

我们正在处理一个时间序列数据集,我们希望能够跟踪特定用户。隐私法规不允许获取用户访问的具体日期,因此我们决定将记录日期归一化为用户首次访问的日期(如首次访问后 5 天等)。对于我们的分析,重要的是要知道离上次访问过去了多久以及离首次访问过去了多久。A 有两个样本数据集,一个有大约 750 万行,大小为 6.5 GB,另一个有 55 万行,大小为 900MB

我使用下面的 Python SQL 代码先在较小的数据集上测试转换。Python SQL 分别花费 591 秒和 40.9 秒完成了任务。这意味着 SQL 的速度是 Python 的大约 14.5 !

编辑:hely 来源:网络大数据


发表评论 共有条评论
用户名: 密码:
匿名发表