• [技术干货] 华为云数仓DWS备份恢复
    在数据为王的大数据时代,企业的核心竞争力日益依赖于数据的完整性与可靠性。然而,面对数据丢失或误操作的潜在风险,如何确保业务连续性,避免经济损失,成为每个企业必须直面的挑战。华为云数仓DWS,提供高可靠的备份容灾解决方案,为企业用数安全保驾护航。因为各类原因,原始数据丢失或由于误操作导致的数据受损的事件时有发生。如果没有数据备份,数据的损坏、丢失将会造成巨大的经济损失。定期将数据进行备份,则当灾难发生时,就可以利用之前的备份数据进行恢复,从而最小化损失。同时数据备份恢复也是国家政策法规的要求,所以数据备份和恢复工作是一项不可忽视的系统工作。备份恢复在保证数据高可用方面起到巨大作用,其具体应用场景有如下几种:‌(1)数据恢复‌通过备份和恢复机制,可以在数据丢失或损坏时迅速恢复数据,确保数据的完整性和安全性。这有助于减少数据损失,保护业务连续性,避免因数据丢失或损坏导致的业务中断和客户信任度的下降‌。‌(2)数据备份定期备份数据可以防止数据丢失或损坏,无论是由于硬件故障、病毒攻击还是其他不可抗力因素。备份数据还可以用于数据迁移和更换设备,简化数据迁移过程,减少风险和麻烦‌。‌(3)故障处理备份和恢复机制可以用于故障处理和错误排查,提高数据库的稳定性和可用性。在发生故障时,可以通过恢复备份数据快速解决问题,恢复正常运行‌。‌(4)满足合规要求‌对于某些行业,如金融、医疗等,备份数据是符合合规要求的一项必要操作。这些行业的合规要求可能规定了数据备份的频率和方法,以确保数据的安全性和可靠性‌。(5)‌快速回滚到恢复点‌备份文件通常包含多个版本的数据,可以选择回滚到之前某个特定时间点的数据,以避免错误操作或数据损坏对业务造成进一步影响‌。‌恢复特定文件或数据‌:数据备份和恢复还可以帮助用户恢复特定的文件或数据,而无需恢复整个系统或数据库‌。
  • [技术干货] 基于DWS的湖仓一体方案构建
    湖仓一体可以定义为由数据湖和数据仓库组合构建的现代数据平台。更具体地说,湖仓一体拥有数据湖的非结构化数据的灵活存储特性,以及数据仓库的管理功能和工具,然后战略性地将两者作为一个更大的系统一起实施。华为云DWS湖仓一体方案通过集成DWS高性能云数据仓库和其他云原生服务,实现了数据的统一存储、管理和分析。该方案旨在帮助企业从传统的大数据和数仓方案向“一湖+多样集市+数据智能”分层建设演进,实现数据的全面整合和价值最大化。DWS凭借优异的架构优势和性能在获得业界的诸多认可,金融、互联网、零售等多个行业的用户已基于DWS构建湖仓一体方案。在技术方面DWS具有以下优势:统一元数据管理,无缝访问数据湖DWS对接元数据服务,Hive MetaStore、Lake Formation元数据管理,可直接访问数据湖的数据表定义,与开源数据无缝对接,无需创建外表,自动感知DLL变化。DWS支持主要的开源数据格式有ORC,、Parquet、Hudi、Carbon、CSV。其中对于Sql on Hudi,可进行增量查询及导入方式,既支持实时链路的增量分析,也可以支持离线链路的批量分析。湖仓融合DWS支持查询数据湖和数据仓库内的任意数据,体验一致。高效获取外表数据,进行批量计算,内外表数据join,可将数据直接写回数据湖,无需额外数据中转拷贝。跨集群数据互访打通不同数据系统、不同集群间的数据共享和跨库分析的能力,支持跨集群互访、集群间数据互联互通、计算下推、协同计算,实现数据多平台之间透明流动。DWS多VW支持基于一份数据的实时、批量、交互式SQL查询,负载完全隔离,并发线性扩展。通过元数据和数据共享,实现一份数据的异构计算引擎的多样计算。具有极致查询性能在对大量数据进行复杂的查询和分析时,通过多种手段提升访问外表性能,多层缓存(内存cache、disk cache)、分区剪枝、多层过滤下推,以及DWS的物化视图功能预先计算和存储这些查询的结果,大幅提高查询性能。
  • [技术干货] 湖仓一体的优势
    数据仓库和数据湖各有其优缺点,企业在选择时应根据自身需求和实际情况进行权衡。对于需要处理大量结构化数据并进行复杂分析的企业来说,数据仓库可能更合适;而对于需要存储大量原始数据并希望灵活地进行数据分析的企业来说,数据湖可能更合适。但数据湖和数据仓库的分离使用在大数据管理和分析中可能带来一系列问题。这些问题主要涉及到数据的整合性、管理复杂性、性能瓶颈以及数据价值的释放等方面。1 数据孤岛当数据湖和数据仓库分离时,不同系统间的数据难以实现无缝集成,形成数据孤岛。这导致企业在进行综合数据分析时,需要跨越多个系统获取数据,增加了数据整合的难度和成本。2 运维难度大, 权限管理困难分离的系统需要分别进行运维和管理,增加了IT团队的工作量和复杂性。同时,不同系统间的依赖关系也可能导致运维过程中的冲突和故障。3 性能瓶颈及其带来的数据价值释放受限问题分离的系统可能无法充分利用彼此的计算和存储资源,导致数据处理效率低下。例如,当数据仓库需要处理大量数据时,可能无法及时从数据湖中获取所需的数据,从而影响分析结果的时效性。分离的系统可能无法提供统一的查询接口和优化策略,导致查询性能受限。用户可能需要在不同的系统间切换以获取完整的数据视图,增加了查询的复杂性和时间成本。由于数据处理和查询性能的限制,企业可能无法及时获取准确的数据分析结果,导致业务决策滞后。在快速变化的市场环境中,这种滞后可能使企业错失商机或面临更大的风险。分离的数据湖与数据仓库无法提供全面的数据分析能力,限制了企业对数据价值的深入挖掘。例如,数据仓库可能擅长处理结构化数据,但无法有效处理数据湖中的非结构化数据。而数据湖虽然能够存储各种类型的数据,但缺乏高效的数据分析工具和算法。那如果融合数据湖和数据仓库的优势,那是不是就可以提供一个更具性价比更有优势的解决方案?基于这个问题,湖仓一体便应运而生。
  • [技术干货] 数据湖和数据仓库
    数据湖是什么数据湖是一个大型数据存储和处理系统,其核心特点在于能够存储和处理各种类型和格式的数据,包括结构化数据、半结构化数据和非结构化数据。数据湖在存储数据时通常保持数据的原始格式,无需进行结构化处理,保留了数据的完整性和原始性。常见的数据湖架构主要包含OBS/HDFS等构成的存储层、元数据平台、Hive/Spark/Flink等数据处理框架等主要组件。数据仓库是什么数据仓库是一种不同于数据湖的存储库,数据仓库存储经过处理和结构化的数据,为特定目的维护,并以特定的格式存储。数据仓库要求严格的结构化数据模式,以保证数据的一致性和准确性。它是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持经营管理中的决策制定过程。它被视为商业智能(BI)的核心组件,通过提供全面、大量的数据存储来有效支持高层决策分析。数据仓库在业务分析、决策支持、数据挖掘等方面广泛应用。二者联系两者的最终目标都是为了支持数据驱动的决策,通过对数据的有效管理和处理,帮助企业从数据中挖掘价值。无论是数据湖还是数据仓库,都是企业数据架构的重要组成部分,旨在解决数据分散、难以利用的问题,为业务分析、报表生成、机器学习等场景提供数据支持。
  • [技术干货] GaussDB(DWS)演化
    在第一代向量化引擎之后,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优化等,进一步提升了性能。向量化引擎的执行算子类似于行执行引擎,包含控制算子、扫描算子、物化算子和连接算子。同样会使用节点表示,继承于行执行节点,执行流程采用递归方式。主要包含的节点有:CStoreScan(顺序扫描),CStoreIndexScan(索引扫描),CStoreIndexHeapScan(利用Bitmap获取元组),VecMaterial(物化),VecSort(排序),VecHashJoin(向量化哈希连接)等。
  • [技术干货] 向量化执行引擎的性能
    行执行器的问题是:CPU大部分处理在遍历Plan Tree过程,而不是真正处理数据,CPU有效利用率低。列存表独有的应用场景,需要配套的向量化引擎,才能真正发挥其在OLAP场景下提升性能的优势。因此,列执行器的改造基本思路为:一次处理一列数据。和行执行器一样,向量化执行引擎调度器,遵循Pipeline模式,但每次处理及在算子间传递数据为一次一个Batch(即1000行数据),CPU命中率提高,IO读操作减少。列存表的某些场景不支持向量化执行引擎,譬如:string_to_array、listagg、string_agg等。GaussDB(DWS)具有将两套行列引擎自动切换的能力。针对列存数据,如果只有行引擎,通常需要将列数据重构成元组tuple给执行引擎逐行处理。Tuple deform过程影响列存数据查询处理的性能。对比行列存引擎对同一表达式x*(1-y)计算的性能,可以看到列存引擎的Cstore Scan算子相比行存引擎的Seq Scan算子,耗时减少了85%。向量计算的特点是:一次计算多个值,减少函数调用和上下文切换,尽量利用CPU的缓存以及向量化执行指令提高性能。向量化执行引擎的性能优势:一次一Batch,读取更多数据,减少IO读次数。由于Batch中记录数多,相应的CPU的cache命中率提升。Pipeline模式执行过程中的函数调用次数减少。与列存表配套,减少tuple deform,即列存数据重构tuple的时间开销。
  • [技术干货] 执行器
    执行器是优化器与存储引擎的交互枢纽。以优化器生成的执行计划树为输入,从存储引擎访问数据,并按照计划,操作各种执行算子,从而实现数据的处理。采用Pipeline模式, 行执行器一次一tuple,列执行器一次一batch。上层驱动下层,使得数据在执行树上流动。提供各种数据处理的执行算子。展示了自上而下的控制流和自下而上的数据流。执行器的执行过程可分为这三个步骤:执行器初始化:构造执行器全局状态信息estate、递归遍历计划树各节点,初始化其执行状态信息planstate执行器的执行:行引擎和向量化引擎入口独立开,从计划树根节点开始,递归遍历到叶节点获取一个tuple/batch,经过逐层节点算子的处理,返回一个结果tuple/batch,直到再无tuple/batch。执行器的清理:回收执行器全局状态信息,清理各plan node的执行状态。
  • [技术干货] 向量化执行引擎
    传统的行执行引擎大多采用一次一元组的执行模式,这样在执行过程中CPU大部分时间并没有用来处理数据,更多的是在遍历执行树,就会导致CPU的有效利用率较低。在面对OLAP场景巨量的函数调用次数时,需要巨大的开销。为了解决这一问题,GaussDB(DWS)中增加了向量化引擎。向量化引擎使用了一次一批元组的执行模式,能够大大减少遍历执行节点的开销。同时向量化引擎还天然对接列存储,能够较为方便地在底层扫描节点装填向量化的列数据。列存 + 向量化执行引擎,是打开OLAP性能之门的金钥匙之一!行存表按行存储tuple到Page页面。多用于TP场景,这些场景数据频繁更新,增删改操作多,查询结果涉及表的多列。列存表按列存储,每列数据存储到一个文件,多用于AP场景。列存表具有如下优点:表列数多,访问列数少,减少IO操作次数列数据具有同质性,提高数据压缩比基于列批量数据的运算,CPU的cache命中率高 
  • [技术干货] 云原生架构的优势
    2023年到2028年全球企业侧的年数据规模呈现爆发增长态势,到2028年数据规模将达到317.1ZB,2023-2028年复合增长率为30.3%,未来数据仓库产品的市场潜力巨大。在新趋势下,华为云数仓GaussDB(DWS)持续创新,以独特的云原生架构和强大的AI能力,实现湖仓智融合,引领数据仓库产品的发展方向。华为云数仓GaussDB(DWS)采用存-算-管三层分离的架构,基于云原生能力,让计算、存储可单独按需弹性扩展,从而支撑企业业务的灵活扩展,让工作负载在峰值场景下平稳运行。此外,存算分离的弹性计费模式与数据共享进一步提升性价比,助力企业存储成本降低50%。面对日益多样化的数据分析场景,华为云数仓GaussDB(DWS)为用户提供PB级数据的实时数据仓库解决方案和亚秒级交互式查询服务,支持流批一体,实时入库,真正实现数据实时写入即可查。PB级数据入库毫秒级时延,助力企业实时数据平台建设,为企业数字化转型提供坚实支撑。在数字经济时代背景下,大数据与人工智能技术的深度融合已成为推动行业数字化转型的关键趋势。华为云数仓GaussDB(DWS)针对此趋势推出了一系列AI-Ready数据处理新功能,涵盖了对数据湖中半结构化与非结构化数据的高效管理及批量处理,为AI生产线提供高质量数据;同时,可以将AI模型的推理能力便捷集成到数据处理过程中;此外,通过AI赋能实现参数自调优、异常自诊断、资源自感知等智能特性,提升效率和易用性,显著降低维护运营成本。 
  • [数据库使用] NestLoop+indexscan的适用及不适用场景
    NestLoop+indexscan的适用及不适用场景名词解释扫描算子Seq Scan/CStore Scan:顺序扫描Index Scan/CStore Index Scan: 索引扫描连接算子NestLoop:嵌套循环连接,暴力连接,对每一行都扫描内表,适用于被连接的数据子集较小的查询。在嵌套循环中,外表驱动内表,外表返回的每一行都要在内表中检索找到它匹配的行,因此整个查询返回的结果集不能太大(不能大于10000),要把返回子集较小的表作为外表,而且在内表的连接字段上建议要有索引。HashJoin: 哈希连接,内外表使用join列的hash值建立hash表,相同值的必在同一个hash桶。等值连接的连接两端必须为类型相同的等值连接,且支持hash散列。哈希连接,适用于数据量大的表的连接方式。优化器使用两个表中较小的表,利用连接键在内存中建立hash表,然后扫描较大的表并探测散列,找到与散列匹配的行。Sonic和非Sonic的Hash Join的区别在于所使用hash表结构不同,不影响执行的结果集。MergeJoin:归并连接(输入有序),内外表排序,定位首尾两端,一次性连接元组。等值连接。也称作“融合连接”,是先将关联表的关联列各自做排序,然后从各自的排序表中抽取数据,到另一个排序表中做匹配。因为Merge join需要做更多的排序,所以消耗的资源更多,因此通常情况下执行性能差于Hash Join。 如果源数据已经被排序过,在执行融合连接时,并不需要再排序,此时Merge Join的性能优于Hash Join。1、NestLoop+indexscan的适用场景该计划适用于从大量数据中读取少量数据,且索引效果好的场景上,示例如下:1.1问题描述某客户反馈两个表的关联要去秒级返回,其中大表有2.7T,小表有100GB左右,查询结果一般都不大,过滤条件中有过滤性比价好的条件。1.2 原始执行计划两个表关联走了HashJoin,主要的耗时在基表扫描和HashJoin操作上1.3 问题根因主要的耗时点是在Hashjoin 和基表扫描上,这种情况下可以考用NestLoop+indexScan的计划。这种计划会把join条件下推到基表扫描上,然后利用基表的索引,提前把数据过滤掉。1.4 解决详情由于NestLoop+indexScan的计划有一些约束:Join的时候不能有stream(不能通过stream来传递join条件的下推)大表上要有合适的索引。 2、NestLoop+indexscan的不适用场景当数据量较大,索引条件过滤性不好,即从大量数据中读取大量数据时,不适用于该场景。2.1 问题描述计划在 indexscan 上劣化,列存扫描走了 indexscan 扫描 14万数据花费21秒2.2 原始计划2.3 问题根因主要耗时点花在了 idnex scan 上,这个时候可以考虑走 tablescan2.4 解决详情通过加 hint 方式指定EXPLAIN PERFORMANCE SELECT /+set global(enable_index_nestloop off)/ COUNT() FROM ( SELECT /+ tablescan(a) */ formated_url AS formatedUrl, ifnull (rb_or_cardinality_agg (bitmap_users), 0) AS uvCount FROM furion_mammoth_data.furion_url_metric a WHERE app_id = 'FC4761A8AD25490C93C8B74F77266E7E' AND region IN ('cn-north-4','ap-southeast-1','cn-south-1','cn-east-3','cn-southwest-2','cn-north-9','ap-southeast-3', 'af-south-1','la-south-2','ap-southeast-2','sa-brazil-1','la-north-2','eu-west-101','me-east-1') AND dt >= '2025-01-01' AND dt <= '2025-05-31' AND date_type = 'day' AND pv > 0 GROUP BY formatedUrl ) page WHERE uvCount > 0总结index + nestloop 适用的场景一般是小表 join 大表,结果集又比较小,这时候可以通过大表索引加快查询速度,但是列存表的索引效果比较差,所以走hashjoin + tablescan的方式更快一点,如果是带索引的行存表,index + nestloop的性能可能会更好一些,另外 index scan 扫描建议使用在表数据量大且扫描结果集小的场景下较优
  • [SQL] GaussDB(DWS) 821以上版本利用gs_stack打堆栈小技巧
    在dws定位性能问题的时候,有时我们需要利用堆栈进行深入分析,查看sql究竟慢在什么地方。在821之前的版本,我们只能通过先查询活跃视图pgxc_stat_activity找到query_id,再通过query_id关联等待视图pgxc_thread_wait_status,获取目标线程的dn号和lwtid,最后登录到对应dn的节点,执行gstack命令,打印线程堆栈。该方法效率较低,特别是秒级sql的时候,经常来不及打堆栈,语句就结束了。现在,821版本给我们带来了喜报,集群内集成了打堆栈的函数gs_stack,在cn上就能打到任意实例上的线程堆栈,突出一个安全,快捷,高效。推荐使用方法:将sql_feature替换成能过滤出目标语句的sql特征即可select *,gs_stack(node_name, tid) from pgxc_thread_wait_status where query_id = (select query_id from pgxc_stat_activity WHERE STATE = 'active' AND query like '%sql_feature%' and query not like '%pgxc_stat_activity%' ORDER BY query_start limit 1) and wait_status NOT LIKE '%synchronize quit%' and wait_status NOT LIKE '%wait node%';参考文献:gs_stack函数产品文档  
  • [运维管理] 创建表时提示 aclcheck_error, aclchk.cpp:3654,permission denied for schema zhangsan,非常奇怪
    用户反馈在建表时提示 permission denied for schema zhangsan,我看过建表SQL语句,没有任何有关zhangsan  Schema的表。用户在zhangsan  Schema中具有usage权限
  • [分享交流] HDC2025大会打造鸿蒙生态全新体验,大家怎么看
    HDC2025大会打造鸿蒙生态全新体验,大家怎么看
  • [技术干货] 大数据干货合集(2025年6月)
    nextval参数cid:link_4Sequence自增整数序列cid:link_5CREATE SEQUENCE语句的使用方法cid:link_6CYCLE参数cid:link_0指定序列与列的归属关系cid:link_1DROP SEQUENCE语句的使用方法cid:link_7lastval参数cid:link_8setval参数cid:link_9重置自增列的开始序号cid:link_10语法兼容性cid:link_2生态兼容性cid:link_11云化分布式架构cid:link_12全方位HA设计cid:link_13GaussDB(DWS)新增特性cid:link_3智能查询优化技术https://bbs.huaweicloud.com/forum/thread-0265186419309859014-1-1.html
  • [技术干货] 智能查询优化技术
    在性能方面,GaussDB(DWS)采用了智能查询优化技术,能够自动分析查询语句,选择最优的执行计划,提高查询效率。同时,GaussDB(DWS)还支持多种计算引擎,包括向量化执行引擎、列式存储引擎等,能够根据不同的应用场景选择最合适的计算引擎,实现更高效的数据处理。目前,GaussDB(DWS)已经成功应用于金融、政企、零售、交通等多个行业,服务于全球2000+客户。招商银行基于华为云GaussDB(DWS),构筑新一代更强算力、更大存储的云数仓。已建成的240节点超大集群,承载了全行所有零售数据应用,可存储10PB业务数据,容量提升超4倍,批处理作业运行总时间显著缩短;助力实现“人人用数”支撑行内创新持续前行。广发银行使用华为云GaussDB(DWS)实现传统数据仓库平台替换,整体跑批性能显著提升。未来,华为云数仓GaussDB(DWS)将持续深入数据仓库技术的研究和实践,发挥自身优势,以丰富的跨域业务场景和实践经验,为客户构建坚实的数据底座,加速释放企业数据资产价值。
总条数:2749 到第 页
上滑加载中