「数据科学」数据科学家为什么应该学习PostgreSQL?

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 「数据科学」数据科学家为什么应该学习PostgreSQL?

SQL是成为数据科学家的必要条件吗?答案是肯定的。数据科学已经发展了,虽然许多数据科学家仍然使用CSV文件(值以逗号分隔的文本文件),但它们不是最好的选择。Python Panda库允许从CSV文件加载数据,但是这些文件有许多约束。例如,它们通常不连接到数据库,这就要求您在每次更新数据时生成一个新的CSV文件提取。在大数据时代,这是完全不切实际的。

关系数据库为使用大数据存储库提供所需的支持和敏捷性。PostgreSQL是领先的关系数据库管理系统之一。专为处理大型数据集而设计的Postgres是数据科学的完美匹配。在本文中,我们将介绍在数据科学中使用Postgres的优点和缺点。



什么是数据科学家?

数据科学是近年来最受欢迎的职业选择之一。随着组织管理着巨大的数据集,对能够从中提取有价值信息的专家的需求也在增加。

数据科学家处理大数据,帮助组织从数据中获得可操作的见解。例如,他们可以发现一个市场利基,或者根据最新的市场趋势改进公司的产品。

数据科学的领域和它所操作的数据一样多样化,但有一些核心技能是每个数据科学家都应该具备的。

  • 编程技能:数据科学家使用编码来分析和处理信息,所以有很强的编程技能是很重要的。数据库和统计编程语言,如SQL或R,是必须的。数据科学家了解的编程语言越多,可以应用的工具越多,效果就越好。
  • 统计和数学技能:数据科学需要处理统计数据。您需要正确的算法从数据集提取您想知道的内容。要做到这一点,数据科学家需要对统计学和数学概念有很强的掌握。

技术技能是必须的。然而,数据科学家也需要软技能,比如决心、对细节的关注和分析能力。在数据科学领域工作的两个基本技能是好奇心和灵活性。例如,数据科学家经常需要为数据问题提出开箱即用的算法。

PostgreSQL是什么?

关系数据库管理系统(RDBMS)。这个开源平台是由PostgreSQL全球开发小组开发的,该小组由公司和个人贡献者组成。它得到了广泛的软件即服务(SaaS)解决方案市场的支持,这些解决方案用于在云中和本地运行Postgres。

PostgresSQL的主要功能包括:

  • 免费许可:该平台可以免费下载、使用、扩展和分发。
  • 复杂查询支持:Postgres的基本特性之一是处理复杂查询的能力。复杂查询是从数据库发出的请求,超出了SELECT和WHERE等基本SQL请求的范围。
  • 多版本并发控制:该特性允许不同的用户同时对数据库进行读写操作。
  • 用户定义类型:用户可以自定义函数来定义单个数据类型。数据科学家使用已知或未知的数据。将两种或三种数据类型组合成一种新的数据类型,可以帮助数据科学家解决来自不同来源的大量数据的复杂问题。
  • 高度符合SQL ISO/ iec9075标准:PostgreSQL满足164个强制特性中的150个,完全符合标准要求。从一开始,遵从SQL标准就一直是Postgres的优先事项。
  • 强大的社区支持:Postgres拥有一个庞大的贡献者社区,他们致力于扩展和开发这个平台。有广泛的支持文档和论坛。
  • 编程语言支持:PostgresSQL支持所有主要的编程语言,如Python、C和Java。它还通过JSON支持NoSQL查询。
  • 多环境支持:PostgreSQL的特点之一是支持

云计算和本地环境。这称为多环境或跨环境支持。RightScale最近的一份报告显示,大多数使用Postgres的组织选择了一种混合的云环境,即内部配置和云系统的混合。

Postgres对数据科学的利弊

PostgresSQL支持大数据,为文档添加了JSON-B,为地理定位系统添加了PostGIS。它允许用户根据自己的工作负载调整平台。

该平台在混合事务/分析处理(HTAP)中结合了数据分析和事务功能。该特性使数据库能够同时执行在线分析处理(OLAP)和在线事务处理(OLTP)。例如,组织可以使用Postgres中的HTAP技术来管理来自物联网设备和其他操作应用程序的信息。

由于Postgres的灵活性和可扩展性,它在数据科学家中非常流行。但是,它不将数据存储在列中,这使得大型数据仓库很难处理这些数据。

在数据科学中使用PostgresSQL有利有弊。以下是一些优点和缺点:

优点

  1. SQL Rich:由于强调SQL标准遵从性,所以Postgres支持很多SQL语法。这包括公共表表达式、表继承和Windows函数。
  2. 非结构化数据支持:Postgres支持NoSQL数据,如XML、JSON和HStore。
  3. 并行查询:该特性允许同时运行处理器中的所有核心。这在数据科学中尤其重要,因为在数据科学中经常运行一个通用查询。
  4. 声明式分区:该功能可以指定如何将表划分为称为分区的部分。例如,当处理地理上分布的大型研究数据集时,这使您能够为每个区号分离不同的分区。

