- 如何打造数据治理闭环?以保[2022-06-16]
- 什么样的公司需要数据治理?[2022-06-15]
- “互联网+政务服务”下的数[2022-06-14]
- 我国数据安全治理研究[2022-06-13]
- 反洗钱视角下的数据治理[2022-06-10]
- 浅谈数据质量管理[2022-06-08]
- 做数据治理前,必须了解并避[2022-06-07]
- 企业数据治理团队的十大职[2022-06-06]
- 浅谈数据质量管理[2022-06-02]
- 数据治理的三种共享范式[2022-06-01]
构建AI前的数据准备,SQL要比Python强
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 来源:网络大数据