《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL用SQL做数据分析(1)

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL用SQL做数据分析(1)

数据分析是近年来非常热门的话题,在金融、电商、制造等很多行业里面都需要用到数据分析。数据分析的工具多种多样,比如有些同学会用Excel做数据分析,在银行里面可能用SAS软件做数据分析,还有通过Python或R等编程语言来做数据分析。


本文想向大家展示一下在PolarDB里如何用纯SQL做数据分析,下文提到的PolarDB特指PolarDB for PG。


SQL是一门非常强大的数据分析语言,它围绕着二维表数据结构,除了提供增删改查这些基础功能之外,还提供了非常完整的数据操作、数据查询和数据处理的功能。此外,在本文里也会向大家展示通过PolarDB的插件,可以实现用SQL做数据可视化展示。


本文不是专业的数据分析入门教程,所以不需要大家有数据分析的背景;并且为了方便演示,数据分析的过程也会简化;过程中还会介绍一些SQL的简单语法,所以不需要有太多的背景知识。


image.png


本文由三个部分组成:

1.首先介绍如何搭建PolarDB的数据分析环境,包括安装PolarDB和相关插件。

2.然后介绍简单的数据分析知识,并通过两个案例展示如何用SQL做数据分析,过程中会穿插一些SQ的基础知识。

3.最后总结本文涉及到的数据库相关的知识点。


环境搭建


我们就先来看一下怎么去搭建一个数据分析的环境。


image.png


(一)选择一款支持sixel图片格式的终端软件


我们最终是在命令行环境下,通过PSQL命令行来运行数据分析的SQL,以及做数据可视化的展示,因此需要终端软件能支持sixel这种图片格式。上图中罗列了几款常见操作系统中能支持显示图片的终端软件:

·如果用的是MacOS操作系统,推荐使用iTerm2;

·如果用的是Linux操作系统,可以使用xTerm;

·如果用的是Windows,可以试一下Mintty。


(二)安装PolarDB及插件


环境搭建的方法有两种,第一种是从源码开始一步一步的手工编译,选择这种方式的同学可以上图中的链接,分别去编译安装PolarDB和编译安装插件。第二种办法比较简单也比较推荐,如果电脑上面有安装Docker的话,可以直接使用预先编译好的Docker容器。


(三)测试运行


环境搭建好了之后,启动PSQL进入到运行SQL的环境。大家可以试一试运行上图的SQL:`select show_logo()`,如果能在屏幕上面看到PolarDB的logo图片,那就说明已经安装成功了。


数据分析简介


环境搭建好之后,我们就可以开始动手做数据分析了。一般情况下做数据分析要有很多的工作要做,整个过程比较繁琐并且冗长,但是我们可以大致把它分成以下四个步骤。


image.png


1.获取数据:把数据加载到数据分析工具里,即先获得要分析的数据,再将数据导入到工具中。这些待分析的数据可能是散落在互联网上,也可能是在某个文件里面,总而言之我们得先获得想要分析的数据。但是,刚拿到手的数据,格式通常是五花八门的,比如下载的网页格式通常是HTML,有些数据是XML格式,也有些是JSON格式,甚至还有一些数据格式是自定义的,不是通用的格式。为了能分析这些数据,得先把这些数据做格式转换,转换成方便处理的结构化格式(例如CSV、JSON等),然后导入到分析工具中。


2.处理数据:提取特征数据。在真实的工作场景中,除了数据格式不统一,数据的内容往往也参差不齐,很少能直接拿到一份干净又完整的数据。比如有些样本数据会缺失部分特征、有些数据是明显的异常数据。所以在开始分析之前,还需要对数据做进一步的处理,比如用默认值填充缺失的值、过滤掉明显重复的或者异常的数据,这个步骤一般也叫“特征工程”,需要耗费比较长的时间才能把数据整理好。


3.分析数据:有了干净整齐的数据,才能真正开始分析数据。到目前为止,数据分析的工作还是非常依赖人工的,需要大家根据自己的经验来观察数据。此时,通常会把数据以各种图表的形式展示出来,人工观察并总结一些特征,再根据这些特征选择复杂度合适的模型,然后开始训练并不断调优。


