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

news2024/11/16 13:37:45

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

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


f0f2659cb0b9b885e542ffd70ad781a8.jpeg

什么是数据科学家?

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

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

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

  • 编程技能:数据科学家使用编码来分析和处理信息,所以有很强的编程技能是很重要的。数据库和统计编程语言,如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.

本文 :https://architect.pub/why-you-should-learn-postgresql-data-science
讨论:知识星球【首席架构师圈】或者加微信小号【ca_cto】或者加QQ群【792862318】
公众号

【jiagoushipro】
【超级架构师】
精彩图文详解架构方法论,架构实践,技术原理,技术趋势。
我们在等你,赶快扫描关注吧。
20c9f8ee16ffd3e1542318fd6aef47f9.jpeg
微信小号

【ca_cea】
50000人社区,讨论:企业架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化.

4a5bfc6f501dd3fcb0c5ecdfea287c9f.jpeg

QQ群

【792862318】深度交流企业架构,业务架构,应用架构,数据架构,技术架构,集成架构,安全架构。以及大数据,云计算,物联网,人工智能等各种新兴技术。
加QQ群,有珍贵的报告和干货资料分享。

7d8decfd2ef783f19348914d806a564b.jpeg

视频号【超级架构师】
1分钟快速了解架构相关的基本概念,模型,方法,经验。
每天1分钟,架构心中熟。

13d162e8c01bd38791ff88148879b8c9.jpeg

知识星球【首席架构师圈】向大咖提问,近距离接触,或者获得私密资料分享。

534e6158ded5bb89e24bfa4dc7826ba2.jpeg

喜马拉雅【超级架构师】路上或者车上了解最新黑科技资讯,架构心得。【智能时刻,架构君和你聊黑科技】
知识星球认识更多朋友,职场和技术闲聊。知识星球【职场和技术】
微博【超级架构师】智能时刻
哔哩哔哩【超级架构师】

371548b3d55f7792ddd8b9fb5ae2e9e4.jpeg

抖音【cea_cio】超级架构师

cad5336ab522c5ea309f2e2b740604ba.jpeg

快手【cea_cio_cto】超级架构师

0bf0a9d9aa14de67efb800401e116bf2.jpeg

小红书【cea_csa_cto】超级架构师

93628c65b7427c104023bd265122950f.jpeg

网站CIO(首席信息官)https://cio.ceo
网站CIO,CTO和CDOhttps://cioctocdo.com
网站应用开发和开发平台https://apaas.dev
网站开发信息网https://xinxi.dev
网站首席架构师社区https://jiagoushi.pro
网站超级架构师https://jiagou.dev
网站企业技术培训https://peixun.dev
网站程序员宝典https://pgmr.pub    
网站程序员云开发分享https://pgmr.cloud
网站开发者闲谈https://blog.developer.chat
网站CPO宝典https://cpo.work
网站架构师实战分享https://architect.pub    ‍
网站首席安全官https://cso.pub    ‍
网站CIO酷https://cio.cool
网站CDO信息https://cdo.fyi
网站CXO信息https://cxo.pub

谢谢大家关注,转发,点赞和点在看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/354944.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

各种常用C/C++集成开发环境的安装与配置

新学期又开始了,帮助又一堆菜鸟安装和配置C/C集成开发环境是一件恼人的工作。 本文引用自作者编写的下述图书; 本文允许以个人学习、教学等目的引用、讲授或转载,但需要注明原作者"海洋饼干叔 叔";本文不允许以纸质及电子出版为目的…

【k8s】如何搭建搭建k8s服务器集群(Kubernetes)

搭建k8s服务器集群 服务器搭建环境随手记 文章目录搭建k8s服务器集群前言:一、前期准备(所有节点)1.1所有节点,关闭防火墙规则,关闭selinux,关闭swap交换,打通所有服务器网络,进行p…

Bash Shell 通过ls命令筛选文件

Bash Shell 通过ls命令及其管道根据大小名称筛选文件 最近参与的项目当中有需要用pyarmor加密项目的要求,听网上吹的pyarmor都那么神,用了一下感觉也一般,试用版普通模式下文件加密居然还有大小32KB的限制,加密到一半就失败了&am…

Linux常用命令汇总

1、tcpdump抓包 tcpdump这个命令是用来抓包的,默认情况下这个命令是没有的,需要安装一下: yum install -y tcpdump 使用这个命令的时候最好是加上你网卡的名称,不然可能使用不了: tcpdump -nn -i {网卡名称} 网卡名称…

iOS开发笔记之九十六——本地Data Persistence总结笔记

本质上来说,不管是哪种缓存方式最终都会以文件的形式存储在磁盘上,只不过上层进行了某种“封装”或“抽象”,所以还是做了分类,目前iOS本地持久化缓存(Storage/Persistence)有以下几种形式:User…

