《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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
1天前
|
关系型数据库 MySQL 分布式数据库
[PolarDB实操课] 05.通过源码部署PolarDB-X标准版
本课程介绍如何通过源码部署PolarDB-X标准版,涵盖基于Paxos的MySQL三副本工作原理和技术特点。主要内容包括: 1. **Paxos三副本工作原理**:讲解Leader和Follower节点的角色及数据同步机制。 2. **技术特点**:强调高性能、数据不丢失(RPO=0)和自动HA切换。 3. **源码部署步骤**:详细演示从编译生成RPM包到启动DN节点的过程,包括配置my.cnf文件和初始化数据库。 4. **高可用体验**:通过三台机器模拟三副本集群,展示Leader选举和故障转移机制,确保数据一致性和服务可用性。
|
1天前
|
关系型数据库 编译器 分布式数据库
PolarDB实操课] 04.通过源码部署PolarDB-X企业版
本次课程由PolarDB开源架构师王江颖分享,详细介绍了通过源码部署PolarDB-X企业版的全过程。主要内容包括: 1. **编译基础** 2. **使用源码编译部署PolarDB-X企业版** 3. **演示实例**:通过阿里云ECS进行实际操作演示,从创建用户、赋予权限到最终启动并连接PolarDB-X数据库,展示了完整的部署过程。 4. **总结**
|
2月前
|
SQL 数据挖掘 Python
数据分析编程:SQL,Python or SPL?
数据分析编程用什么,SQL、python or SPL?话不多说,直接上代码,对比明显,明眼人一看就明了:本案例涵盖五个数据分析任务:1) 计算用户会话次数;2) 球员连续得分分析;3) 连续三天活跃用户数统计;4) 新用户次日留存率计算;5) 股价涨跌幅分析。每个任务基于相应数据表进行处理和计算。
|
4月前
|
SQL 关系型数据库 C语言
PostgreSQL SQL扩展 ---- C语言函数(三)
可以用C(或者与C兼容,比如C++)语言编写用户自定义函数(User-defined functions)。这些函数被编译到动态可加载目标文件(也称为共享库)中并被守护进程加载到服务中。“C语言函数”与“内部函数”的区别就在于动态加载这个特性,二者的实际编码约定本质上是相同的(因此,标准的内部函数库为用户自定义C语言函数提供了丰富的示例代码)
|
5月前
|
SQL 存储 关系型数据库
PostgreSQL核心之SQL基础学习
PostgreSQL核心之SQL基础学习
69 3
|
5月前
|
SQL 安全 关系型数据库
PostgreSQL SQL注入漏洞(CVE-2018-10915)--处理
【8月更文挑战第8天】漏洞描述:PostgreSQL是一款自由的对象关系型数据库管理系统,支持多种SQL标准及特性。存在SQL注入漏洞,源于应用未有效验证外部输入的SQL语句,允许攻击者执行非法命令。受影响版本包括10.5及更早版本等。解决方法为升级PostgreSQL
358 2
|
5月前
|
前端开发 Java JSON
Struts 2携手AngularJS与React:探索企业级后端与现代前端框架的完美融合之道
【8月更文挑战第31天】随着Web应用复杂性的提升,前端技术日新月异。AngularJS和React作为主流前端框架,凭借强大的数据绑定和组件化能力,显著提升了开发动态及交互式Web应用的效率。同时,Struts 2 以其出色的性能和丰富的功能,成为众多Java开发者构建企业级应用的首选后端框架。本文探讨了如何将 Struts 2 与 AngularJS 和 React 整合,以充分发挥前后端各自优势,构建更强大、灵活的 Web 应用。
71 0
|
5月前
|
SQL 数据采集 算法
【电商数据分析利器】SQL实战项目大揭秘:手把手教你构建用户行为分析系统,从数据建模到精准营销的全方位指南!
【8月更文挑战第31天】随着电商行业的快速发展,用户行为分析的重要性日益凸显。本实战项目将指导你使用 SQL 构建电商平台用户行为分析系统,涵盖数据建模、采集、处理与分析等环节。文章详细介绍了数据库设计、测试数据插入及多种行为分析方法,如购买频次统计、商品销售排名、用户活跃时间段分析和留存率计算,帮助电商企业深入了解用户行为并优化业务策略。通过这些步骤,你将掌握利用 SQL 进行大数据分析的关键技术。
285 0
|
5月前
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
610 0
|
关系型数据库 分布式数据库 PolarDB
《阿里云产品手册2022-2023 版》——PolarDB for PostgreSQL
《阿里云产品手册2022-2023 版》——PolarDB for PostgreSQL
383 0

热门文章

最新文章

相关产品

  • 云原生数据库 PolarDB