- 博客(150)
- 收藏
- 关注
原创 GaussDB数据库SQL系列-层次递归查询
对于每个连接的行,它们的层级是父级的层级加1,并且它们的路径是父级的路径加上逗号和它们自己的行政区。在递归查询中,查询会反复地递归进入到一个子查询中,直到查询得到满足条件的结果或遍历完整个查询范围。参数:col为在路径中显示的列名,支持类型为CHAR/VARCHAR/NVARCHAR2/TEXT的列,参数separator为路径节点之间的分隔符。在一些复杂的查询场景中,递归查询能够更快地得到结果。同样的, 在使用GaussDB等数据库时,只要正确合理的应用递归查询,就可以更好地提高查询效率和应用性能。
2024-12-30 15:04:38
942
原创 GaussDB数据库SQL系列-表连接(JOIN)
数据库表连接(Join)是将两个或多个表中的数据根据一定的条件进行组合,在实际应用中,数据库表连接可以帮助我们快速地获取所需的数据信息,提高数据处理效率。在GaussDB数据库中,常用的JOIN有如下几种连接及用法:INNER JOIN、LEFT JOIN、RIGHT JOIN、 FULL JOIN、CROSS JOIN。SQL是用于数据分析和数据处理的最重要的编程语言之一,表连接(JOIN)是数据库中SQL的一种常见操作,在实际应用中,我们需要根据业务需求从两个或多个相关的表中获取信息。
2024-12-30 15:04:08
751
原创 GaussDB数据库SQL系列-UNION & UNION ALL
另外,执行去重会消耗大量的时间,因此,在一些实际应用场景中,如果通过业务逻辑已确认了两个集合不存在重重复数据时,可直接用UNION ALL 替代UNION,以便提升性能。而在SQL中,UNION是一个非常强大的功能,它可以将多个SELECT语句的结果合并成一个结果集。在一些业务场景下,比如上游系统提供的两张表或者多张表之间互相不会存重复数据,且自身也不存在重复数据,则为了提升合并时SQL性能、减少SQL执行时间,则选择UNION ALL操作符。解决思路:根据提示查看两个表的表结构,看字段数量是否一支。
2024-12-30 15:03:38
707
原创 GaussDB数据库SQL系列-SQL与ETL浅谈
当然了,现在好多企业都有专门的ETL工具,但其实后台都是通过类似“PYTHON + SQL”、“PERL + SQL”等方式实现的,其重点在于ETL过程中的SQL处理。内置的数据转换和处理功能:DataArts Studio提供了丰富的内置转换和处理组件,如数据清洗、数据格式转换、数据合并、数据计算等。ETL是数据集成的一部分,用于将分散的、不一致的数据整合到一起,然后通过统一的接口将数据传输到目标系统库进行分析和应用。在ETL过程中,加载是将转换后的数据加载到目标系统中,通常是数据仓库或数据集市。
2024-12-30 15:03:05
696
原创 GaussDB技术解读系列:运维自动驾驶探索
数据库的可观测能力对于数据库的运维十分重要,GaussDB全链路监控具备从硬件、OS、DB等分层监控,构建从采集、发送、展示、分析到巡检等全链路能力,并且打通了硬件到操作系统,到数据库整个监控链的通道。所谓全局快慢车道,就是定义两个资源池,一个是正常资源池,我们称为快车道,快车道提供大量的资源,正常业务在快车道运行,如果出现交通事故,这里的交通事故就是指异常的SQL业务,我们可以通过页面一键将异常SQL放到慢车道中,慢车道限制了对资源的使用,这样交通事故处理完了,快车道可以继续保持高速运行。
2024-12-30 15:01:50
449
原创 GaussDB SQL基础语法示例-BOOLEAN表达式
SQL是用于访问和处理数据库的标准计算机语言。GaussDB支持的SQL标准(默认支持SQL2、SQL3和SQL4的主要特性)。本系列将以《云数据库GaussDB—SQL参考》为主线进行介绍。1、概念在GaussDB数据库中,BOOLEAN表达式是一种很常见的表达式类型,它用于比较两个条件,来确定其是否为真或假。BOOLEAN表达式可以用于条件判断或在循环语句中作为终止条件。其语法非常简单,只需要使用逻辑运算符对两个条件进行比较。
2024-12-30 15:01:17
462
原创 GaussDB SQL基础语法示例-常见的条件表达式
SQL是用于访问和处理数据库的标准计算机语言。GaussDB支持SQL标准(默认支持SQL2、SQL3和SQL4的主要特性)。本系列将以《云数据库GaussDB—SQL参考》为主线进行介绍。
2024-12-30 15:00:41
910
原创 GaussDB SQL基础语法示例-数组表达式
SQL是用于访问和处理数据库的标准计算机语言。GaussDB支持SQL标准(默认支持SQL2、SQL3和SQL4的主要特性)。本系列将以《云数据库GaussDB—SQL参考》在线文档为主线进行介绍。欢迎使用GaussDB数据库数组表达式。在本文中,我们将介绍GaussDB数据库中数组表达式的概念、语法和用法。GaussDB是一种高性能、高可扩展的分布式数据库,广泛应用于各种业务场景。数组表达式是GaussDB数据库中的一种强大功能,它允许用户在数据库查询中使用数组操作符和函数来处理数组类型的数据。
2024-12-30 14:59:52
581
原创 GaussDB SQL基础语法示例-循环语句
SQL是用于访问和处理数据库的标准计算机语言。GaussDB支持SQL标准(默认支持SQL2、SQL3和SQL4的主要特性)。本系列将以《云数据库GaussDB—SQL参考》为主线进行介绍。
2024-12-30 14:59:16
264
原创 GaussDB技术解读系列:高安全之密态等值
比如在使用的时候输入一个SQL语句,加密驱动会找到哪个字段需要加密,然后用一个密钥把它自动加密,这样加密完后整个流程都是密文的,整个数据库跑的数据、以及跑完之后的结果都是密文数据,不论什么时候把数据拿走,拿走的也都是密文的,因为在整个数据库里面没有任何解密的过程。而之前的传统方案,是强制在应用层加密,加密完成后存到数据库,用数据的时候,先把数据查询出来之后做解密再使用,数据库做不了任何事情,这种方案加密时间长,性能损耗大,密钥需要自管,所以上了全密态。在这种新形势下,数据库的安全也面临很大的威胁。
2024-12-30 14:54:55
448
原创 GaussDB技术解读系列:数据库迁移创新实践
数据库的选型除了要看数据库本身的能力外,能否很平滑地从其他数据库迁移到GaussDB,也是很多企业考量的关键因素。SQL审核大家更为熟悉,很多大的企业都会进行探索和实践,但对于GaussDB来说,由于是纯自主创新的分布式数据库,很多企业的开发人员和DBA还不熟悉GaussDB的SQL语法,也没有制定较为完善的SQL编程规范,很多第三方SQL审核工具也没有针对GaussDB的审核能力,这种情况下,我们结合UGO成熟的SQL解析器,以及多个项目中的SQL调优实践,孵化出了GaussDB数据库的SQL审核能力。
2024-12-30 14:54:24
922
原创 GaussDB技术解读系列:性能调优
数据库性能优化充满复杂性和挑战性,既有主观的成分,也有复杂的一面。对于数据库系统的性能影响是多方面的,不管是硬件规格、操作系统配置、数据库系统的设计、应用和客户端的连接方式,都会对业务最终的性能表现产生很大的影响,所以数据库的性能表现本质上是整体计算机系统软硬件协调的结果。第一个是应用升级后引起了性能剧烈波动,我们先观察一下实例整体执行的时间,看看在哪一步消耗的比重最高,通过归一化视图观察单个SQL,看每一步的执行消耗,发现是在网络发送部分引起的,我们把应用侧进行替换,应用程序更新后这个问题就解决了。
2024-12-30 14:53:50
419
原创 GaussDB数据库SQL系列-定义重载函数
在GaussDB数据库中,函数重载是一个重要特性,允许我们在同一个数据库中定义多个同名函数,根据参数的不同来调用不同的函数。需要注意的是,在数据库中实现自定义重载函数并不是一件必须的事情,因为数据库系统通常已经提供了丰富的内置函数和操作符,能够满足大部分数据处理需求。函数重载是一种允许在同一个数据库中定义多个同名函数的特性。这些同名函数在参数类型、数量或顺序上有所不同,因此可以根据传入的参数的不同来调用不同的函数。使用函数重载,我们可以根据具体情况选择不同的函数来实现不同的功能,使代码更加简洁和可读。
2024-12-30 14:53:17
362
原创 GaussDB数据库SQL系列-游标管理
在隐式游标的工作区中,所存放的数据是最新处理的一条SQL语句所包含的数据,与用户自定义的显式游标无关。第六步,关闭游标:当提取和处理完游标结果集合数据后,应及时关闭游标,以释放该游标所占用的系统资源,并使该游标的工作区变成无效,不能再使用FETCH语句获取其中数据。隐式游标:对于非查询语句,如修改、删除操作,则由系统自动地为这些操作设置游标并创建其工作区,这些由系统隐含创建的游标称为隐式游标,隐式游标的名称为SQL,这是由系统定义的。第三步,提取游标数据:检索结果集合中的数据行,放入指定的输出变量中。
2024-12-30 14:52:45
627
原创 GaussDB数据库SQL系列-自定义函数
对于f1,它直接返回输入的整数值。总的来说,在GaussDB中,函数是一种强大且灵活的工具,它能帮助数据库管理和开发人员更有效地处理和操作数据,提高工作效率,并在数据查询、数据转换、数据过滤等场景中发挥出更大的作用。当调用这个函数时,你可以传入一个整数参数,它将返回一个结果集,其中包含一个记录,其result_1字段的值为输入的整数加1,result_2字段的值为输入的整数乘以10。这段代码是在创建一个名为’func_add_sql’的SQL函数,这个函数接受两个整数作为输入参数,并返回它们的和。
2024-12-30 14:52:15
1066
原创 对GaussDB数据库和数据管理的简单介绍
企业应充分利用GaussDB数据库对数据管理的更多功能和优势,加强数据管理实践,不断提升数据质量、数据安全,为企业的发展创造更大的价值。数据库是用于存储数据的系统,为数据提供了安全、可靠、可扩展和可管理的存储环境。数据质量涉及的范围也很广,贯穿业务的整个生命周期,从“数据产生->数据接入->数据存储->数据处理->数据输出->数据展示”,每个阶段都需要质量管理。从语法、语义、语用三个方面去定义和衡量数据质量,在数据产生、数据加工以及数据使用的全过程中均需要符合其制定的标准和规范。
2024-12-27 09:41:05
846
原创 GaussDB数据库特性-物化视图简介
普通视图是虚拟表,应用的局限性较大,任何对视图的查询实际上都是转换为对SQL语句的查询,性能并没有实际上提高。物化视图在GaussDB数据库中有两种表现形式,分别是全量物化视图和增量物化视图。GaussDB数据库中增量物化视图概述:增量物化视图顾名思义就是可以对物化视图增量刷新,需要用户手动执行语句完成对物化视图在一段时间内的增量数据进行刷新。GaussDB数据库中全量物化视图的概述:全量物化视图仅支持对创建好的物化视图做全量更新,而不支持做增量更新。3)再次向物化视图中源表插入数据,并刷新全量物化视图。
2024-12-27 09:40:32
826
原创 GaussDB数据库SQL系列-动态语句
GaussDB数据库是一款具备高性能、高可用性和高扩展性的关系型数据库,它提供了丰富的功能和工具,支持动态SQL语句的构建。通过使用GaussDB数据库构建动态SQL语句,数据应用部门可以更好地应对不断变化的数据查询需求,提高应用程序的性能和可维护性。USING IN的变量: 用于指定存放传递给动态SQL值的变量,在SQL拼接时可用占位符,占位符命名以“:”开始,后面可跟数字、字符或字符串,与USING子句的变量一一对应。执行查询:使用GaussDB数据库的查询接口,执行构建好的SQL语句并获取查询结果。
2024-12-27 09:38:48
761
原创 GaussDB数据库SQL系列-LOCK TABLE
UPDATE,DELETE,INSERT命令会自动在目标表上请求这个锁(且所有被引用的其他表上还会自动加上的ACCESS SHARE锁)。同样,大多数GaussDB命令自动施加恰当的锁,以保证被引用的表在命令的执行过程中不会以一种不兼容的方式被删除或者修改。然而在某些操作的时候,会在某些系统表上请求它。在GaussDB中,锁是实现并发控制的关键机制之一,用于协调多个事务之间的数据访问,确保数据的一致性和完整性。在数据库中,事务是一组一起执行的SQL语句,要么全部成功,要么全部失败,这可以确保数据的一致性。
2024-12-27 09:38:17
607
原创 GaussDB技术解读系列:如何迁移到GaussDB_
上面解答了能不能迁移,怎么迁移的问题,那么迁移至GaussDB后能否平稳度过业务峰值的考验,技术上有了上面UGO和DRS的基础,我们能够在Oracle数据库上自动采集数据了。数据库一个非常繁忙的软件,每过一秒都有可能会有成千上万的数据发生变化,如何在数据高度变化的动态过程中将数据库迁走,比较容易想到的做法是将业务停机来确保数据迁移不丢失,但这对于一个核心业务来说是无法接受的,这样就提出了一个技术问题,有没有一种办法可以在业务运行过程中将数据库迁移到GaussDB,也就是业界常说的热迁移,或者说在线迁移。
2024-12-27 09:37:42
450
原创 GaussDB技术解读系列:HTAP方向的探索与发展
这个架构的问题是,它的数据新鲜度不够好,比如说先前在互联网应用方面,我们经常做一些个性化的用户推荐,在给用户推荐感兴趣的商品时,会在登录时对它进行一个用户画像,根据用户画像的结果推荐产品,这是一种实时分析的能力。它之所以成为关键的原因是因为增加了客户的易用性,提升了HTAP产品的商用价值。目前,GaussDB既有基于同Server的实时的HTAP,也有基于主备技术的准实时的HTAP,同时在透明路由的加持下,能够准确的把业务分流同步分到实时的HTAP上,达成在性能、资源隔离、数据新鲜度方面有一个均衡的结果。
2024-12-27 09:37:10
853
原创 GaussDB技术解读系列:HTAP方向的探索与发展
这个架构的问题是,它的数据新鲜度不够好,比如说先前在互联网应用方面,我们经常做一些个性化的用户推荐,在给用户推荐感兴趣的商品时,会在登录时对它进行一个用户画像,根据用户画像的结果推荐产品,这是一种实时分析的能力。它之所以成为关键的原因是因为增加了客户的易用性,提升了HTAP产品的商用价值。目前,GaussDB既有基于同Server的实时的HTAP,也有基于主备技术的准实时的HTAP,同时在透明路由的加持下,能够准确的把业务分流同步分到实时的HTAP上,达成在性能、资源隔离、数据新鲜度方面有一个均衡的结果。
2024-12-27 09:36:17
616
原创 GaussDB SQL基础语法示例-GOTO语句
SQL是用于访问和处理数据库的标准计算机语言。GaussDB支持SQL标准(默认支持SQL2、SQL3和SQL4的主要特性)。本系列将以《云数据库GaussDB—SQL参考》在线文档为主线进行介绍。GOTO 语句是直观基本的控制流语句,会导致控制流发生无条件更改。它用于分流至使用 SQL 过程中定义的标签的特定用户定义位置。使用 GOTO 语句通常被视为缺乏编程技巧,并且不推荐这样做。大量使用 GOTO 会导致代码可读性不好,特别是在过程变长时。
2024-12-27 09:35:45
257
原创 GaussDB SQL基础语法-变量&常量
SQL是用于访问和处理数据库的标准计算机语言。GaussDB支持SQL标准(默认支持SQL2、SQL3和SQL4的主要特性)。本系列将以《云数据库GaussDB—SQL参考》在线文档为主线进行介绍。数据库中的变量和常量是两种重要的数据使用类型。变量是可以变化和被修改的,而常量则是固定不变,不能被修改的。1、变量定义在GaussDB中,变量是用于存储可变值的数据类型。变量通常在程序中定义,并在执行期间可以更改其值。其中,variable_name 是变量的名称,data_type 是变量的数据类型。
2024-12-27 09:35:12
844
原创 GaussDB SQL基本语法示例-CASE表达式
另外,如果没有取值为TRUE的input_expression = when_expression,则当指定ELSE子句时,DLI将返回else_result_expression;当没有指定ELSE子句时,返回NULL值。说明:其中,input_expression表示需要比较的表达式,when_expression等表示需要比较的值,result_expression等表示各个值相等时的结果,else_result_expression表示当input_expression不等于任何值时的默认结果。
2024-12-27 09:34:41
896
原创 JDBC连接GaussDB云数据库操作示例
目录一、实验环境二、登录华为云创建测试库表1、登录GaussDB云数据库2、建库、建表,用于测试3、新增普通角色(用户)用于登录及访问测试(可选)4、获取对应的公网IP三、创建java工程1、创建java工程2、添加jar包3、编辑Java代码四、执行并查看测试结果。
2024-12-27 09:34:06
752
原创 GaussDB整体性能慢分析
长时间性能下降通常的场景,通常是指某段时间(小时级)性能抖动,比如: 过去8:00-9:00性能正常,但10:00-11:11性能出现较大的性能抖动,这种场景,可以比较两段时间内WDR报告,排查报告内差异点,可排查Top SQL、Top Wait Events、Load Profile、Cache/IO Stats、Object Stats等。当前数据库内核默认是开启线程池的,由于某些或者某个不优SQL慢,导致业务整体性能差,或者占满整个内核线程池,从而可能会引发更加严重的业务阻塞。
2024-12-27 09:33:32
826
原创 GaussDB云数据库SQL应用系列—索引管理
随着互联网的快速发展,数据量呈现爆炸式增长。如何高效地管理和查询这些数据成为了企业面临的重要问题。而数据库索引作为数据库优化的关键手段之一,对于提高数据库性能和查询效率具有重要作用。本文将介绍GaussDB云数据库的索引创建和管理方法,并结合实际应用场景进行分析。本文结合一张测试表简单的介绍了GaussDB云数据库的索引创建、查询、删除等操作。索引可以提高数据的访问速度,但同时也增加了插入、更新和删除操作的处理时间。
2024-12-27 09:33:01
362
原创 GaussDB云数据库SQL应用系列-视图管理
GaussDB是一款基于云计算技术的高性能关系型数据库,支持多种数据模型和分布式架构。在GaussDB中,视图管理是非常重要的一项功能,它可以帮助用户更方便地管理和查询数据。数据库视图管理是指对数据库中的视图进行创建、修改、删除、查询等操作的过程。
2024-12-27 09:32:31
785
原创 GaussDB云数据库SQL应用系列-基础使用
随着云计算技术的不断发展,云数据库已经成为了企业信息化建设中不可或缺的一部分。而在众多的云数据库产品中,华为GaussDB以其卓越的性能和稳定性备受用户青睐。GaussDB云数据库是一款具有高性能、高可用、高安全等特点。它采用了先进的存储技术和算法,可以快速处理大量的数据请求,并保证数据的一致性和可靠性。同时,GaussDB还具有丰富的应用场景。例如,在电商行业中,可以使用GaussDB来存储用户的购物记录和订单信息;在金融行业中,可以使用GaussDB来存储客户的账户信息和交易记录;
2024-12-27 09:31:48
590
原创 GaussDB云数据库SQL应用系列-定时任务管理
GaussDB数据库定时任务主要可以用于实现定期的备份、统计信息采集、数据汇总、数据清理与优化等,它是指在指定的时间间隔内自动执行一次或多次SQL语句的程序。GaussDB数据库兼容Oracle定时任务功能主要通过DBE_TASK高级功能包提供的二次封装接口实现(另可参见GaussDB提供的基础接口PKG_SERVICE,此接口也可实现定时任务创建),主要包括创建定时任务、任务到期自动执行、任务删除、修改任务属性(任务id、任务的关闭开启、任务的触发时间、触发时间间隔、任务内容)等。
2024-12-24 10:04:05
558
原创 GaussDB内存过载分析
总结:使用上面2种方法找到内存占用过多的内存上下文后,可进行初步判断,在数据库内核执行业务时,一般占用较多的全局内存上下文有“CachedPlan”,“CachedPlanQuery”,“CachedPlanSource”,“SessionTopMemoryContext”,如果是这几个context占用较多,则需要减小业务的并发来降低内存占用;某些内存过载出现时会导致集群环境重启等,这种情况下没有实时的环境能够定位内存过载的原因是什么,就需要使用如下流程来定位已发生过的内存过载导致的原因。
2024-12-24 10:03:28
962
原创 GaussDB SQL调优:建立合适的索引
所有调优手段都是围绕资源使用开展的。比如做典型点查询的时候,可以用seqscan+filter(即读取每一条元组和点查询条件进行匹配)实现,也可以通过indexscan实现,显然indexscan可以以更小的代价实现相同的效果。拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关键能力,能为企业提供功能全面,稳定可靠,扩展性强,性能优越的企业级数据库服务。很明显,执行计划中存在SubPlan,并且SubPlan中的运算相当重,即此SubPlan是一个明确的性能瓶颈点。
2024-12-24 10:02:18
311
原创 什么是GaussDB
同时拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关键能力,能为企业提供功能全面,稳定可靠,扩展性强,性能优越的企业级数据库服务。云审计服务(Cloud Trace Service,CTS),是华为云安全解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。权限控制:购买实例之后,您可以使用IAM为企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,通过IAM进行精细的权限管理。
2024-12-24 10:01:39
651
原创 再识华为云数据库——GaussDB
华为云数据库 GaussDB是一款拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关键能力,能为企业提供功能全面,稳定可靠,扩展性强,性能优越的企业级数据库服务。同时具有PB级海量数据存储、实时高效访问、自动化运维等特点,广泛应用于金融、电信、物流、电商、政体等行业,成为行业最受欢迎的企业级数据库之一。同时,打造数据库结构+ 应用+数据一站式迁移工具方案,让客户选型安心、迁移放心、管理省心,目前已经规模应用在金融、电 信、泛政府、能源、交通、互联网等各行业。
2024-12-24 10:00:46
597
原创 以学校数据模型为例,掌握在DAS下使用GaussDB
目的: 这里以学校数据库模型为例,介绍GaussDB数据库、表等常见操作,以及SQL语法使用的介绍。
2024-12-24 10:00:12
846
原创 如何通过DAS连接GaussDB
本实验主要描述如何通过华为云数据管理服务 (Data Admin Service,简称DAS) 来连接华为云GaussDB数据库实例,DAS是一款专业的简化数据库管理工具,提供优质的可视化操作界面,大幅提高工作效率,让数据管理变得既安全又简单。DAS连接数据库,无需使用IP地址,易用、安全、高级、智能。
2024-12-24 09:58:59
251
原创 GuassDB数据库的GRANT & REVOKE
在数据库中,对象的创建者将成为该对象的所有者,具有对该对象进行查询、修改和删除等操作的权限。同时,系统管理员也拥有与所有者相同的权限。因此,如果要让其他用户能够使用某个对象,必须向该用户或包含该用户的角色授予必要的权限。GaussDB数据库对象权限:对象所有者的权限(例如ALTER、DROP、COMMENT、INDEX、VACUUM、GRANT和REVOKE)是隐式拥有的,即只要拥有对象就可以执行对象所有者的这些隐式权限。对象所有者可以撤消自己的普通权限。要撤消已经授予的权限,可以使用REVOKE。
2024-12-24 09:58:23
630
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人