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

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

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


3、其他预置数据

如前文演示中看到的,dataset目录下面还有其他预先准备好的CSV数据,都可以手工创建表,然后用COPY命令把数据导进来。为了方便使用,PolarDB的插件其实还额外提供了一批以load开头的函数,执行这些函数就能自动创建数据库的表,并把CSV的数据导入到表中。如下图所示:


image.png


目前插件里包含了这5份数据,分别是波士顿房价数据、鸢尾花数据、糖尿病数据、手写数字数据,以及苹果公司股价数

据。其中房价数据、糖尿病数据和股价数据可以用来做回归分析,另外两份数据可以用来做分类分析。


(二)处理数据


1、定义缺失值


鸢尾花这150条数据是非常完整并且干净的数据,如前文所说,现实工作中的数据往往会有许多缺失值或者异常值,需要

先对数据做清洗。比方说,如果我们现在插入一条新的鸢尾花的样本,但部分的数据缺失了,希望分析工具在数据缺失的

时候自动填充上默认值(例如0)。PolarDB里面有一个数据库字段默认值的功能,在数据库字段缺失的时候,就会自动

使用默认值来填充。


image.png


如上图所示,给字段加默认值有两种方法:第一种是在表还不存在的时候,创建表的时候直接定义字段的默认值,就像

图中左边的代码一样,也用到了CREATE TABLE;第二种是表已经创建好了,想给已经存在的字段添加默认值或者修改默认值,这时候就需要用到另一个命令,ALTER TABLE,代码就像图中右边一样,给刚刚创建的表前4个字段全部加上默认值。


2、使用缺失值


定义好了默认值,接下来就可以通过INSERT命令来插入默认值了。


image.png


如上图所示,PolarDB中有两种INSERT方式可以用到默认值:第一种就像左边的代码,在INSERT的时候,不指定有默认值的列;第二种,指定了列,但values里面用default关键字。这两种方式都能用上默认值,但用COPY导入数据的话,能

不能用上默认值呢?我们来测试一下。

再看一下flower表的定义:


image.png


其中每个字段的默认值是空(即null)。尝试插入一行脏数据,除了品类,其他的字段都不指定:


image.png


可以看到现在插进来的这行数据里面,其他字段的值都是空的。接着用Alter Table去添加数据库字段的默认值:`alter table flowers alter column sepal_length set default 0, alter column sepal_width set default 0, alter column patal_length set default 0, alter column patal_width set default 0`。再次查看flowers表的定义:


image.png


现在字段的默认值都已经有了,全部都是0。然后再试试重新insert一条bad2的脏数据:


image.png


此时,bad2的其他字段都是0。可以再试试另外一种用default关键词的insert的方式:


image.png


可以看到bad2与bad3都使用了默认值0。最后再测试一下COPY命令是否可以用到默认值。首先清空数据:


image.png


然后编辑test.csv,手工加入3行脏数据。最后通过COPY命令,把test.csv的数据导进来:


image.png


一共导入了153行,但脏数据的字段依然为空:


image.png


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






相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
9天前
|
SQL 数据挖掘 Python
数据分析编程:SQL,Python or SPL?
数据分析编程用什么,SQL、python or SPL?话不多说,直接上代码,对比明显,明眼人一看就明了:本案例涵盖五个数据分析任务:1) 计算用户会话次数;2) 球员连续得分分析;3) 连续三天活跃用户数统计;4) 新用户次日留存率计算;5) 股价涨跌幅分析。每个任务基于相应数据表进行处理和计算。
|
2月前
|
存储 关系型数据库 分布式数据库
揭秘PolarDB:中国云原生数据库的超级英雄,如何颠覆传统数据存储?
在数字化时代,数据成为企业的核心资产,而云原生数据库则是推动企业转型的关键。PolarDB凭借其先进的存储计算分离架构,在性能、可靠性和易用性方面脱颖而出,成为国内领先的选择。它支持多种数据库引擎,提供多副本存储机制,并采用按量付费模式,有效降低管理和成本压力,助力企业实现高效、可靠的数字化转型。
67 1
|
2月前
|
SQL 关系型数据库 C语言
PostgreSQL SQL扩展 ---- C语言函数(三)
可以用C(或者与C兼容,比如C++)语言编写用户自定义函数(User-defined functions)。这些函数被编译到动态可加载目标文件(也称为共享库)中并被守护进程加载到服务中。“C语言函数”与“内部函数”的区别就在于动态加载这个特性,二者的实际编码约定本质上是相同的(因此,标准的内部函数库为用户自定义C语言函数提供了丰富的示例代码)
|
3月前
|
SQL 存储 关系型数据库
PostgreSQL核心之SQL基础学习
PostgreSQL核心之SQL基础学习
44 3
|
3月前
|
Cloud Native 关系型数据库 分布式数据库
云原生数据库2.0问题之PolarDB利用云计算技术红利如何解决
云原生数据库2.0问题之PolarDB利用云计算技术红利如何解决
|
3月前
|
Cloud Native 关系型数据库 分布式数据库
云原生关系型数据库PolarDB问题之PolarDB相比传统商用数据库的优势如何解决
云原生关系型数据库PolarDB问题之PolarDB相比传统商用数据库的优势如何解决
39 1
|
3月前
|
前端开发 Java JSON
Struts 2携手AngularJS与React:探索企业级后端与现代前端框架的完美融合之道
【8月更文挑战第31天】随着Web应用复杂性的提升,前端技术日新月异。AngularJS和React作为主流前端框架,凭借强大的数据绑定和组件化能力,显著提升了开发动态及交互式Web应用的效率。同时,Struts 2 以其出色的性能和丰富的功能,成为众多Java开发者构建企业级应用的首选后端框架。本文探讨了如何将 Struts 2 与 AngularJS 和 React 整合,以充分发挥前后端各自优势,构建更强大、灵活的 Web 应用。
58 0
|
3月前
|
SQL 数据采集 算法
【电商数据分析利器】SQL实战项目大揭秘:手把手教你构建用户行为分析系统,从数据建模到精准营销的全方位指南!
【8月更文挑战第31天】随着电商行业的快速发展,用户行为分析的重要性日益凸显。本实战项目将指导你使用 SQL 构建电商平台用户行为分析系统,涵盖数据建模、采集、处理与分析等环节。文章详细介绍了数据库设计、测试数据插入及多种行为分析方法,如购买频次统计、商品销售排名、用户活跃时间段分析和留存率计算,帮助电商企业深入了解用户行为并优化业务策略。通过这些步骤,你将掌握利用 SQL 进行大数据分析的关键技术。
180 0
|
3月前
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
360 0
|
关系型数据库 分布式数据库 PolarDB
《阿里云产品手册2022-2023 版》——PolarDB for PostgreSQL
《阿里云产品手册2022-2023 版》——PolarDB for PostgreSQL
363 0

热门文章

最新文章

相关产品

  • 云原生数据库 PolarDB