4.预测数据:最后,等模型训练出来后,就可以拿它来预测新的数据,然后根据结果不断优化和升级模型。看到这里大家可能会有个疑问,这好像是做机器学习的模型训练。没错,因为机器学习的本质其实就是通过数学建模来理解数据和分析数据,机器学习就是一种数据分析的方法。在后文的案例演示中,也会用到一些机器学习的算法,来帮助我们更好地理解和分析数据。


鸢尾花聚类分析案例


鸢尾花数据集是一个非常经典的数据集,通常是会用来做聚类或分类问题的入门数据。它包含150个样本,包括了三种鸢尾花,分别是山鸢尾、变色鸢尾和维吉尼亚鸢尾。每种花分别有50个样本,并且每个样本都包含花萼的长度与宽度,还有花瓣的长度与宽度,总共有四个特征,以及它属于哪种花。


image.png


如上图所示,第一个表格的第一行山鸢尾的花萼长度是5.1、花萼宽度是3.5、花瓣长度是1.4、花瓣宽度是0.2,这些信息我们拿到手之后,就可以基于它们去做一些分析,总结出这四个特征与鸢尾花品种的关系。


鸢尾花的数据大家可以在互联网上下载到,如果已经根据前面的安装指南成功安装了PolarDB以及相关插件,插件里面已经包含这份数据。


《PolarDB for PostgreSQL源码与应用实战》——PolarDB for PostgreSQL用SQL做数据分析(2) https://developer.aliyun.com/article/1232910?groupCode=polardbforpg









相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
17天前
|
数据库
|
2月前
|
关系型数据库 分布式数据库 数据库
开源云原生数据库PolarDB PostgreSQL 15兼容版本正式发布
PolarDB进行了深度的内核优化,从而实现以更低的成本提供商业数据库的性能。
|
3月前
|
SQL 关系型数据库 MySQL
linux 上源码编译安装 PolarDB-X
linux 上源码编译安装 PolarDB-X
182 6
linux 上源码编译安装 PolarDB-X
|
2月前
|
SQL 关系型数据库 C语言
PostgreSQL SQL扩展 ---- C语言函数(三)
可以用C(或者与C兼容,比如C++)语言编写用户自定义函数(User-defined functions)。这些函数被编译到动态可加载目标文件(也称为共享库)中并被守护进程加载到服务中。“C语言函数”与“内部函数”的区别就在于动态加载这个特性,二者的实际编码约定本质上是相同的(因此,标准的内部函数库为用户自定义C语言函数提供了丰富的示例代码)
|
3月前
|
SQL 存储 关系型数据库
PostgreSQL核心之SQL基础学习
PostgreSQL核心之SQL基础学习
45 3
|
3月前
|
SQL 安全 关系型数据库
PostgreSQL SQL注入漏洞(CVE-2018-10915)--处理
【8月更文挑战第8天】漏洞描述:PostgreSQL是一款自由的对象关系型数据库管理系统,支持多种SQL标准及特性。存在SQL注入漏洞,源于应用未有效验证外部输入的SQL语句,允许攻击者执行非法命令。受影响版本包括10.5及更早版本等。解决方法为升级PostgreSQL
256 2
|
3月前
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
364 0
|
4月前
|
关系型数据库 分布式数据库 数据库
PolarDB产品使用问题之如何进行PostgreSQL(简称PG)的全量和增量备份管理
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
1月前
|
关系型数据库 MySQL 分布式数据库
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶,邀请好友完成更有机会获得​小米Watch S3、小米体重称​等诸多好礼!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
|
2月前
|
关系型数据库 MySQL Serverless
探索PolarDB MySQL版:Serverless数据库的灵活性与性能
本文介绍了个人开发者对阿里云PolarDB MySQL版,特别是其Serverless特性的详细评测体验。评测涵盖了产品初体验、性能观测、Serverless特性深度评测及成本效益分析等方面。尽管试用过程中遇到一些小问题,但总体而言,PolarDB MySQL版表现出色,提供了高性能、高可用性和灵活的资源管理,是个人开发者和企业用户的优秀选择。

热门文章

最新文章

相关产品

  • 云原生数据库 PolarDB