• [技术干货] 数据湖和数据仓库
    数据湖是什么数据湖是一个大型数据存储和处理系统,其核心特点在于能够存储和处理各种类型和格式的数据,包括结构化数据、半结构化数据和非结构化数据。数据湖在存储数据时通常保持数据的原始格式,无需进行结构化处理,保留了数据的完整性和原始性。常见的数据湖架构主要包含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)将持续深入数据仓库技术的研究和实践,发挥自身优势,以丰富的跨域业务场景和实践经验,为客户构建坚实的数据底座,加速释放企业数据资产价值。
  • [技术干货] GaussDB(DWS)新增特性
    在数字化、智能化时代,数据特征呈海量化、多样化发展,业务特征呈实时化、生态化发展,对支撑数据分析的数据仓库的弹性、性能等提出了新的挑战。因此,GaussDB(DWS)全面升级,打造云原生企业级数仓,其采用全对称分布式架构,没有中心节点,所有节点都可以提供服务,没有性能瓶颈,实现千万条/秒入库吞吐,毫秒级入库时延,兼顾吞吐和时延要求。DWS具有高性能、高扩展、高可靠等亮点,能够用一套软件替换多个数据组件,简化数据链路,统一运维,提供一站式数据分析解决方案。新一代全场景数仓GaussDB(DWS)新增以下关键特性:Serverless模式,支持按需资源,按需查询等灵活计费;架构创新,实现存算分离、冷热数据自动管理,降低存储成本;兼容Hudi/ORC/Parquet等开源数据格式,实现格式化和非格式化数据统一分析;表级细粒度容灾,按需创建容灾规模,最大化降低容灾集群投资。作为一款云原生数据仓库,能够支持PB级数据分析,GaussDB(DWS)在弹性扩展、高可靠性、易用性等方面也表现出色。用户可以根据业务需求灵活调整资源,无需担心资源不足或浪费的问题。同时,GaussDB(DWS)采用了多重备份和容灾策略,确保数据的安全可靠。此外,华为云还提供了丰富的工具和接口,使得用户能够轻松上手,快速构建数据分析平台。
  • [技术干货] 全方位HA设计
    (1) ACID支持分布式事务ACID(Atomicity,Consistency,Isolation,Durability),数据强一致保证。(2) 全方位HA设计GaussDB(DWS) 所有的软件进程均有主备保证,集群的协调节点(CN)、数据节点(DN)等逻辑组件全部有主备保证,能够保证在任意单点物理故障的情况下系统依然能够保证数据可靠、一致,同时还能对外提供服务。(3) 安全GaussDB(DWS) 支持数据透明加密,同时可与数据库安全服务(DBSS)对接,基于网络隔离及安全组规则,保护系统和用户隐私及数据安全。GaussDB(DWS)还支持自动数据全量、增量备份,提升数据可靠性。按需付费:GaussDB(DWS) 按实际使用量和使用时长计费。您需要支付的费率很低,只需为实际消耗的资源付费。门槛低:您无需前期投入较多固定成本,可以从低规格的数据仓库实例起步,后续随时根据业务情况弹性伸缩所需资源,按需开支。华为云GaussDB(DWS)一站式全场景云数据仓库,提供PB级数据分析能力、多模分析和实时处理能力,以统一内核提供公有云、混合云等部署形态,用户体验一致。在金融、泛政府、电信、能源、交通、医疗、物流、电商等领域,帮助1700+大客户规模商用。
  • [技术干货] 云化分布式架构
    (1) 云化分布式架构GaussDB(DWS) 采用全并行的MPP架构数据库,业务数据被分散存储在多个节点上,数据分析任务被推送到数据所在位置就近执行,并行地完成大规模的数据处理工作,实现对数据处理的快速响应。(2) 查询高性能,万亿数据秒级响应GaussDB(DWS) 通过算子并行执行、向量化执行引擎实现指令在寄存器并行执行,以及LLVM动态编译减少查询时冗余的条件逻辑判断,助力数据查询性能提升。GaussDB(DWS)支持行列混合存储,可以同时为用户提供更优的数据压缩比(列存)、更好的索引性能(列存)、更好的点更新和点查询(行存)性能。(3) 数据加载快GaussDB(DWS)提供了GDS极速并行大规模数据加载工具。按需扩展:Shared-Nothing开放架构,可随时根据业务情况增加节点,扩展系统的数据存储能力和查询分析性能。扩容后性能线性提升:容量和性能随集群规模线性提升,线性比0.8。扩容不中断业务:扩容过程中支持数据增、删、改、查,及DDL操作(Drop/Truncate/Alter table),表级别在线扩容技术,扩容期间业务不中断、无感知。支持在线升级:8.1.1及以上源版本支持大版本在线升级,8.1.3及以上源版本支持补丁在线升级,升级期间用户无需停止业务,业务存在闪级秒断。
总条数:2746 到第
上滑加载中