Press "Enter" to skip to content

为什么SQL是数据科学学习的语言

“Python!”“不,是 R。”“笨蛋,显然是 Rust。”

许多数据科学学习者和专家都渴望找到最适合数据科学的语言。在我看来,大多数人都错了。在追寻最新、最性感的、最适合数据科学的编程语言的过程中,人们正在寻找错误的东西。

为什么SQL是数据科学学习的语言 四海 第1张

很容易忽视它。甚至可以将其视为一种语言。但是,谦逊的结构化查询语言(SQL)是我认为任何从事数据科学工作的人都必须掌握的基本要求。尽管其他语言确实都有自己的位置,但SQL是我认为不可妥协的语言。以下是原因。

数据库的通用语言

看吧,数据库和数据科学密不可分。这就是名称的原因。如果你从事数据科学工作,你就在处理数据库。而且,如果你在处理数据库,你可能正在使用SQL。

为什么呢?因为SQL是通用的数据库查询语言。没有其他。想象一下,如果有人告诉你,如果你学会了一种特定的语言,你就能与地球上的每个人说话和理解。这有多有价值?在数据科学领域,SQL就是这种语言,每个人都用它来管理和访问数据库。

为什么SQL是数据科学学习的语言 四海 第2张

每个数据科学家都需要访问和检索数据,探索数据并建立假设,过滤、聚合和排序数据。因此,每个数据科学家都需要使用SQL。只要你知道如何编写SQL查询,你就会走得更远。

现在,有人在阅读这篇文章时会提到NoSQL运动。确实,某些数据现在更常存储在非关系型数据库中,例如键值对或图数据。存储数据的方式有其优点-您可以获得更高的可伸缩性和灵活性。但是,并没有标准的NoSQL查询语言。您可能为一份工作学习了一种语言,然后需要为新工作学习一个完全不同的语言。

此外,您很少会找到一家完全使用NoSQL数据库的企业,而有很多公司不需要非关系型数据库。

数据清洗和处理

有一个著名的(已经被证明是错的)统计数据科学家花费80%的时间用于数据清洗。虽然这是不正确的,但我认为如果你问任何数据科学家他们花时间做什么,数据清洗一定会排在前五个任务中。这就是为什么这个部分是最长的。

你可以使用其他语言进行数据清洗和处理,但是SQL在某些方面提供了独特的优势。

SQL 的表达能力强的查询语言使得数据科学家能够使用简洁的语句高效地过滤、排序和聚合数据。这种灵活性在处理大型数据集时尤其有用,手动数据操作会耗费时间且容易出错。相比之下,使用类似Python这样的语言,要实现类似的数据操作可能需要编写更多的代码并处理循环、条件和外部库。虽然Python以其多功能性和丰富的数据科学库生态系统而闻名,但 SQL 的专注语法可以加快常规数据清洗操作 ,使数据科学家能够快速准备数据进行分析。

此外,任何数据科学家都会抱怨他们最讨厌的问题之一:缺失值。SQL的函数和处理缺失值的能力(如使用COALESCE、CASE和NULL处理)提供了解决数据中缺失值的简单方法,无需复杂的编程逻辑。

另一个数据科学家存在的问题是重复记录。幸运的是,SQL提供了有效的方法来识别和消除数据集中的重复记录,比如`DISTINCT`关键字和`GROUP BY`子句。

你可能听说过ETL流水线。那么,SQL可以用来创建数据转换流水线,将原始或半处理的数据转换为适合分析的格式。这对于自动化和标准化那些我们熟知和厌恶的重复数据清洗过程特别有益。

SQL的能力可以从不同的数据库或文件中合并表格,简化了合并数据进行分析的过程,对于涉及数据集成或从不同来源汇总数据的项目至关重要。对于数据科学家来说,这占据了大多数的项目。

最后,我想提醒人们数据科学并非在真空中进行。SQL查询是自包含的,可以轻松与同事共享。这促进了协作,确保其他人可以在没有人工干预的情况下重现数据清洗步骤。

 

与其他工具完美协同

 

现在,如果只懂SQL,你在数据科学领域会走得很远。但令人欣慰的是,SQL与其他顶级数据科学语言(如R、Python、Julia或Rust)完美集成。你既可以享受分析、数据可视化和机器学习的所有好处,又可以保留SQL在数据处理方面的优势。

 为什么SQL是数据科学学习的语言 四海 第3张 

当你考虑之前提到的数据清洗和处理时,这一点尤其强大。你可以使用SQL在数据库中直接预处理和清洗数据,然后依靠Python、R、Julia或Rust执行更高级的数据转换或特征工程,利用现有的广泛库。

许多组织依靠SQL(或更准确地说,依靠懂得如何使用SQL的数据科学家)生成报告、仪表盘和可视化内容,以支持决策-making。熟悉SQL使数据科学家能够直接从数据库中生成有意义的报告。并且由于SQL的广泛应用,这些报告通常在几乎任何系统中都兼容和互通。

由于SQL与Python、R和JavaScript等报告工具和脚本语言的互操作性,数据科学家可以实际上将报告过程自动化,将SQL的数据提取和处理能力与这些语言的可视化和报告功能无缝结合。结果就是您可以在一个地方获得全面而富有洞察力的报告,有效地向利益相关者传达基于数据驱动的见解。

 

工作机会

 

你会发现在任何数据科学面试中,都会问你一堆SQL面试问题。几乎每个数据科学岗位都要求至少有基本的SQL熟练程度。

这就是我所说的一个例子:工作列表上写着“熟练掌握SQL,以及用于数据分析和平台开发的R或Python。”换句话说,SQL是必备的。然后是R或Python,但对于大多数雇主来说,两者一个都行。但由于SQL的主导地位,没有SQL的替代方案。每个数据科学岗位都需要使用SQL。

有趣的是,它使SQL成为最终可转移工具。一个工作可能更喜欢Python,而初创公司可能由于个人偏好或传统基础设施而需要Rust。但无论你走到哪里,做什么,SQL都是必备的。花时间学习它,你总能符合一个工作要求。

最重要的是,如果你找到一份作为数据科学家的工作,而这份工作并不需要SQL,那么你可能不会进行太多的数据科学工作。

 

为什么SQL在数据科学中如此重要?

 

这实际上归结为数据库。数据科学需要存储、操作、检索和管理大量数据。这些数据存在于某个地方。通常只能使用一种工具来访问该数据,而这个工具就是SQL。SQL是数据科学中的必学语言,只要我们依赖数据库进行数据科学,它就将一直如此。 Nate Rosidi是一位数据科学家和产品策略师。他还兼职教授分析学,并创立了StrataScratch平台,帮助数据科学家准备面试,提供来自顶级公司的真实面试问题。在Twitter: StrataScratchLinkedIn与他联系。

****[Nate Rosidi](https://twitter.com/StrataScratch)****是一位数据科学家和产品策略师。他还兼职教授分析学,并创立了StrataScratch平台,帮助数据科学家准备面试,提供来自顶级公司的真实面试问题。在Twitter: StrataScratchLinkedIn与他联系。

Leave a Reply

Your email address will not be published. Required fields are marked *