缺点

  1. 没有压缩:没有足够的空间会限制某些分析的性能。压缩数据有助于避免在向云中上传数据时形成瓶颈。PostgreSQL不提供数据压缩,这使得上传数据的速度慢得多。
  2. 无列:分析数据库通常以列而不是行存储数据。Postgres缺少列状表,这使得数据难以摄取。例如,如果您有一个包含300列的表,那么您需要将它分成两个或更多的表来读取它。
  3. 没有内置机器学习:这可能是最大的缺点,因为机器学习对于处理大数据至关重要。机器学习需要自己处理大量的数据来进行学习,而这种内置的特性可以帮助数据科学以一种高效的方式处理巨大的数据集,即使有人工干预,也是最少的。您可以添加Apache MADLib,这是一个用于机器学习的开源数据库算法库,但遗憾的是,它不能在Windows上运行。幸运的是,您可以通过使用一个sci-kit-learn库安装PLP/Python来克服这个挑战,从而直接在Postgres中编写您自己的机器学习算法。

你可以在哪里学习基础?

要学习PostgreSQL,您应该从SQL基础知识开始。这将为您构建PostgreSQL知识提供一个坚实的基础。你可以从免费的教程中学习,比如Codecademy。一旦您掌握了SQL的基础知识,您就可以开始学习如何将它与Postgres一起使用。

虽然从文档中学习可能是最彻底的方法,但也可能很乏味。网上有许多免费和付费的PostgreSQL课程。其中包括:

  1. PostgreSQL Tutorial: :这个免费的教程涵盖了Postgres的基础知识,包括基本的功能。
  2. Postgres Video Course::这个免费视频课程使用Postgres来教初学者SQL的基础。
  3. Postgres Administration Essentials:这个全面的培训面向数据库管理员和架构师。虽然课程本身是免费的,但该项目需要订阅。
  4. Postgres for Data Engineers: 这个付费课程是为数据工程师准备的,用数据科学的例子和案例涵盖了Postgres的基础知识。

总结

PostgreSQL为数据科学提供了一种低成本、功能强大的处理解决方案。最大的问题是它不提供数据压缩。您可以通过批量上传或仅在云环境中运行数据库来解决这个问题。

尽管如此,一个刚起步的数据科学家还是应该认真考虑学习PostgreSQL。Postgres可以帮助您准备使用大多数数据科学工具,成为掌握数据库知识的瑞士军刀。

首席点评

基于数据库的机器学习技术在将来将成为主流,因为数据库技术简单并且有广泛的使用基础,Apache 有开源项目Madlib 就是一个基于SQL的大数据机器学习项目,支持Postgresql和GreemPlum.

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
关系型数据库 数据库 C语言
PostgreSQL服务端开发学习 -- Datum
在使用C语言开发PostgreSQL后端、客户端应用时,Datum无处不在,所以必须要对Datum有很清楚的了解。
|
4月前
|
SQL 存储 关系型数据库
新手如何入门学习PostgreSQL?
新手如何入门学习PostgreSQL?
|
4月前
|
SQL 存储 关系型数据库
PostgreSQL核心之SQL基础学习
PostgreSQL核心之SQL基础学习
59 3
|
5月前
|
SQL 存储 关系型数据库
关系型数据库PostgreSQL学习
【7月更文挑战第4天】
459 2
|
关系型数据库 C语言 PostgreSQL
PostgreSQL服务端开发学习 -- fmgr.h
fmgr按官方的解释就是Postgres函数管理器和函数调用接口,在使用C语言开发PostgreSQL后端应用时,所以与backend交互时必须遵循fmgr.h中定义的一些规范。
|
7月前
|
SQL 监控 关系型数据库
postgresql|数据库|插件学习(二)---postgresql-12的外置插件pg_profile的启用和使用
postgresql|数据库|插件学习(二)---postgresql-12的外置插件pg_profile的启用和使用
232 0
|
7月前
|
SQL 监控 关系型数据库
postgresql|数据库|插件学习(一)---postgresql-12的内置插件pg_stat_statements的启用和使用
postgresql|数据库|插件学习(一)---postgresql-12的内置插件pg_stat_statements的启用和使用
198 0
|
关系型数据库 分布式数据库 PolarDB
《阿里云产品手册2022-2023 版》——PolarDB for PostgreSQL
《阿里云产品手册2022-2023 版》——PolarDB for PostgreSQL
373 0
|
存储 缓存 关系型数据库
|
存储 SQL 并行计算
PolarDB for PostgreSQL 开源必读手册-开源PolarDB for PostgreSQL架构介绍(中)
PolarDB for PostgreSQL 开源必读手册-开源PolarDB for PostgreSQL架构介绍
429 0
下一篇
DataWorks