作为一名数据科学家,是否需要高级 SQL 才能具有竞争力?数据分析师精通 SQL 更重要吗?能够使用简单的 SQL 查询提取数据就足够了吗?
我知道在 SQL 中操作数据比将数据复制到 R 或 Python 中更快,但是还有其他优点或缺点吗?
作为一名数据科学家,是否需要高级 SQL 才能具有竞争力?数据分析师精通 SQL 更重要吗?能够使用简单的 SQL 查询提取数据就足够了吗?
我知道在 SQL 中操作数据比将数据复制到 R 或 Python 中更快,但是还有其他优点或缺点吗?
作为数据科学家,你对竞争的确切含义是什么?不幸的是,许多雇主对他们雇用的数据科学家有不同的期望,所以没有一个单一的答案!
无论如何,我认为了解三个对数据库有效的组件是个好主意:
管理连接:如何使用 Python 或 R 中的简单库创建和连接数据库。这种工作流程对您来说应该很熟悉:
import mysql
connection = mysql.connector.connect(
host="127.0.0.1",
user="mj_whales",
passwd="somethingsecret",
)
query = "CREATE DATABASE my_table"
cursor = connection.cursor()
cursor.execute(query)
获取数据:了解标准 SQL 样式查询的基本语法,例如:
FROM my_table SELECT my_feature WHERE my_other_feature > 0
写入数据:了解如何有效地插入数据。这将取决于数据库类型,例如文档数据库、SQL 样式、用于时间序列数据的 InfluxDB。
这是一个非常好的 Python 数据库介绍,可以帮助您了解您当前在该主题上的优势和劣势。
这是一个非常好的观点,恕我直言,它经常被数据科学家忽视和低估。我开始相信它在很大程度上取决于以下在很大程度上相互交织的变量(仅基于个人经验):
我见证了大多数电子商务、房地产经纪人、在线业务都是基于云的,例如 AWS、Azure,尤其是谷歌云平台,因为网站跟踪和 BigQuery 集成可以快速查询大数据。通常存储在那里的数据具有非常嵌套的(JSON 样式),旨在方便地存储数据内容和用户在商业网站中的交互。想象一下,如果您想开发一个新模型,例如处理一个需要原始数据的新概念,您需要提取数据(如果不是在普通 SQL 数据库中展平)。此类 SQL 查询不是简单的“SELECT X, Y from Table..”。您至少需要具备 SQL 的中级知识才能进行 UNNEST、聚合、合并,如果您不知道自己在做什么,事情可能会变得复杂和混乱。在这种情况下,通常数据足够大,您无法在 Pandas 中加载它。相比之下,在制造业中,通常需要处理物联网和机器数据,而这种复杂性并不存在!
人们普遍关心的是数据库或数据湖的情况。至少从 DS 的角度来看,问题在于数据不是为了构建模型或供算法使用而存储的。即使是分析,分析师最终也会编写自定义 SQL 查询来导入图表、A/B 测试和仪表板的数据。突然间必须有其他人在场,以便 DS 提取他们喜欢使用的任何数据,这听起来很奇怪。在构建数据湖的情况下,可能预见到潜在的 DS 用例,您的生活可能会变得更轻松,否则它会反弹回您自己,按照您的意愿导入数据。
尽管以上所有内容都是正确的,但在公司中如何实现角色也是如此,这在之前的答案中已指出。带着不同的心态,雇主或团队负责人开始组建团队。如果需要,您可以在一个地方帮助导入此类查询,另一个地方可以看到您执行数据分析师工作,甚至有时在某种程度上是数据工程师任务。如果随着时间的推移,您希望成为能够在需要时独立行动以完成工作的候选人组,那么您最好再次拥有至少中级 SQL 技能。
最后但并非最不重要的一点,显而易见,但为了完整起见,这里要说明的是,无论哪个领域,您都被分配从事哪个项目。例如,在同一家零售商公司中,您使用图像、视觉搜索、分类等等,即使您是使用 SQL 的超人,也没关系。但值得注意的是,您经常被指派终生从事一个项目,时不时地,您最终会做一些完全不同的事情,即 6 个月的视觉搜索和相似性,然后是价格优化,然后是推荐等等。最好具备最低限度的技术能力才能表现出色!
要点:根据这些变量在您工作的地方或您所做的事情中的变化情况,您可能需要作为数据科学家具备 SQL 的初级、中级或高级知识。在大多数情况下,每个人都可以在不到一周的时间内学习的 SQL 基础知识并不理想和足够。至少掌握中级知识会更好,这主要来自实践,而不是互联网浏览或在线教程。如果您正在为未来寻找投资,那么确定至少了解 SQL 查询的中级知识技能将增加您的职业机会,超出您的预期。
更新 [06.05.2020]:我遇到了 Google 的数据科学家/分析师的一篇题为“最佳中硬数据分析师 SQL 面试问题”的文章,其中他解释了超越中级 SQL 技能的知识动机。事实上,有一些例子可以通过一些典型的面试问题来刷新高级 SQL 技能。
更新 [13.05.2020]:我碰到一本书𝗦𝗤𝗟 N𝗼𝘁𝗲𝘀 𝗳𝗼𝗿 𝗽𝗿𝗼𝗳𝗲𝘀𝘀𝗶𝗼𝗻𝗮𝗹𝘀。 有很多适合专业人士的食谱。我想我会把这个添加到那些愿意将他们的 SQL 提升到一个新水平的 DS 的答案中。