-
GaussDB有没有内置的MD5函数,能在INSERT语句中,自动将某个字段的值(比如密码)进行MD5处理
-
GaussDB能否实现对某个字段(比如密码)加密存储,然后在读取的时候自动解密
-
GaussDB 内部是按行存储的,还是按列存储的
-
GaussDB Join的时候,大表在前速度快,还是大表在后速度快?
-
GaussDB怎么通过代码查看执行计划
-
活动背景:本活动致力于通过云数据库的实操训练、比赛和理论学习路径,帮助开发者轻松掌握云数据库的使用!活动时间:即日起-2024年12月31日二、活动流程:Step1.训练营准备1.点击领取华为云资源代金券>>>链接:https://account.huaweicloud.com/usercenter/#/getCoupons?activityID=P2411180130043721FX3BM51ENWISN&contentID=PCP24111801271351516L2WZM06LNC6KStep2.实操训练(一)基础实操训练2.点击前往产品页购买云数据库 TaurusDB实例>>>链接:cid:link_8购买规格如下: 计费模式:按需付费 区域:华北-北京四 管理员密码:自行设置其余各项默认,点击“立即购买”,确认后“提交”3.按照指导完成实操>>>链接:cid:link_54.删除TaurusDB实例>>>链接:https://console.huaweicloud.com/gaussdbformysql/?region=cn-north-4&engine=taurus#/gaussdbformysql/management/list5.论坛上传正确的截图获取抽奖链接>>>链接:cid:link_5(二)gsql远程连接云数据库GaussDB6.获取指导手册,前往实操>>>链接:cid:link_3Step3.开发者入门赛7.前往参赛,赢取奖品>>>链接:cid:link_4Step4.征文活动8.前往参加,获取开发者礼包>>>链接:cid:link_12Step5.数据库成长路径数据库学习路径>>>cid:link_10数据库原理及应用学习路径>>>cid:link_11华为TaurusDB数据库高级工程师学习路径>>>cid:link_6数据库工程师学习路径>>>cid:link_7GaussDB数据库通识课学习路径>>>cid:link_9注意事项:1、本次活动参与用户需真实有效,如有虚假、黑产等行为,一律通报、剔除活动参与资格。
-
## OS: Kylin-Server-V10-SP3-2403-Release-20240426-arm64.iso (虚拟机)## Database:openGauss-3.0.5-openEuler-64bit-all.tar.gzLast login: Wed Oct 23 12:01:00 CST 2024 from 192.168.137.1 on pts/0 Checking items: A1. [ OS version status ] : Normal [immortal] kylin_10_64bit A2. [ Kernel version status ] : Normal The names about all kernel versions are same. The value is "4.19.90-89.11.v2401.ky10.aarch64". A3. [ Unicode status ] : Normal The values of all unicode are same. The value is "LANG=en_US.UTF-8". A4. [ Time zone status ] : Normal The informations about all timezones are same. The value is "+0800". A5. [ Swap memory status ] : Normal The value about swap memory is correct. A6. [ System control parameters status ] : Normal All values about system control parameters are correct. A7. [ File system configuration status ] : Normal Both soft nofile and hard nofile are correct. A8. [ Disk configuration status ] : Normal The value about XFS mount parameters is correct. A9. [ Pre-read block size status ] : Normal The value about Logical block size is correct. A10.[ IO scheduler status ] : Normal The value of IO scheduler is correct. BondMode Null A11.[ Network card configuration status ] : Warning [immortal] BondMode Null Warning reason: Failed to obtain the network card speed value. Maybe the network card "enp0s1" is not working. A12.[ Time consistency status ] : Warning [immortal] The NTPD not detected on machine and local time is "2024-10-23 12:09:10". A13.[ Firewall service status ] : Normal The firewall service is stopped. A14.[ THP service status ] : Normal The THP service is stopped. Total numbers:14. Abnormal numbers:0. Warning numbers:2. Parsing the configuration file. Check preinstall on every node. Successfully checked preinstall on every node. Creating the backup directory. Successfully created the backup directory. begin deploy.. Installing the cluster. begin prepare Install Cluster.. Checking the installation environment on all nodes. begin install Cluster.. Installing applications on all nodes. Successfully installed APP. begin init Instance.. encrypt cipher and rand files for database. Please enter password for database: Please repeat for database: begin to create CA cert files The sslcert will be generated in /home/huawei/install/app/share/sslcert/om NO cm_server instance, no need to create CA for CM. Cluster installation is completed. Configuring. Deleting instances from all nodes. Successfully deleted instances from all nodes. Checking node configuration on all nodes. Initializing instances on all nodes. Initializing instance. [GAUSS-51615] : Failed to initialize instance. Command:/home/huawei/install/app/bin/gs_initdb --locale=C -D /home/huawei/install/data/dn --nodename=dn_6001 --encoding=UTF8 -C /home/huawei/install/app/bin. Error: The files belonging to this database system will be owned by user "omm". This user must also own the server process. The database cluster will be initialized with locale "C". The default text search configuration will be set to "english". fixing permissions on existing directory /home/huawei/install/data/dn ... ok creating subdirectories ... ok selecting default max_connections ... 10 selecting default shared_buffers ... 400kB creating configuration files ... ok Begin init undo subsystem meta. [INIT UNDO] Init undo subsystem meta successfully. creating template1 database in /home/huawei/install/data/dn/base/1 ... gs_initdb: removing contents of data directory "/home/huawei/install/data/dn"
-
给GaussDB(DWS)指定用户赋予某个SCHEMA的权限包括三个场景SCHEMA下当前某张表权限。SCHEMA下当前所有表的权限。SCHEMA下未来创建的表的权限。假设有两个用户jim和mike,对应的同名SCHEMA是jim和mike,用户mike需要访问SCHEMA jim的表。创建用户jim和mike(系统默认会创建jim和mike的同名SCHEMA)。 CREATE USER jim PASSWORD '{password}'; CREATE USER mike PASSWORD '{password}';在SCHEMA jim下创建表jim.name和jim.address。 CREATE TABLE jim.name (c1 int, c2 int); CREATE TABLE jim.address (c1 int, c2 int);给用户mike赋予SCHEMA jim的访问权限。 GRANT USAGE ON SCHEMA jim TO mike;(某张表权限)给用户mike赋予SCHEMA jim下某张表jim.name的查询权限。 GRANT SELECT ON jim.name TO mike;使用用户mike连接DWS数据库,验证mike可以查询jim.name表,但是不能查询jim.address表。 SELECT * FROM jim.name;查询成功 SELECT * FROM jim.address;查询失败(所有表权限)使用dbadmin给用户mike赋予SCHEMA jim下所有表的查询权限。 GRANT SELECT ON ALL TABLES IN SCHEMA jim TO mike;验证mike可以查询所有表。 SELECT * FROM jim.name; 查询成功 SELECT * FROM jim.address;查询成功创建一张新的表jim.employ。 CREATE TABLE jim.employ (c1 int, c2 int);验证发现用户mike没有jim.employ的查询权限,说明mike虽然有SCHEMA jim下所有表的访问权限,但是对于赋权后新创建的表还是没有访问权限(即mike对SCHEMA jim未来的表权限是没有的)。 SELECT * FROM jim.employ; 会提示没权限(未来表权限)给用户mike赋予SCHAMA jim未来创建的表的访问权限,并创建一张新的表jim.hobby。ALTER DEFAULT PRIVILEGES 用来授予将来要创建的对象的权限。ALTER DEFAULT PRIVILEGES FOR ROLE jim IN SCHEMA jim GRANT SELECT ON TABLES TO mike; CREATE TABLE jim.hobby (c1 int, c2 int);验证发现用户mike可以访问jim.hobby。但是对于之前的jim.employ还是没有访问权限(以上ALTER DEFAULT PRIVILEGES语句的授权范围只是未来创建的表,对于已经创建的表,还是要使用GRANT单张表重新授权),此时需要参考4重新授权jim.employ即可。 SELECT * FROM jim.hobby; 查询成功赋予用户schema的all权限后建表仍然报错ERROR: current user does not have privilege to role tom两个用户tom和jerry,jerry需要在tom的同名schema下创建表,于是tom把该schema的all权限赋予jerry,但是创建表时仍然报错:dbtest=# GRANT all on schema tom to jerry;GRANTdbtest=# \c - jerryPassword for user jerry:Non-SSL connection (SSL connection is recommended when requiring high-security)You are now connected to database "dbtest" as user "jerry".dbtest=> CREATE TABLE tom.t(a int);ERROR: current user does not have privilege to role tom把角色tom的权限赋予jerry后,建表执行成功。GRANT tom to jerry;和角色名同名的schema需要赋权。三权分立:https://support.huaweicloud.com/devg-dws/dws_04_0056.html权限管理:https://support.huaweicloud.com/bestpractice-dws/dws_05_0081.html用户赋权:https://support.huaweicloud.com/dws_faq/dws_03_0196.html赋权后仍报错:https://support.huaweicloud.com/trouble-dws/dws_09_0094.html创建只读用户:https://support.huaweicloud.com/dws_faq/dws_03_0198.htmlgrant用法:https://support.huaweicloud.com/sqlreference-dws/dws_06_0250.html
-
GTM,全称Global Transaction Manager,即全局事务管理器,负责全局事务号的分发,事务提交时间戳的分发以及全局事务运行状态的登记,作为事务管理中的重要模块,为支持事务一致性提供必要的保证。事务开始和提交时与GTM进行交互获取必要的全局事务信息,包括事务ID,全局时间戳,全局快照等等。与其他模块一个很重要的不同点就是,为了保证一致性和事务标识全局唯一,集群中只要一个主GTM,即只有一个GTM真正参与事务(不过GTM和DN一样是高可用的,支持一主多备或主备从)。使用GTM来进行事务管理,一个很重要的问题就是会出现单点瓶颈,因为所有需要获取事务唯一标识的事务都需要连接GTM,获取全局快照的时候也都需要连接GTM,在大并发的情况下频繁的交互导致大量的网络通信和锁等待,从而限制了集群性能。在老的GTM模式下,虽然通过将活跃事务链表替换为CSN来减少了通信量,但是由于仍采用全局事务id的策略,所以每个活跃事务仍要在GTM注册槽位,GTM负责管理和分发全局事务id,这导致当并发量大的时候,GTM容易成为单点瓶颈,主要体现在以下两个方面:(1)在一个事务的执行流程中,CN会与GTM进行多次交互,如事务开始时在GTM注册槽位、获取快照时从GTM获取全局事务id、事务结束时向GTM提交并移除槽位等,这些频繁的交互会带来大量的网络通信和等待;(2)当并发量超过槽位数限制时,会由于槽位不够影响业务正常进行。由此可见,其影响性能的主要原因在于GTM的协调太强,通过对全局事务id的管控,虽然保证了事务的一致性,但是也限制了事务处理的效率。与GTM模式相反,GTM-FREE模式下CN/DN不与GTM交互,通过CN/DN分别维护本地事务id来保证事务系统的正常运行。这种模式下由于缺少全局事务id以及GTM的其他协调(CSN),事务的一致性会受到影响,从而限制了这种模式的适用范围。综上,现有的两种模式在效率和一致性要求上并没有达到一个很好的平衡,而影响这种平衡的主要因素在与“协调”,协调带来更多一致性的保障,但是却降低了性能。由此,一个好的模式应该是在尽可能少的协调的情况下,达到尽可能高的性能,这也是本章介绍的GTM-LITE模式GTM-LITE的主要目标就是在消除GTM瓶颈影响的同时,尽可能通过更少的信息交互,利用它来协调好事务的并发,从而保证事务一致性的同时提升性能。为此,GTM-LITE的主要设计思路包含以下4点:(1)本地事务id取代全局事务id。GTM不再分配全局唯一的事务id,每个CN/DN节点用本地产生的事务id,保证节点内事务id不会重复;对于跨节点的事务,由全局唯一的gid标识符前缀来保证写一致性,由全局唯一的csn号来保证事务读的一致性。(2)GTM不再维护槽位信息,仅在事务提交时下发全局唯一的csn序列号。GTM下发的全局csn是一个递增的uint64值。这一设计消除了BEGIN, GetNewTransactionId同GTM的交互。进一步,如果事务在GTM提交时失败,可以retry重新获取最新的csn,减少网络故障对系统造成的影响。(3)本地维护多版本过期脏元组的回收,并引入Snapshot Invalid机制,保证全局事务的一致性。由于舍弃全局事务id,无法直接根据RecentGlobalXmin确定需要清理的脏元组,所以需要利用全局csn来计算RecentGlobalXmin,从而实现GTM架构代码的有效复用。(4)引入prepared array链表对单节点事务可见性判断进行优化。对于单节点的读事务,不再向GTM申请快照,而是使用本地的快照+prepared array链表来进行可见性判断,这种方式在保证读外部一致性的前提下,尽可能的减少同GTM的交互。基本判断方法为:对于csn<本地快照csn的事务以及本地prepared(在prepared array中)且最终提交的事务,均可见。
-
GaussDB技术解读——分布式优化器 分布式数据库场景下表分布在各个节点上,数据的本地性Data Locality是分布式优化器中生成执行计划时重点考虑的因素,基于Share Nothing的分布式数据库中有一个很关键概念就是“移动数据不如移动计算”,之所以有数据本地性就是因为数据在网络中传输会有不小的I/O消耗,网络的overhead通常情况下会大于本地的计算,因此分布式数据库优化的一个重要的原则就是尽量减少这个网络I/O消耗就能够提升效率。例如有以下例子一个聚集查询的例子: 表信息:- T1: distribute By HASH(c1)执行查询:- select sum(c1), c2 from t1 group by c2 1 由于表T1的分布列为c1但实际上要按照c2为键值进行聚集,对聚集列进行重分布是不可避免的一步操作,因此先做聚集还是先做数据迁移重分布就成为分布式优化器的一个选项,针对这一情况可以有以下两种分布式执行计划选择: 说明: (1)执行计划A未考虑Data Locality的优化按照聚集的逻辑直接从扫描输出的100m元组进行重分布操作,造成大量的数据传输和网络资源消耗。 (2)执行计划B考虑Data Locality的优化,把AGG算子分解成2次AGG,其中第一次AGG在本地执行对原始数据进行缩减然后再通过网络重分布进入第二次AGG,虽说执行计划B相比A多了1个AGG算子,尽管计算的总量未发生变化但是节省了大量的网络IO操作,端到端提升了查询性能。 表关联也是类似的原理,如果当join列与分布列不一致时,需要网络stream节点算子对数据进行重分布或者复制确保查询执行的语义正确。
-
应用场景 通过MERGE INTO语句,将目标表和源表中数据针对关联条件进行匹配,若关联条件匹配时对目标表进行UPDATE,无法匹配时对目标表执行INSERT。此语法可以很方便地用来合并执行UPDATE和INSERT,避免多次执行。语法如下: MERGE INTO table_name [ [ AS ] alias ]USING { { table_name | view_name } | subquery } [ [ AS ] alias ]ON ( condition )[ WHEN MATCHED THEN UPDATE SET { column_name = { expression | DEFAULT } | ( column_name [, ...] ) = ( { expression | DEFAULT } [, ...] ) } [, ...] [ WHERE condition ]][ WHEN NOT MATCHED THEN INSERT { DEFAULT VALUES | [ ( column_name [, ...] ) ] VALUES ( { expression | DEFAULT } [, ...] ) [, ...] [ WHERE condition ] }];其中,table_name 指的是更新的表,using()里边的指的是数据来源表/视图/子查询结果集,condition指的是连接条件。 如果满足连接条件,则更新字段;如果连接条件不满足,则停止更新进行插入。 举例 table_a : 计划金额表 table_b : 调整表 table_c : 调整金额表 MERGE INTO table_a t1 USING ( SELECT m.plan_id, m.adjust_money + d.adjust_money adjust_money, m.all_money + d.adjust_money all_money FROM table_a m LEFT JOIN table_b a ON m.card_id = a.card_id LEFT JOIN table_c d ON a.adjust_id = d.adjust_id WHERE a.adjust_id = 5 AND a.comp_code = '100101' AND m.year = d.year) t2 ON (t1.plan_id = t2.plan_id)WHEN matched THEN UPDATESET t1.adjust_money = t2.adjust_money, t1.all_money = t2.all_money要根据调整id,将调整金额累加到计划金额表中。一次更新当年12个月。
-
1)详单查询GaussDB 200具备PB级数据负载能力,通过内存分析技术满足海量数据边入库边查询要求,适用于安全、电信、金融、物联网等行业的详单查询业务。 从这点可以看出,这一功能的实现是发挥了GaussDB 200在OLTP方面能力。2)数据仓库 GaussDB 200具备百TB级数据支撑能力,可以高效处理百亿行多表连接查询,适用于操作数据存储ODS(Operational Data Store)、企业数据仓库EDW(Enterprise Data Warehouse)、数据集市DM(Data Mart)。 以上这一功能体现了GaussDB 200在OLAP方面的能力。3)混合负载 GaussDB 200基于海量数据查询统计分析能力与事务处理能力,行列混存技术同时满足联机事务处理OLTP(On-Line Transaction Processing)与联机分析处理OLAP(Online Analytical Processing)混合负载场景。4)大数据分析 支持结构化数据PB级分析能力。分布式并行数据库集群满足PB级结构化大数据的分析能力。
-
1、全球首款AI-Native数据库。 AI原生数据库是GaussDB的主要特点之一。华为将AI引擎内置到GaussDB全系产品中,使其具备一定的自运维、自管理、自调优、故障自诊断和自愈的能力。华为也希望把在芯片、算法上面的优势,集中体现到数据库上来。 客观来讲,其实对于在数据库中植入AI技术,并不是一个新鲜做法。Oracle在几个版本之前就开始就植入了AI技术,开启了“Autonomous”之旅。2、异构计算支持X86、ARM、GPU、NPU。 这个也是Gauss数据库与其他数据库比较大的不同。目前主流的数据库产品,包括OracleDB、MySQL、SQL Server等,基本都是支持X86架构。我们认为,华为数据库对于异构计算的支持,可能是为该数据库未来向更多计算场景的应用做准备。我们知道,5G带来计算场景的变革或将更大。
-
华为GaussDB数据库包括:事务性(OLTP)数据库、分析型(OLAP)数据库和混合负载(HTAP)数据库。这里需要解释下OLTP、OLAP、HTAP之间的区别,这也是数据库最基本的内容。据库系统一般分为两种类型:一种是面向前台应用的,应用比较简单,但是重吞吐和高并发的OLTP类型;一种是重计算的,对大数据集进行统计分析的OLAP类型。OLTP:联机事务处理OLTP数据在系统中产生; 基于交易的处理系统(Transcation-Based);每次交易牵涉的数据量很小; 对响应时间要求非常高; 用户数量非常庞大,主要是操作人员; 数据库的各种操作主要基于索引进行。OLAP:联机分析处理OLAP本身不产生数据,其基础数据来源于生产系统中的操作数据(OperationalData);基于查询的分析系统; 复杂查询经常使用多表联结、全表扫描等,牵涉的数量往往十分庞大; 响应时间与具体查询有很大关系; 用户数量相对较小,其用户主要是业务人员与管理人员; 由于业务问题不固定,数据库的各种操作不能完全基于索引进行。
-
华为 GaussDB 是一个企业级 AI-Native 分布式数据库。GaussDB 采用 MPP(Massive Parallel Processing)架构,支持行存储与列存储,提供 PB(Petabyte,2 的 50 次方字节)级别数据量的处理能力。 华为Gauss数据库是全球首款AI-Native数据库,能够同时支持X86、ARM、GPU、NPU 等异构计算。数据库演进历史GaussDB:分布式&AI原生。华为GaussDB是一个企业级AI-Native分布式数据库。GaussDB采用MPP(Massive Parallel Processing)架构,支持行存储与列存储,提供PB(Petabyte,2的50次方字节)级别数据量的处理能力。可以为超大规模数据管理提供高性价比的通用计算平台,也可用于支撑各类数据仓库系统、BI(Business Intelligence)系统和决策支持系统,为上层应用的决策分析提供服务。华为GaussDB将AI能力植入到数据库内核的架构和算法中,为用户提供更高性能、更高可用、更多算力支持的分布式数据库。
上滑加载中
推荐直播
-
全面解析华为云EI-API服务:理论基础与实践应用指南
2024/11/29 周五 18:20-20:20
Alex 华为云学堂技术讲师
本期直播给大家带来的是理论与实践结合的华为云EI-API的服务介绍。从“主要功能,应用场景,实践案例,调用流程”四个维度来深入解析“语音交互API,文字识别API,自然语言处理API,图像识别API及图像搜索API”五大场景下API服务,同时结合实验,来加深开发者对API服务理解。
去报名 -
企业员工、应届毕业生、在读研究生共探项目实践
2024/12/02 周一 19:00-21:00
姚圣伟 在职软件工程师 昇腾社区优秀开发者 华为云云享专家 HCDG天津地区发起人
大神带你一键了解和掌握LeakyReLU自定义算子在ONNX网络中应用和优化技巧,在线分享如何入门,以及在工作中如何结合实际项目进行学习
即将直播 -
昇腾云服务ModelArts深度解析:理论基础与实践应用指南
2024/12/03 周二 14:30-16:30
Alex 华为云学堂技术讲师
如何快速创建和部署模型,管理全周期AI工作流呢?本期直播聚焦华为昇腾云服务ModelArts一站式AI开发平台功能介绍,同时结合基于ModelArts 的实践性实验,帮助开发者从理论到实验更好地理解和使用ModelArts。
去报名
热门标签