• GaussDB- 动态数据脱敏机制
    特性简介GaussDB数据脱敏是行之有效的数据库隐私保护方案之一,可以在一定程度上限制非授权用户对隐私数据的窥探。动态数据脱敏机制是一种通过定制化制定脱敏策略从而实现对隐私数据保护的一种技术,可以有效地在保留原始数据的前提下解决非授权用户对敏感信息的访问问题。当管理员指定待脱敏对象和定制数据脱敏策略后,用户所查询的数据库资源如果关联到对应的脱敏策略时,则会根据用户身份和脱敏策略进行数据脱敏,从而限制非授权用户对隐私数据的访问。客户价值GaussDB数据隐私保护是数据库安全所需要具备的安全能力之一,可以在一定程度上限制非授权用户对隐私数据的访问,保证隐私数据安全。动态数据脱敏机制可以通过配置脱敏策略实现对指定数据库资源信息的隐私保护,另一方面,脱敏策略的配置也具有一定的灵活性,可以仅针对特定用户场景实现有针对性的隐私保护能力。特性描述动态数据脱敏机制基于资源标签进行脱敏策略的定制化,可根据实际场景选择特定的脱敏方式,也可以针对某些特定用户制定脱敏策略。一个完整的脱敏策略创建的SQL语法如下所示:CREATE RESOURCE LABEL label_for_creditcard ADD COLUMN(user1.table1.creditcard); CREATE RESOURCE LABEL label_for_name ADD COLUMN(user1.table1.name); CREATE MASKING POLICY msk_creditcard creditcardmasking ON LABEL(label_for_creditcard); CREATE MASKING POLICY msk_name randommasking ON LABEL(label_for_name) FILTER ON IP(local), ROLES(dev); 其中,label_for_creditcard和msk_name为本轮计划脱敏的资源标签,分别包含了两个列对象;creditcardmasking、randommasking为预置的脱敏函数;msk_creditcard定义了所有用户对label_for_creditcard标签所包含的资源访问时做creditcardmasking的脱敏策略,不区分访问源;msk_name定义了本地用户dev对label_for_name标签所包含的资源访问时做randommasking的脱敏策略;当不指定FILTER对象时则表示对所有用户生效,否则仅对标识场景的用户生效。当前,预置的脱敏函数包括:脱敏函数名示例creditcardmasking'4880-9898-4545-2525' 将会被脱敏为 'xxxx-xxxx-xxxx-2525',该函数仅对后4位之前的数字进行脱敏basicemailmasking'abcd@gmail.com' 将会被脱敏为'xxxx@gmail.com', 对出现第一个'@'之前的文本进行脱敏fullemailmasking'abcd@gmail.com' 将会被脱敏为 'xxxx@xxxxx.com',对出现最后一个'.'之前的文本(除'@'符外)进行脱敏alldigitsmasking'alex123alex' 将会被脱敏为 'alex000alex', 仅对文本中的数字进行脱敏shufflemasking'hello word' 将会被随机打乱顺序脱敏为 'hlwoeor dl', 该函数通过字符乱序排列的方式实现,属于弱脱敏函数,语义较强的字符串不建议使用该函数脱敏。randommasking'hello word' 将会被脱敏为 'ad5f5ghdf5',将文本按字符随机脱敏regexpmasking需要用户顺序输入四个参数,reg为被替换的字符串,replace_text为替换后的字符串,pos为目标字符串开始替换的初始位置,为整数类型,reg_len为替换长度,为整数类型。reg、replace_text可以用正则表达,pos如果不指定则默认为0,reg_len如果不指定则默认为-1,即pos后所有字符串。如果用户输入参数与参数类型不一致,则会使用maskall方式脱敏。CREATE MASKING POLICY msk_creditcard regexpmasking('[\d+]', 'x', 5, 9 ) ON LABEL(label_for_creditcard);'4880-9898-4545-2525' 将会被脱敏为 '4880-xxxx-xxxx-2525'maskall'4880-9898-4545-2525' 将会被脱敏为 'xxxxxxxxxxxxxxxxxxx'每个脱敏函数规格如下:脱敏函数名支持的数据类型creditcardmaskingBPCHAR, VARCHAR, NVARCHAR, TEXT(注:仅针对信用卡格式的文本类数据)basicemailmaskingBPCHAR, VARCHAR, NVARCHAR, TEXT(注:仅针对email格式的文本类型数据)fullemailmaskingBPCHAR, VARCHAR, NVARCHAR, TEXT(注:仅针对email格式的文本类型数据)alldigitsmaskingBPCHAR, VARCHAR, NVARCHAR, TEXT(注:仅针对包含数字的文本类型数据)shufflemaskingBPCHAR, VARCHAR, NVARCHAR, TEXT(注:仅针对文本类型数据)randommaskingBPCHAR, VARCHAR, NVARCHAR, TEXT(注:仅针对文本类型数据)maskallBOOL, RELTIME, TIME, TIMETZ, INTERVAL, TIMESTAMP, TIMESTAMPTZ, SMALLDATETIME, ABSTIME,TEXT, BPCHAR, VARCHAR, NVARCHAR2, NAME, INT8, INT4, INT2, INT1, NUMRIC, FLOAT4, FLOAT8, CASH对于不支持的数据类型,默认使用maskall函数进行数据脱敏,若数据类型不属于maskall支持的数据类型则全部使用数字0进行脱敏,如果脱敏列涉及隐式转换,则结果以隐式转换后的数据类型为基础进行脱敏。另外需要说明的是,如果脱敏策略应用到数据列并生效,此时对该列数据的操作将以脱敏后的结果为基础而进行。动态数据脱敏适用于和实际业务紧密相关的场景,根据业务需要为用户提供合理的脱敏查询接口,以避免通过撞库而获取原始数据。特性增强无。特性约束动态数据脱敏策略需要由具备POLADMIN或SYSADMIN属性的用户或初始用户创建,普通用户没有访问安全策略系统表和系统视图的权限。动态数据脱敏只在配置了脱敏策略的数据表上生效,而审计日志不在脱敏策略的生效范围内。在一个脱敏策略中,对于同一个资源标签仅可指定一种脱敏方式,不可重复指定。不允许多个脱敏策略对同一个资源标签进行脱敏,除以下脱敏场景外:使用FILTER指定策略生效的用户场景,包含相同资源标签的脱敏策略间FILTER生效场景无交集,此时可以根据用户场景明确辨别资源标签被哪种策略脱敏。Filter中的APP项建议仅在同一信任域内使用,由于客户端不可避免的可能出现伪造名称的情况,该选项使用时需要与客户端联合形成一套安全机制,减少误用风险。一般情况下不建议使用,使用时需要注意客户端仿冒的风险。对于带有query子句的INSERT或MERGE INTO操作,如果源表中包含脱敏列,则上述两种操作中插入或更新的结果为脱敏后的值,且不可还原。在内置安全策略开关开启的情况下,执行ALTER TABLE EXCHANGE PARTITION操作的源表若在脱敏列则执行失败。对于设置了动态数据脱敏策略的表,需要谨慎授予其他用户对该表的trigger权限,以免其他用户利用触发器绕过脱敏策略。最多支持创建98个动态数据脱敏策略。仅支持使用上述七种预置脱敏策略。仅支持对只包含COLUMN属性的资源标签做脱敏。仅支持对基本表的列进行数据脱敏。仅支持对SELECT查询到的数据进行脱敏。FILTER中的IP地址以ipv4为例支持如下格式。ip地址格式示例单ip127.0.0.1掩码表示ip127.0.0.1|255.255.255.0cidr表示ip127.0.0.1/24ip区间127.0.0.1-127.0.0.5依赖关系无。
  • [技术解读] GaussDB- OCK加速数据传输
    GaussDB- OCK加速数据传输特性简介使用RDMA进行节点间的数据和消息传输,提高备机一致性读的性能。客户价值随着数据规模和数据节点的增加,节点之间的网络数据传输需要消耗很多的时间,影响到客户端到端的数据库体验,利用RDMA特性,可显著降低网络时延,大幅度提升备机一致性读的性能。特性描述OCK加速数据传输是OCK基于高性能RDMA网络实现的轻量级RPC框架, 用于替代原有的TCP/IP消息传输模块,负责在节点之间传送数据和各类消息,构建us级的竞争力,显著降低CPU资源开销,降低网络时延,提升备机一致性读的性能。特性增强无。特性约束数据库服务器必须使用CX5网卡。依赖关系资源池化特性。
  • [交流吐槽] 【话题交流】现在的项目用的数据库都转高斯数据库了吗?
    【话题交流】大家现在的项目都转高斯数据库了吗?随着国产xinchuang的推进,大多数国企进行国产化替代,你们的数据库都改为国产的了吗,用的高斯还是人大金仓还是达梦?
  • [技术干货] 【技术合集】数据库板块2025年6月合集
    本月围绕数据库Mysql与 Redis与MongDB应用和理论,撰写了 多篇技术博客,内容涵盖原理讲解、部署实操、架构对比及高阶用法,适合有一定开发经验的同学系统性提升。具体内容如下:MongoDB Schema设计进阶https://bbs.huaweicloud.com/forum/thread-0242186151481963009-1-1.htmlRedis缓存三大经典问题:穿透、击穿、雪崩的防御体系与实践方案https://bbs.huaweicloud.com/forum/thread-0270186151287006008-1-1.htmlMySQL Online DDL演进https://bbs.huaweicloud.com/forum/thread-0270186149379800007-1-1.htmlMongoDB分片集群设计精要https://bbs.huaweicloud.com/forum/thread-0245186146589994004-1-1.htmlRedis Pipeline与事务https://bbs.huaweicloud.com/forum/thread-0270186139908337005-1-1.htmlGaussDB全局事务管理https://bbs.huaweicloud.com/forum/thread-0265186139485857004-1-1.htmlMySQL主从复制延迟:深度剖析与全方位优化指南https://bbs.huaweicloud.com/forum/thread-0270186139258938004-1-1.htmlMongoDB聚合框架https://bbs.huaweicloud.com/forum/thread-02111186137859433003-1-1.htmlRedis内存淘汰策略深度解析https://bbs.huaweicloud.com/forum/thread-0270186135899969003-1-1.html📌 本月技术内容聚焦 Redis、Mysql、MongDB,既有底层原理的讲解,也有实战落地的操作方案,欢迎阅读、收藏、转发,如有问题欢迎留言交流,下月见!🚀
  • [技术干货] 6月13日《HCCDA-GaussDB认证考试辅导》直播热门问题解答
    【技术干货】6月13日直播回顾丨HCCDA-GaussDB认证考试辅导 本次直播为HCCDA-GaussDB认证考试提供全面辅导,旨在帮助学员深入了解数据库技术原理与应用实践。我们将详细解析考试大纲,分享高效备考策略,并讲解关键知识点。 GaussDB入门级开发者认证分为理论考试和实验考试两部分,60分为通过。理论考试时间为60分钟,试题分为判断:单选:多选,比例为3:4:3(考试题量50);实验考试共120分钟,以GaussDB实例部署、数据导入、数据库连接配置、在Java代码程序中调用SQL语句实验为重点考点。直播链接:cid:link_0 Q:GaussDB默认的事务隔离级别是什么?A: GaussDB默认的事务隔离级别Read Committed(已提交读)。 Q:开启了三权分立后,系统管理员的权限被进行限制,具体是哪些权限被限制?A: ①系统管理员将不再具有CREATEROLE权限②系统管理员将不再具有AUDITADMIN权限③系统管理员只有对自己作为所有者的对象有权限 Q : copy工具适用的场景是什么?A: ①小数据量表以文本数据作为来源导入②小数量表的导出③查询结果集导出 Q:可以自己下载安装包么? A:可以自己下载JDBC驱动包。 Q:请问实验考试前是要自己配置环境吗? A:不需要,沙箱会预置gsql和ECS。 Q:哪个数据模型以树形结构来描述数据,并且数据结构简单清晰?A: 层次模型使用树形结构简单清晰。 Q:GaussDB支持的三权分立权限访问控制模型中的角色是?A:系统管理员、安全管理员、审计管理员。 Q:怎么获取考试券呢?A:可以关注开发者学堂官网,定期在官网上线活动。 
  • [问题求助] 数据库什么情况下会自动解析成SELECT ctid, <字段...> FROM ONLY <表名> b WHERE true FOR UPDATE OF b这种语句呢?
    最近系统经常出现事务超时等待,但是显示的锁全表语句不知道是如何产生的。
  • [吐槽&反馈] 关于Gaussdb参数Random_page_cost初始值设置的建议。
    在Gaussdb的参数配置中,random_page_cost参数是设置随机扫描一个数据页的代价。这个代价的值应该参考了很久之前postgresql的参数值。这个值设置为4,而对应的顺序扫描页面的值seq_page_cost值是1。刚开始random_page_cost这个值设置为4的原因大概是基于HHD盘,随机扫描代价比较大的考虑。但是如今数据库应该很少用HHD盘的了。所以这个参数的初始值,是不是得进行修改。基于实际磁盘随机读和物理读的代价,修改得稍微比seq_page_cost的值大一点。1.1,1.2左右?这样可以让优化器正确的计算出实际上代价最小的路径。避免多余的消耗。
  • [问题求助] TPOPS任务中心无数据问题求助
    如下图,安装完TPOPS之后,检查安装包上传进度,结果任务中心啥也没有。安装包是上传成功了。添加主机的时候任务中心也没有数据,主机能初始化成功。请问我该怎么排查?
  • [分享交流] 华为HDC2025大会发布的信息,你都有哪些感受
    华为HDC2025大会发布的信息,你都有哪些感受
  • [技术干货] 大数据干货合集(2025年6月)
    复杂一点的范围比较cid:link_5Analyze 使用功能cid:link_0统计信息分类cid:link_1采样方法cid:link_2自动收集场景cid:link_6LLVM 技术解析cid:link_7如何使用 LLVMcid:link_3LLVM 适用场景cid:link_8Shared nothing的分布式架构cid:link_9Stream 算子相关的节点cid:link_10向量化执行引擎详解cid:link_11执行框架cid:link_4向量化执行引擎的性能cid:link_12向量化的演进cid:link_13索引解析https://bbs.huaweicloud.com/forum/thread-0241186375247007007-1-1.html
  • [技术干货] 索引解析
    索引能干什么呢?一言以蔽之:查询加速。常见的索引有下面几种:索引类型 描述 B-tree 行存默认使用的索引,综合性索引,特别适用于点查、主键Psort 列存默认使用的索引,存储空间小,导入性能影响小,查询提升效果比较中庸Gin基于 B-tree 树结构的倒排索引,存储被索引字段的 VALUE 或 VALUE 的元素,主要适用于数组过滤、全文检索的场景Gist 一个通用的索引接口,不同的类型支持不同的检索方式,主要适用于位置搜索Hash存储的是被索引字段 VALUE 的哈希值,只支持等值查询,特别适用于字段VALUE 非常长的场景特殊类型 表达式索引、部分索引、唯一索引B-tree 是平衡树,有序存储索引 KEY 值和 TID;对于索引上的过滤条件,通过 KEY 快速找到对应的叶子节点,然后再通过 TID找到实际记录;索引中的数据以非递减的顺序存储(页之间以及页内都是这种顺序),同级的数据页由双向链表连接;支持单列索引和复合(多列)索引,多列复合索引适用于多列组合查询,B-tree索引对于查询条件的顺序有要求;B-tree 索引可以处理等值和范围查询;索引页面不存储事务信息。Psort 索引本身是个列存表,包含索引列和 tid,在索引列上局部排序,利用MIN/MAX 块过滤加速 TID 获取;Psort 索引本身有可见性,但删除、更新数据不会作用到 Psort 索引;Psort 索引更适合做范围过滤,点查询速度较差;批量导入场景下有效,对于单条导入无效。如对于查询“select * from test1 where lower(col1) = ‘value’;”可以建立在Lower 表达式之上的索引“create index on test1(lower(col1));”,后续对于类似在lower(col1)表达式上的过滤条件,就可以直接使用这个索引加速,对于其他表达式该索引不会对查询生效。但需要注意的是:索引表达式的维护代价较为昂贵,因为在每一个行被插入或更新时都得为它重新计算相应的表达式。
  • [技术干货] 向量化的演进
    在第一代向量化引擎之后,GaussDB(DWS)演化出具有更高性能的向量化引擎:Sonic 向量化引擎和 Turbo 向量化引擎。GaussDB(DWS)为了 OLAP 执行性能提升,在列存+向量化执行引擎、批量计算的路上不断演进:Stream 算子+分布式执行框架,支持数据在多节点间流动;SMP,节点内多线程并行,充分利用空闲硬件资源;LLVM 技术,全新的代码生成框架,JIT(just in time)编译器,消除 tuple deform瓶颈;Sonic 向量化引擎,对 HashAgg、HashJoin 算子进一步向量化,根据每列不同类型实现不同 Array 来对数据做计算;新一代 Turbo 向量化引擎,对大部分算子做进一步向量化,在 Sonic 引擎的基础上,新增了 Null 优化、大整数优化、Stream 优化、Sort 优化等,进一步提升了性能。物化算子是一类可缓存元组的节点。在执行过程中,很多扩展的物理操作符需要首先获取所有的元组才能进行操作(例如聚集函数操作、没有索引辅助的排序等),这是要用物化算子将元组缓存起来。连接算子对应了关系代数中的连接操作,以表 t1 join t2 为例,主要的集中连接类型如下:inner join、left join、right join、full join、semi join、 anti join,其实现方式包括 Nestloop、HashJoin、MergeJoin。 扫描算子用来扫描表中的数据,每次获取一条元组作为上层节点的输入, 存在于查询计划树的叶子节点,它不仅可以扫描表,还可以扫描函数的结果集、链表结构、子查询结果集。
  • [技术干货] 向量化执行引擎的性能
    对比行列存引擎对同一表达式x*(1-y)计算的性能,可以看到列存引擎的Cstore Scan算子相比行存引擎的 Seq Scan 算子,耗时减少了 85%。向量计算的特点是:一次计算多个值,减少函数调用和上下文切换,尽量利用 CPU 的缓存以及向量化执行指令提高性能。向量化执行引擎的性能优势:一次一 Batch,读取更多数据,减少 IO 读次数;由于 Batch 中记录数多,相应的 CPU 的 cache 命中率提升;Pipeline 模式执行过程中的函数调用次数减少;与列存表配套,减少 tuple deform,即列存数据重构 tuple 的时间开销。向量化引擎的执行算子类似于行执行引擎,包含控制算子、扫描算子、物化算子和连接算子。同样会使用节点表示,继承于行执行节点,执行流程采用递归方式。主要包含的节点有:CStoreScan(顺序扫描),CStoreIndexScan(索引扫描),CStoreIndexHeapScan(利用 Bitmap 获取元组),VecMaterial(物化),VecSort(排序),VecHashJoin(向量化哈希连接)等,下面将逐一介绍这些执行算子。扫描算子用来扫描表中的数据,每次获取一条元组作为上层节点的输入, 存在于查询计划树的叶子节点,它不仅可以扫描表,还可以扫描函数的结果集、链表结构、子查询结果集。
  • [技术干货] 执行框架
    执行器是优化器与存储引擎的交互枢纽。以优化器生成的执行计划树为输入,从存储引擎访问数据,并按照计划,操作各种执行算子,从而实现数据的处理。采用 Pipeline 模式, 行执行器一次一 tuple,列执行器一次一 batch。上层驱动下层,使得数据在执行树上流动。提供各种数据处理的执行算子。下图展示了自上而下的控制流和自下而上的数据流。执行器的执行过程可分为这三个步骤:1) 执行器初始化:构造执行器全局状态信息 estate、递归遍历计划树各节点,初始化其执行状态信息 planstate 2) 执行器的执行:行引擎和向量化引擎入口独立开,从计划树根节点开始,递归遍历到叶节点获取一个 tuple/batch,经过逐层节点算子的处理,返回一个结果tuple/batch,直到再无 tuple/batch。3) 执行器的清理:回收执行器全局状态信息,清理各 plan node 的执行状态。行执行器的问题是:CPU 大部分处理在遍历 Plan Tree 过程,而不是真正处理数据,CPU 有效利用率低。列存表独有的应用场景,需要配套的向量化引擎,才能真正发挥其在OLAP 场景下提升性能的优势。因此,列执行器的改造基本思路为:一次处理一列数据。和行执行器一样,向量化执行引擎调度器,遵循 Pipeline 模式,但每次处理及在算子间传递数据为一次一个 Batch(即 1000 行数据),CPU 命中率提高,IO 读操作减少。
  • [技术干货] 向量化执行引擎详解
    GaussDB(DWS)包含三大引擎,一是 SQL 执行引擎,用来解析用户输入的 SQL 语句,生成执行计划,供执行引擎来执行;二是执行引擎,其中包含了行执行引擎和列执行引擎,执行引擎即查询的执行者,位于优化器和存储引擎之间,负责将数据从存储引擎中读取出来,并根据计划将数据处理加工后返回给客户端,执行引擎的目标是为了更好地利用计算资源,更快地完成计算。三是存储引擎,决定了数据库数据的存取方式,直接影响了数据库的读写性能。其中行执行引擎应用于行存表中,传统的 OLTP(OnLine Transaction Processsing 联机事务处理)场景与功能、业务强相关,数据需要进行频繁的增删改查,这时比较适合使用行存储式。行存储的优势主要有两个方面:首先是点查性能好,在点查场景下可以直接索引到某行数据的元组位置;其次就是更新效率高,行存储在实时并发入库,并发更新方面依然有着比较大的优势。行执行引擎的关键就是:一次处理一行数据,即一 tuple,适合数据频繁更新,增删改操作多,且查询结果涉及表的多列的场景。传统的行执行引擎大多采用一次一元组的执行模式,这样在执行过程中 CPU 大部分时间并没有用来处理数据,更多的是在遍历执行树,就会导致 CPU 的有效利用率较低。而在面 对 OLAP 场景巨量的函数调用次数,需要巨大的开销。为了解决这一问题,GaussDB(DWS)中增加了向量化引擎。向量化引擎使用了一次一批元组的执行模式,能够大大减少遍历执行节点的开销。同时向量化引擎还天然对接列存储,能够较为方便地在底层扫描节点装填向量化的列数据。列存+向量化执行引擎,是打开 OLAP 性能之门的金钥匙之一。
总条数:1518 到第
上滑加载中