新知榜官方账号
2023-09-18 19:00:24
作为一名Web开发人员,我第一次与数据库和SQL产生交集是使用对象关系映射(ORM)。我使用的是Django查询集API,这个界面用户体验很好。之后,我转向数据工程方向,更多地利用数据集来构建AI。我的职责是从用户应用程序中获取数据,并将其转换为数据科学家可利用的内容,这一过程通常称为ETL(extract,transformandload)。
随着产业发展,生产系统中的数据非常混乱,需要进行大量转换才能用于构建AI。有些JSON列每行模式都不相同,有些列包含混合数据类型,有些行有错误值。此外,还需要计算「用户成为访问者的时间」以及「他们在两次访问间的等待时间」等特征。当我着手清理、聚合和管理数据特征时,我想确定哪种语言最适合该任务。
在之前的工作中我每天都使用Python,我知道它可以完成工作。但是,这次经历使我了解到,Python可以完成一项任务并不意味着这个任务就应该使用Python来做。
SQL转换不仅速度更快,而且代码也更易读,更易于维护。在这里,我使用lag和first_value函数来查找用户历史记录中的特定记录(即分区)。然后使用age函数来确定两次访问间的时间差。
更有趣的是,当这些转换脚本应用于6.5GB的数据集时,Python完全失败。在3次尝试中,Python崩溃了2次,第三次我的计算机完全崩溃......而SQL只耗时226秒。
这些发现完全改变了我做ETL的方法。我现在的工作模式是「不要将数据移动到代码中,而是将代码移动到数据中」。Python将数据移动到代码中,而SQL执行后者。更重要的是,我知道我只是触及了SQL和postgres的皮毛。我期待能发掘出更多出色的功能,使用分析库实现加速。
原文链接:https://towardsdatascience.com/python-vs-sql-comparison-for-data-pipelines-8ca727b34032
相关工具
相关文章
推荐
亲测真香!这6个AI工具让工作效率翻倍,同事追着问链接
2025-06-17 16:21
FLUX.1 Kontext 一出,AI生图领域 “地震” 了!
2025-06-06 15:38
用Deepseek写AI绘图提示词,像呼吸一样简单!
2025-02-19 16:12
你以为AI绘画是黑科技?其实早成了“路边摊生意”!
2025-02-19 10:15
Flux爆火,全网最全面最详细的Flux使用教程!
2025-02-18 14:19
用AI如何创作音乐,实战教学来啦!
2025-02-17 17:23
MidJourney让你秒变绘画大神,从零开始画哪吒!
2025-02-17 14:56
AI应用新境界:让人工智能成为你的得力助手
2025-02-14 15:45
AI短片革命:当创作遇上智能,人人都能成为导演
2025-02-14 14:53
AI狂潮下的人类职场:是失业危机还是进化契机?
2025-02-13 16:53