新知榜官方账号
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
相关工具
相关文章
推荐
阿里Accio中文版上线!一键搞定复杂采购
2025-08-19 09:13
视频“用嘴编辑”的时代来了,但钱包顶得住吗?
2025-08-15 17:59
智谱新模型GLM-4.5V全面开源,玩家们有福啦!
2025-08-12 17:56
扎心文案+AI插画=爆款!揭秘8万赞视频的制作全流程
2025-08-12 10:08
GPT-5没你想的那么好,附实测体验~
2025-08-11 11:07
一站式搞定AI绘图+视频,AI短片效率飙升的秘密在这儿!
2025-08-08 09:26
打工人新神器!10款国产AI,让你告别996!
2025-08-08 09:24
豆包视觉推理深度体验,AI也能“边看边想”了!
2025-08-08 09:19
300美元的AI男友来了!马斯克的情感生意从女友做到男友
2025-08-01 17:56
Agent智能体:2025年企业新员工,月薪仅需一度电?
2025-07-30 17:49