vTESTstudio - VT System CAPL Functions - VT2004(续1)

成熟,就是某一个突如其来的时刻,把你的骄傲狠狠的踩到地上,任其开成花或者烂成泥。vtsStartStimulation - 启动激励输出功能:自动激励输出注意:在启动激励输出之前,一定要设置好输出模式Target:目标通道变量空间名称,例…

TLB内存页表 - LoongArch

TLB内存页表 - LoongArch 文章目录TLB内存页表 - LoongArch页表操作指令TLB相关寄存器页表格式CpuSetAttributesUEFI Memory attribute页表操作指令 LDDIR: 用于软件页表遍历过程中目录项的访问. LDPTE: 用于在软件页表遍历过程中页表项的访问. INVTLB: 用于无效TLB中的内容. …

Mybatis源码分析:Mybatis的数据存储对象

前言:SQLSession是对JDBC的封装 一:SQLSession和JDBC的对照说明 左边是我们的客户端程序,右边是我们的MySQL数据仓,或者叫MySQL实例 Mybatis是对JDBC的封装,将JDBC封装成了一个核心的SQLSession对象 JDBC当中的核心对…

2023年浙江理工大学MBA招生考试初试成绩查询及复查的通知

根据往年的情况,2023浙江理工大学MBA考试初试成绩可能将于2月21日下午两点公布,为了广大考生可以及时查询到自己的分数,杭州达立易考教育为大家汇总了信息。 一、成绩查询考生可登录中国研究生招生信息网“全国硕士研究生招生考试初试成绩查询…

二十四节气—雨水,好雨知时节,当春乃发生。

雨水,是二十四节气之第2个节气。 雨水节气不仅表明降雨的开始及雨量增多,而且表示气温的升高,意味着进入气象意义的春天。 雨水节是一个非常富有想象力和人情味的节气,在这一天,不管下不下雨都充满着一种雨意蒙蒙的诗…

nps内网穿透工具

一、准备一台有公网ip的服务器 https://github.com/ehang-io/nps/releases 在这个地址下载服务端的安装包,centos的下载这个 上传到服务器上。 二、然后解压,安装,启动 [rootadministrator ~]# tar xzvf linux_amd64_server.tar.gz [roo…

【C语言】预编译

🚩write in front🚩 🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 🏅2021年度博客之星物联网与嵌入式开发TOP5&#xff5…

[架构之路-110]-《软考-系统架构设计师》-软件架构设计-3-架构描述语言ADL与UML

前言:第3节 架构描述语言ADL3.1 ADL概述3.1.1 什么是ADLADL,即架构描述语言(Architecture Description Language)。两个重要的团体在使用架构描述语言术语。它们是:软件工程团体企业建模和工程团体。在软件工程团体,架构描述语言&…

Jvm -堆对象的划分

堆对于一个jvm进程来说是唯一的,一个进程只有一个jvm,但是进程半酣多个线程,多个线程共享一个堆。 也就是说,一个jvm实例只存在一个堆,同时对也是Java内存管理的核心区域。 Java堆区域的大小在jvm启动时就已经被确定…

基于springboot+vue的儿科保健计划免疫系统

基于springbootvue的儿科保健计划免疫系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背…

HDMI协议介绍

HDMI全称(High Definition Multimedia Interface)高清多媒体接口,支持在单线缆上传输全数字高清视频和多声道音频。 HDMI基于TMDS协议传输,主要用于DVD, 机顶盒等音视频source到TV,显示器等sink设备的传输。HDMI向下兼…

SpringBoot学习笔记:SpringBoot集成JPA-01

文章目录概述JPA的优点在Springboot中集成步骤1.新建springboot项目步骤2.引入相关jar包,pom.xml文件如下:步骤3. 配置文件application.properties设置步骤4. 定义表的ORM对象类步骤5. 实现数据库操作接口(Dao)步骤6. 实现Controller测试概述 JPA是一种规范&#x…

PHP学习笔记(一谦四益)

前言 上一篇文章 PHP学习笔记(观隅反三)分享了数组的知识,这篇文章接着分享和数组相关的算法。 算法效率 算法效率分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称…

SpringSecurity认证

文章目录登陆校验流程依赖yaml实现建表、工具类、实体类加密器、AuthenticationManager登录逻辑登录过滤器、配置过滤器登出登陆校验流程 认证 登录: ​ ①自定义登录接口 ​ 调用ProviderManager的方法进行认证 如果认证通过生成token,根据userId把用…

国密SM2算法(JS加密,C#、Java解密)

常见的渗透测试会将网站登录时密码使用明文传输视为风险。推荐使用国密算法或者RSA算法对密码进行加密传输。 RSA加密(JS加密,C#、Java解密)请参考《RSA对称加密(JS加密,C#、Java解密)》​​​​​​ 本文…