-
【直播回放】直播回放地址【总结简报】 华为开发者布道师技术沙龙 · 直播间精彩回顾【第1期】联接高校人才培养与前沿产业技术,成就学生未来 / 李一浩老师【第2期】逐梦之旅:学生开发者到华为开发者布道师的蜕变 / 杨阳同学【第3期】昇思MindSpore:AI 领域的创新力量与跨平台之路 / 陈新杰同学【第4期】基于OpenHarmony计算机学科人才培养经验分享 / 周睿老师【第5期】计算机核心课程贯通式实践教学体系介绍 / 赵欢老师、李博经理、杨科华老师【第6期】OpenHarmony应用开发之网络数据请求与数据解析 / 倪红军老师【第7期】华为开发者空间玩转DeepSeek / 马欣老师【第8期】基于能力图谱的openGauss项目闯关 / 马瑞新老师【第9期Day1】基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战 / 齐耀龙老师【第9期Day2】基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战 / 齐耀龙老师【第10期】基于华为云+DeepSeek大模型的脑肿瘤分割实验教学案例 / 林承德老师【第11期】WS63E星闪开发板快速入门指南:开启星闪技术之旅 / 杨阳同学【第12期】星闪应用开发技术课程(群)建设思路与设想 / 葛非老师【第13期】星闪主从一体模式与线性星闪网络 / 齐耀龙老师【第14期】基于昇腾的皮肤病理多模态大模型研发 / 崔笑宇老师【第15期】基于昇腾NPU的合成孔径雷达成像案例 / 李阳老师【第16期】香橙派AIpro的远程推理框架与实验案例 / 郝家胜老师【第17期】鸿蒙端云一体化应用开发 / 倪红军老师【第18期】基于HarmonyOS NEXT应用开发之旅 / 刘俊威同学、吴玉佩同学【第19期】OpenHarmony生态构建 / 王天一同学、聂嘉一同学【第20期】仓颉编程语言的社区化学习实践 / 张引老师【第21期】X+AI驱动下的教育革新与产教融合实践 / 张杨老师【第22期】基于华为云CodeArts的软件开发技术 / 马瑞新老师【第23期】GaussDB在数据库教学与实践中的应用 / 刘斌老师本期问答摘要:序号问题答复1gaussDB的基本架构是怎样的?它与传统的SQL数据库相比有哪些优势?分布式架构。支持集中式和分布式集群部署。云数据库部署更方便。详见GaussDB文档2gaussDB支持哪些数据类型和SQL标准?GaussDB支持SQL933gaussDB的性能监控和调优工具有哪些?在教学中如何通过实际案例来展示这些工具的使用方法?有一个专门的DBA智能运维的工具。4gaussDB的SQL语法与标准SQL有哪些主要区别?支持标准的SQL语法。QL: 2011 标准,并包含了部分 SQL: 2016 和 SQL: 2019 的特性。同时,它对主流的 Oracle 和 PostgreSQL 语法有很好的兼容性。5GaussDB支持哪些高级SQL特性,如窗口函数、递归查询等?窗口函数支持、机器学习库也支持,全密态查询6gaussDB的事务管理机制是怎样的?它如何支持ACID特性?在教学中如何演示这些概念?事务支持4种隔离级别,支持MVCC。7如何支持分布式部署?它在分布式环境下的数据一致性是如何保证的?引入全局节点,全局事务管理器等节点,在架构上支持,其次支持数据的各种分片。8opengauss和gaussDB的语法是一样的吗?基本一致9GaussDB在满足金融行业对数据一致性、高可用性和安全性的严苛要求方面,采用了哪些关键技术机制?与传统的Oracle数据库相比,它在处理高并发事务和灾难恢复能力上有哪些优势和局限性?分布式强一致性(核心):技术:基于 Paxos/Raft 协议的多副本同步机制。技术:全局事务管理器(GTM) + 两阶段提交(2PC)。机制:GTM负责分配全局唯一的事务ID和快照,为整个集群提供统一的事务视图。对于跨多个数据节点的写操作,CN作为协调者,通过2PC协议确保所有节点要么全部提交,要么全部回滚,保证了分布式事务的原子性(Atomicity)。同城双集群强一致性容灾:技术:基于共享存储或日志同步,两个位于同城不同机房的集群可以组成一个大的Paxos组。机制:写操作需要同时在同城两个机房的多数派副本上持久化。单个机房完全故障,另一个机房能立即接管服务,且数据零丢失(RPO=0),恢复时间目标(RTO)通常在秒级到分钟级。这是金融容灾的最高标准。异地灾备:通过逻辑日志或REDO日志异步复制到异地机房,提供远距离的数据备份,防范城市级灾难。节点级高可用:集群内每个DN节点都有主备副本,通过流复制技术保持同步。主节点故障时,备节点能通过选举机制自动、快速(30秒以内)切换为主节点,应用几乎无感知。3. 高安全性机制金融数据是最高机密,必须严防泄露和篡改。全链路加密:支持 TLS/SSL 加密客户端与数据库、以及集群内部节点之间的通信。支持 透明数据加密(TDE),对数据文件进行静态加密,即使硬盘被盗,数据也无法被读取。细粒度权限与访问控制:提供完整的角色管理、权限管理(GRANT/REVOKE)。支持行级访问控制(RLS) 和列级加密,实现“同一张表,不同用户看到不同的行和列”。数据脱敏与审计:提供动态数据脱敏功能,在查询结果返回时对敏感信息(如身份证号)进行掩码。具备强大的安全审计能力,记录所有用户的操作日志,满足合规要求。10GaussDB支持哪些类型的事务隔离级别?四种都支持11GaussDB支持哪些编程接口和驱动?Python,C,Java,操作系统支持WIndows,Unix,等12GaussDB支持自治事务吗?和Oracle在自治事务处理上有何差异?答案是:支持,但实现方式和语法与Oracle有显著差异,具体实现、语法和细节上,两者存在重要区别。。GaussDB(基于openGauss)通过 PL/pgSQL 的 PRAGMA AUTONOMOUS_TRANSACTION 编译指令来支持自治事务。这是一种在存储过程或函数中声明特定子程序为独立事务的机制。
-
collector在尝试采集replication、replication_slot指标时失败了,报错信息如下:time=2025-09-05T09:34:16.375+08:00 level=ERROR source=collector.go:207 msg="collector failed" name=replication duration_seconds=0.0711601 err="ERROR: Function pg_last_wal_receive_lsn() does not exist. (SQLSTATE 42883)"time=2025-09-05T09:34:16.674+08:00 level=INFO source=namespace.go:235 msg="error finding namespace" err="Error running query on database \"113.44.80.136:8000\": pg_stat_replication ERROR: Function pg_last_wal_receive_lsn() does not exist. (SQLSTATE 42883)"time=2025-09-05T09:34:16.711+08:00 level=INFO source=namespace.go:235 msg="error finding namespace" err="Error running query on database \"113.44.80.136:8000\": pg_replication_slots ERROR: Function pg_last_wal_receive_lsn() does not exist. (SQLSTATE 42883)"time=2025-09-05T09:34:16.755+08:00 level=ERROR source=collector.go:207 msg="collector failed" name=replication_slot duration_seconds=0.4515532 err="ERROR: Function pg_last_wal_receive_lsn() does not exist. (SQLSTATE 42883)"time=2025-09-11T15:33:59.609+08:00 level=ERROR source=gaussdb_exporter.go:684 msg="error scraping dsn" err="queryNamespaceMappings errors encountered, namespace: pg_stat_replication error: Error running query on database \"113.44.80.136:8000\": pg_stat_replication ERROR: Function pg_last_wal_receive_lsn() does not exist. (SQLSTATE 42883), namespace: pg_replication_slots error: Error running query on database \"113.44.80.136:8000\": pg_replication_slots ERROR: Function pg_last_wal_receive_lsn() does not exist. (SQLSTATE 42883)" dsn="gaussdb://root:PASSWORD_REMOVED@113.44.80.136:8000/circle_test?sslmode=disable"相关SQL:SELECT *, (CASE pg_is_in_recovery () WHEN 't' THEN pg_last_wal_receive_lsn () ELSE pg_current_wal_lsn () END) AS pg_current_wal_lsn, ( CASE pg_is_in_recovery () WHEN 't' THEN pg_wal_lsn_diff (pg_last_wal_receive_lsn (), PG_LSN ('0/0')) :: FLOAT ELSE pg_wal_lsn_diff (pg_current_wal_lsn (), PG_LSN ('0/0')) :: FLOAT END ) AS pg_current_wal_lsn_bytes, ( CASE pg_is_in_recovery () WHEN 't' THEN pg_wal_lsn_diff (pg_last_wal_receive_lsn (), replay_lsn) :: FLOAT ELSE pg_wal_lsn_diff (pg_current_wal_lsn (), replay_lsn) :: FLOAT END ) AS pg_wal_lsn_diffFROM pg_stat_replication;SELECT slot_name, DATABASE, active, (CASE pg_is_in_recovery () WHEN 't' THEN pg_wal_lsn_diff (pg_last_wal_receive_lsn (), restart_lsn) ELSE pg_wal_lsn_diff (pg_current_wal_lsn (), restart_lsn) END) AS pg_wal_lsn_diffFROM pg_replication_slots;SELECT slot_name, slot_type, CASE WHEN pg_is_in_recovery () THEN pg_last_wal_receive_lsn () - '0/0' ELSE pg_current_wal_lsn () - '0/0' END AS current_wal_lsn, 0 AS confirmed_flush_lsn, activeFROM pg_replication_slots;错误提示很明确:SQL查询中引用了名为 pg_last_wal_receive_lsn() 的函数,但该函数在数据库系统中不存在。GaussDB版本是:gaussdb (GaussDB Kernel 505.2.1 build ff07bff6) compiled at 2024-12-27 09:22:42 commit 10161 last mr 21504 release采集工具是:Prometheus gaussdb_exporter 从报错信息和背景来看,核心问题是GaussDB 与 PostgreSQL 在复制相关系统函数上存在差异,导致监控工具(gaussdb_exporter)使用的 PostgreSQL 风格函数在 GaussDB 中不被支持。一、问题的根因:GaussDB 与 PostgreSQL 的函数差异pg_last_wal_receive_lsn()是 PostgreSQL 特有函数该函数用于获取备库(处于恢复模式)最后接收的 WAL(Write-Ahead Log)位置,是 PostgreSQL 9.6 及以上版本的内置函数(早期版本使用pg_last_xlog_receive_lsn(),因 PostgreSQL 10 将 XLOG 重命名为 WAL)。GaussDB 不支持该函数您使用的 GaussDB 版本(Kernel 505.2.1)虽然基于 PostgreSQL 开发,但在复制机制的函数实现上有调整,未提供pg_last_wal_receive_lsn()。这是典型的 “兼容性差异”——GaussDB 保留了 PostgreSQL 的核心语法,但在部分系统函数(尤其是与底层存储、复制相关的)上做了定制化实现。二、一些解决方案:适配 GaussDB 的复制指标采集方法GaussDB 通过系统视图和自有函数提供复制相关信息,需修改监控查询语句,替换pg_last_wal_receive_lsn()为 GaussDB 支持的方式。以下是具体改造方案:1. 明确 GaussDB 的复制状态判断与 LSN 获取方式需求(原 PostgreSQL 函数)GaussDB 替代方案说明判断是否为备库(pg_is_in_recovery())仍可使用pg_is_in_recovery()(GaussDB 兼容该函数)返回t表示备库,f表示主库备库最后接收的 LSN(pg_last_wal_receive_lsn())从pg_stat_replication视图的receive_lsn字段获取(主库视角);或备库通过pg_stat_get_wal_receive_lsn()函数(部分版本支持)GaussDB 中,备库的接收 LSN 直接记录在复制状态视图中,无需单独函数计算主库当前 WAL 位置(pg_current_wal_lsn())使用pg_current_wal_lsn()(GaussDB 兼容)或pg_stat_get_wal_current_lsn()函数主库当前写入的 WAL 位置,与 PostgreSQL 用法一致2. 修改监控 SQL 语句(核心改造)针对您提供的 3 条 SQL,替换pg_last_wal_receive_lsn()为 GaussDB 支持的方式:(1)第一条 SQL(pg_stat_replication查询)原 SQL 问题:备库判断分支使用了pg_last_wal_receive_lsn(),GaussDB 不支持。改造后: SELECT *, -- 替换备库LSN获取方式:主库用pg_current_wal_lsn(),备库从pg_stat_replication取receive_lsn (CASE pg_is_in_recovery () WHEN 't' THEN (SELECT receive_lsn FROM pg_stat_replication LIMIT 1) -- 备库场景 ELSE pg_current_wal_lsn () END) AS pg_current_wal_lsn, ( CASE pg_is_in_recovery () WHEN 't' THEN -- 备库:计算receive_lsn与0/0的差值 pg_wal_lsn_diff ((SELECT receive_lsn FROM pg_stat_replication LIMIT 1), PG_LSN ('0/0')) :: FLOAT ELSE -- 主库:沿用原逻辑 pg_wal_lsn_diff (pg_current_wal_lsn (), PG_LSN ('0/0')) :: FLOAT END ) AS pg_current_wal_lsn_bytes, ( CASE pg_is_in_recovery () WHEN 't' THEN -- 备库:用receive_lsn与replay_lsn计算差值 pg_wal_lsn_diff ((SELECT receive_lsn FROM pg_stat_replication LIMIT 1), replay_lsn) :: FLOAT ELSE -- 主库:沿用原逻辑 pg_wal_lsn_diff (pg_current_wal_lsn (), replay_lsn) :: FLOAT END ) AS pg_wal_lsn_diffFROM pg_stat_replication; (2)第二条 SQL(pg_replication_slots查询)改造后: SELECT slot_name, database, active, (CASE pg_is_in_recovery () WHEN 't' THEN -- 备库:用receive_lsn计算差值 pg_wal_lsn_diff ((SELECT receive_lsn FROM pg_stat_replication LIMIT 1), restart_lsn) ELSE -- 主库:沿用原逻辑 pg_wal_lsn_diff (pg_current_wal_lsn (), restart_lsn) END) AS pg_wal_lsn_diffFROM pg_replication_slots; (3)第三条 SQL(pg_replication_slots补充查询) SELECT slot_name, slot_type, CASE WHEN pg_is_in_recovery () THEN -- 备库:用receive_lsn与0/0的差值 pg_wal_lsn_diff ((SELECT receive_lsn FROM pg_stat_replication LIMIT 1), PG_LSN ('0/0')) ELSE -- 主库:沿用原逻辑 pg_wal_lsn_diff (pg_current_wal_lsn (), PG_LSN ('0/0')) END AS current_wal_lsn, 0 AS confirmed_flush_lsn, activeFROM pg_replication_slots; 3. 验证 GaussDB 的系统视图与函数执行以下语句确认 GaussDB 支持的字段和函数,确保改造有效:-- 1. 查看pg_stat_replication视图结构(确认是否有receive_lsn字段)\d pg_stat_replication;-- 2. 检查备库LSN相关函数(部分GaussDB版本可能提供)SELECT pg_stat_get_wal_receive_lsn(); -- 若返回值,则可替代子查询-- 3. 确认主库当前LSN函数SELECT pg_current_wal_lsn(); 4. 调整 gaussdb_exporter 配置将修改后的 SQL 更新到 gaussdb_exporter 的查询模板中(通常在queries.yaml或代码内置的 SQL 字符串中),重新部署 exporter 即可。三、版本差异说明GaussDB 与 PostgreSQL 的基础版本关联您使用的 GaussDB Kernel 505.2.1 对应的 PostgreSQL 基础版本接近PostgreSQL 9.2/9.3(通过内核特性推断),而pg_last_wal_receive_lsn()是 PostgreSQL 9.6 + 引入的(替换了 9.5 及之前的pg_last_xlog_receive_lsn())。因此,从基础版本兼容性来看,GaussDB 不支持该函数符合其版本定位。GaussDB 的复制机制特点GaussDB 的主备复制依赖自有逻辑(如日志复制、一致性校验),更倾向于通过pg_stat_replication(主库视图)、pg_stat_slave_replication(备库视图,部分版本有)等视图暴露状态,而非独立函数。这也是改造时优先使用视图字段的原因。四、总结一下下问题根因是GaussDB 不支持 PostgreSQL 的pg_last_wal_receive_lsn()函数,需通过查询系统视图(如pg_stat_replication的receive_lsn字段)替代。核心解决方案是:修改监控 SQL,用 GaussDB 的视图字段替换 PostgreSQL 特有函数;确认pg_stat_replication等视图的字段存在性,确保 LSN 计算逻辑正确;调整 gaussdb_exporter 的查询模板,适配 GaussDB 的复制指标采集方式。
-
与某内部MRS集群Hive对接,服务器上部署了Spark,连接云端的Hive,参考的样例代码为mrs-example-mrs-3.3.0中的hive-jdbc-example,通过获取连接url,用spark.read().format("jdbc").options(xxxx)的方式;现在报错内容是:①unable to read HiveServer2 configs from ZooKeeper②KeeperErrorCode=Session closed because client failed to authenticate for /hiveserver2改造的内容是hive-jdbc-example中的USER_NAME的值,usedir的路径为实际路径从报错信息来看,核心问题集中在ZooKeeper 连接与认证失败,这通常与云端 Hive 的服务发现配置、认证机制(如 Kerberos)以及客户端参数匹配有关。一、错误原因分析错误①:unable to read HiveServer2 configs from ZooKeeper原因:Spark 通过 ZooKeeper 自动发现 HiveServer2 地址时失败。可能是 ZooKeeper 集群地址 / 端口错误、ZooKeeper 中 HiveServer2 的注册路径(默认/hiveserver2)被修改,或网络不通(如防火墙阻止 ZooKeeper 端口 2181/2182)。错误②:KeeperErrorCode=Session closed because client failed to authenticate for /hiveserver2原因:ZooKeeper 启用了认证机制(MRS 集群通常默认集成 Kerberos,ZooKeeper 可能依赖 Kerberos 认证),而 Spark 客户端未正确配置认证信息,导致 ZooKeeper 拒绝连接。二、解决步骤(针对 MRS 集群 Hive 的适配)1. 确认 Hive 连接的核心参数(基于 ZooKeeper 的服务发现)MRS 集群的 Hive 通常通过 ZooKeeper 实现 HiveServer2 的高可用,连接 URL 格式为: jdbc:hive2://<zk-quorum>/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;<auth-params> 其中关键参数需与云端 MRS 集群一致:<zk-quorum>:ZooKeeper 集群地址,格式为zk-node1:port,zk-node2:port(MRS 集群的 ZooKeeper 端口通常是 2181,若启用安全模式可能是 2182)。zooKeeperNamespace:HiveServer2 在 ZooKeeper 中的注册根路径(默认hiveserver2,若云端有自定义需同步修改)。<auth-params>:认证相关参数(MRS 默认启用 Kerberos,需添加 Kerberos 认证参数)。2. 配置 Kerberos 认证(解决 ZooKeeper 认证失败)MRS 集群的 Hive 和 ZooKeeper 通常集成 Kerberos 安全认证,客户端必须通过 Kerberos 认证才能访问。需完成以下配置:(1)获取 Kerberos 配置文件从 MRS 集群控制台下载:krb5.conf:Kerberos 的配置文件(包含 KDC 地址、 Realm 等信息)。用于访问 Hive 的keytab文件(如hiveuser.keytab)和对应的principal(如hiveuser@HADOOP.COM)。将这两个文件放置在本地 Spark 服务器的可访问路径(如/etc/krb5.conf、/opt/keytabs/hiveuser.keytab)。(2)Spark 代码中添加 Kerberos 认证参数在spark.read.jdbc的options中添加 Kerberos 相关配置,同时确保 JVM 加载krb5.conf:import org.apache.spark.sql.SparkSession object HiveJdbcExample { def main(args: Array[String]): Unit = { val spark = SparkSession.builder() .appName("Hive-JDBC-Example") // 加载Kerberos配置 .config("spark.driver.extraJavaOptions", "-Djava.security.krb5.conf=/etc/krb5.conf") .config("spark.executor.extraJavaOptions", "-Djava.security.krb5.conf=/etc/krb5.conf") .getOrCreate() // Hive JDBC连接参数 val jdbcOptions = Map( "url" -> "jdbc:hive2://zk-node1:2181,zk-node2:2181,zk-node3:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;authMech=1;principal=hive/_HOST@HADOOP.COM", "dbtable" -> "default.t1", // 目标表 "user" -> "hiveuser", // MRS集群的Hive用户名 "password" -> "", // Kerberos认证时密码可为空,依赖keytab "driver" -> "org.apache.hive.jdbc.HiveDriver" ) // 若需通过keytab自动登录(避免手动kinit),可在代码中添加登录逻辑 import org.apache.hadoop.security.UserGroupInformation UserGroupInformation.setConfiguration(spark.sparkContext.hadoopConfiguration) UserGroupInformation.loginUserFromKeytab("hiveuser@HADOOP.COM", "/opt/keytabs/hiveuser.keytab") // 读取Hive表 val df = spark.read.format("jdbc").options(jdbcOptions).load() df.show() spark.stop() } } 3. 验证 ZooKeeper 连接与路径检查 ZooKeeper 地址和端口:通过telnet zk-node1 2181测试网络连通性,确保本地 Spark 服务器能访问 MRS 的 ZooKeeper 节点。确认 HiveServer2 在 ZooKeeper 的注册路径:若云端 MRS 修改过默认路径(非/hiveserver2),需在 URL 中同步修改zooKeeperNamespace参数(如zooKeeperNamespace=custom-hiveserver2)。4. 依赖包兼容性处理(避免版本冲突)MRS 3.3.0 对应的 Hive 版本通常为 2.x 或 3.x,需确保本地 Spark 的依赖包与 MRS 版本兼容:移除 Spark 默认的低版本hive-jdbc、zookeeper、hadoop-common等 jar 包。添加 MRS 3.3.0 配套的依赖(可从 MRS 集群的/usr/share/hadoop、/usr/share/hive目录拷贝,或通过 MRS 的 maven 仓库引入):hive-jdbc-<version>.jarhive-service-<version>.jarzookeeper-<version>.jarhadoop-common-<version>.jarhadoop-auth-<version>.jar(Kerberos 认证依赖)5. 用 beeline 工具验证连接(排除服务端问题)先通过 Hive 官方的beeline工具测试连接,确认服务端配置正确: beeline -u "jdbc:hive2://zk-node1:2181,zk-node2:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;principal=hive/_HOST@HADOOP.COM" -n hiveuser -k 若beeline能成功连接,说明服务端和认证配置正确,问题在 Spark 客户端;若beeline也失败,需先排查 MRS 集群的 HiveServer2 状态、ZooKeeper 状态及 Kerberos 配置。三、注意一下下MRS 安全模式差异:若云端 MRS 集群未启用 Kerberos(非安全模式),则认证参数简化为authMech=3(用户名密码认证),URL 中添加password=<your-password>。ZooKeeper 认证类型:除 Kerberos 外,部分场景可能使用 ZooKeeper 的 Digest 认证,需在 URL 中添加zookeeper.auth=digest:username:password。日志排查:开启 Spark 的 DEBUG 日志(spark.driver.extraJavaOptions=-Dlog4j.configuration=log4j.properties),查看 ZooKeeper 连接阶段的详细报错(如 “no route to host” 为网络问题,“invalid token” 为 Kerberos 认证失败)。
-
GaussDB 集中式数据库中指定表并行处理在华为GaussDB 集中式数据库(主要指 GaussDB 100,面向集中式部署场景) 中,支持通过表级并行度控制或查询 Hint(提示) 实现 “仅对 SQL 中指定表(如示例中的 t2 表)开启并行处理”,核心思路是通过精细化配置表的并行属性或强制查询计划对目标表启用并行,同时让其他表(如 t1 表)沿用默认串行或低并行策略。一、核心实现原理:表级并行度的可控性GaussDB 集中式的并行查询机制遵循 “全局参数为基础,表级配置 / Hint 为优先” 的规则:全局参数(如enable_parallel_execute)控制是否允许并行查询(默认开启),但仅决定 “是否支持并行”,不指定 “哪些表并行”;表级配置(存储参数PARALLEL)或查询 Hint(如/*+ PARALLEL(表名, 并行度) */)可单独指定某张表的并行处理策略,优先级高于全局参数,从而实现 “指定表单独并行”。二、具体实现方案(针对示例 SQL)示例 SQL 为两表关联查询:select * from t1, t2 where ``t1.id`` = ``t2.id,需仅对t2表开启并行,t1表保持串行。以下是两种常用方案:方案 1:通过 “表级存储参数” 长期配置(适合固定需求)通过CREATE TABLE或ALTER TABLE为t2表设置并行度(DOP,Degree of Parallelism),使该表的所有查询默认启用并行;t1表不设置并行参数,沿用全局默认(串行或低并行)。操作步骤:确认全局并行开关已开启首先确保数据库允许并行查询(默认开启),可通过以下 SQL 验证:SELECT name, value FROM SYS.V\$PARAMETER WHERE name = 'enable\_parallel\_execute'; \-- 若value为1,表示开启;若为0,需执行以下语句开启(需管理员权限): ALTER SYSTEM SET enable\_parallel\_execute = 1 SCOPE = SPFILE; \-- 重启数据库使配置生效(仅修改SPFILE时需重启)为 t2 表设置并行度新建 t2 表时直接指定并行度(推荐):CREATE TABLE t2 (   id INT,   col1 VARCHAR2(50),   ... -- 其他字段 )  PARALLEL 4; -- 并行度设为4(根据CPU核心数调整,通常为CPU核心数的1-2倍)已存在的 t2 表,通过 ALTER TABLE 修改并行度:ALTER TABLE t2 PARALLEL 4; -- 对t2表启用并行,并行度4 ALTER TABLE t1 PARALLEL 1; -- 强制t1表串行(并行度1等效于关闭并行)执行目标 SQL无需修改 SQL,数据库会自动对t2启用并行(按表级配置的并行度),t1按并行度 1 串行处理:select \* from t1, t2 where t1.id = t2.id; 方案 2:通过 “查询 Hint” 临时控制(适合动态需求)若仅需对某一次查询中的t2表启用并行(不影响其他查询),可使用 GaussDB 支持的PARALLEL查询 Hint,直接在 SQL 中指定t2的并行度,优先级最高。操作语法与示例:Hint 格式:/*+ PARALLEL(表名, 并行度) */对t2表启用并行度 4,t1表不指定(默认串行):SELECT /\*+ PARALLEL(t2, 4) \*/ -- 强制t2表并行处理,并行度4   \*  FROM t1, t2  WHERE t1.id = t2.id; (可选)若需明确强制t1串行,可增加t1的串行 Hint:SELECT /\*+ PARALLEL(t2, 4) PARALLEL(t1, 1) \*/ -- t2并行,t1串行   \*  FROM t1, t2  WHERE t1.id = t2.id; 三、关键配置说明与注意事项1. 并行度(DOP)的合理设置并行度并非越高越好,需结合服务器 CPU 核心数、内存大小及业务负载调整:推荐值:并行度 = CPU物理核心数 × 1~2(例如 8 核 CPU,并行度设为 8 或 16);避免过度并行:若并行度过高,会导致线程切换开销增大,反而降低性能(尤其小表查询,并行收益可能覆盖不了开销)。2. 表级并行与全局参数的优先级GaussDB 并行策略的优先级从高到低为:查询Hint > 表级PARALLEL参数 > 全局并行参数(如parallel_degree_limit)若全局参数parallel_degree_limit设置了最大并行度(如 16),则表级或 Hint 指定的并行度不能超过该值。3. 验证并行是否生效可通过查看执行计划确认t2表是否启用并行,执行以下 SQL:EXPLAIN FORMAT=TEXT SELECT /\*+ PARALLEL(t2, 4) \*/ \* FROM t1, t2 WHERE t1.id = t2.id; 若执行计划中包含 PARALLEL SCAN ON t2(并行扫描 t2 表),且degree: 4,说明并行已生效;t1表的扫描计划若为 SCAN ON t1(无 PARALLEL 关键字),说明为串行。四、总结一下下能否实现:GaussDB 集中式(GaussDB 100)完全支持 “仅对指定表开启并行”,核心通过表级 PARALLEL 参数(长期配置)或查询 Hint(临时配置)实现。推荐方案:长期固定需求:用ALTER TABLE t2 PARALLEL 4;配置表级并行;临时动态需求:在 SQL 中加/*+ PARALLEL(t2, 4) */ Hint,灵活且不影响其他查询。核心逻辑:通过精细化控制单表的并行度,让目标表(t2)通过多线程加速扫描 / 关联,其他表(t1)保持串行,兼顾性能与资源利用率。
-
< 华为云Versatile智能体平台 体验入口>华为开发者空间--开发平台--Versatile Agent (请在PC端打开) 版本概览 Versatile 920版本总结:新增27个特性,优化增强8个功能,新增多模态交互(图像、语音),新增敏感内容审查和风控,新增提示词管理,支持查看Trace调用链,查看使用量等统计指标,在运营运维、安全审查等企业级特性上有大幅提升。 华为云Versatile智能体平台 功能模块介绍 01 资产中心Versatile资产中心提供应用、MCP、插件、提示词等AI资产的共享,包括系统预置资产、开发者上传资产等,加速AI应用的开发以及公共资产的沉淀。 02 Versatile空间Versatile空间集成通用型AI助手以及各专家Agent,打造企业级智能协作统一入口,通过自主任务规划及多工具协同等,帮助用户完成复杂任务。 03 开发中心Versatile支持单智能体、工作流和多智能体三种应用开发方式,平台集成盘古大模型及DeepSeek等第三方模型,提供角色设定、插件扩展、工作流编排等功能,支持知识库管理、RAG检索和智能提示词优化,确保交互精准可靠。同时支持通过API、网页多渠道发布应用,助力开发者高效打造专业级智能体应用。04 模型中心模型中心提供标准化API接口,支持盘古大模型与业界主流模型的接入与管理,提供多种路由策略,实现模型无感切换和灵活调度,支持NLP与多模态理解模型的在线调测及参数配置。 05 运营运维运营运维包括调用链管理、运营统计,开展全维度Agent观测,实现对Agent调用的多维指标监控运营。 06 空间管理空间管理助力团队高效便捷地协作开发应用,多重权限控制提升企业资产数据安全。 新增重点特性介绍一、企业级特性 团队空间管理· 支持多团队空间的管理与资源隔离,成员角色权限管理,跨空间资产的复制业务价值:方便企业内进行资产、数据管理,同时能方便多人协作 应用管理· 支持配置敏感内容审查和风控:支持配置敏感词,触发后可以进行过滤、替换以及设置兜底回复,确保输出合规。业务价值:提供确定性保证,满足合规性与数据防泄露· 支持集成APIG,通过APIG发布Agent API业务价值:提供企业级API网关能力,可以为Agent的能力提供安全保障、运维能力、商业能力· 支持应用部署、升级、停止、启动、重启、删除等操作业务价值:提供应用的全生命周期标准化管理 调用链管理· 支持Trace调用链统计: 支持查看智能体、工作流的调用情况(时间、tokens消耗、input,output)业务价值1:技术运维与保障价值——技术人员可以快速定位问题、进行性能瓶颈分析等,确保系统稳定、可靠、可用业务价值2:安全合规与审计价值——记录每次调用的详细信息,实现全过程可追溯 指标统计· 支持查看运营数据:支持查看智能体、工作流的各项运营指标统计:基础指标功能(使用次数、服务QPS、模型QPS等)、质量统计指标功能(模型调用错误率、调用错误率、模型调用平均耗时、链路整体耗时、服务请求成功率等)、成本指标功能(tokens消耗等)业务价值:迭代优化价值——可以根据性能、错误指标等数据对智能体、工作流进行多轮迭代与优化 后台逻辑相关特性· 支持开发和测试环境分离部署,支持开发环境资产发布到生产环境业务价值1:保障生产环境稳定,确保正在服务线上客户的生产环境不会因新功能开发或测试而宕机或出错。业务价值2:可以并行开发与协作,开发、运营团队可以同时在各自的环境中进行工作,互不干扰,提升协同效率。· 支持单实例多Agent共享模式和单Agent 多实例独占模式业务价值:优化资源利用,降低成本。共享模式适用于大量轻量级、低并发的Agent,独占模式适用于核心、高并发、高性能要求的Agent,企业可以根据不同Agent的业务重要性、流量特征和性能要求,灵活选择部署模式,实现成本与性能的最佳平衡。· 支持多环境管理,集成开通Serverless运行环境业务价值:极致敏捷与弹性伸缩,提升了开发测试的敏捷性;降低了环境管理成本· 支持与凭据加密服务对接,通过配置凭据保障密钥安全业务价值:杜绝敏感信息泄露,增强安全合规性 二、多模态能力 应用管理· 新增语音交互:单智能体/工作流支持开启语音交互,支持选择不同种类的音色业务价值:满足业务个性化需求,丰富交互形式,让用户体验更流畅· 新增多模态大模型能力:单智能体、工作流-大模型节点支持接入多模态大模型业务价值:新增交互场景,在需要快速获取信息或进行复杂任务处理场景能显著提升用户体验 三、模型管理 模型服务· 支持接入用户自己第三方模型服务业务价值1:增加灵活性,提升用户体验业务价值2:企业可以根据自己的业务选择适合的模型,实现最佳功能匹配 路由策略· 支持配置路由策略业务价值:实现智能负载均衡与成本控制,构建高可用的容灾方案 模型调测· 支持模型调测,对比不同模型的效果业务价值:可以快速了解不同模型在当前任务下的效果,帮助用户进行模型选型 四、数据能力 知识库· 支持接入外部(第三方)知识库业务价值:实现各个系统中的数据贯通,增加架构的灵活性 应用管理· Agent问答支持知识切片溯源,支持配置多个知识库(最多3个)业务价值:构建信任与确保合规,实现答案的可验证与可审计 五、组件能力 提示词· 支持提示词管理,支持提示词效果对比,新增多模态提示词业务价值1:提供提示词统一管理、开发能力,实现高效运维;业务价值2:支持多模态数据,拓宽应用场景 MCP· 支持NPX、UVX方式部署和SSE接口接入服务业务价值:极致简化体验,简化集成复杂度 点击可前往>>华为云Versatile智能体平台 官网
-
在仅依赖出口防火墙的场景下,阻止挖矿行为需结合挖矿程序的技术特征(如依赖外部矿池通信、特定端口 / 协议、异常流量模式等),充分利用防火墙的访问控制、应用识别、流量监控、日志审计等核心功能,分层次构建防御体系。以下是具体可落地的实施步骤,覆盖 “事前阻断、事中监控、事后追溯” 全流程:一、核心思路:明确挖矿行为的 “可被防火墙识别” 特征挖矿行为(尤其是恶意挖矿)通常具备以下可被防火墙捕捉的特征,需针对性防御:通信依赖:必须连接外部矿池服务器(核心特征,无矿池则无法算力贡献和收益结算),常用 TCP/UDP 协议,存在固定端口或动态端口。流量特征:长时间、高频率、持续性的 outbound(出方向)流量,流量包大小相对固定(与矿池心跳、算力提交相关),且通常无明显 inbound 响应(区别于正常业务交互)。应用特征:主流挖矿程序(如 XMRig、CGMiner、Claymore、PhoenixMiner 等)存在可被识别的应用层特征(如协议指纹、通信报文特征)。规避手段:部分挖矿程序会伪装成正常应用(如利用 HTTPS/443 端口、模仿浏览器流量),或通过 P2P 方式去中心化挖矿(无固定矿池,难通过 IP / 端口阻断)。二、基于防火墙的分层防御方案(从易到难落地)1. 第一层:基础访问控制(阻断已知矿池通信,快速见效)利用防火墙的ACL(访问控制列表) 或 “策略路由” 功能,基于 “IP + 端口” 阻断挖矿程序与外部矿池的连接,适用于所有具备基本包过滤功能的防火墙(包括传统防火墙和下一代防火墙 NGFW)。 防御措施具体操作关键依赖 / 注意事项阻断已知矿池 IP / 网段1. 收集公开的矿池 IP 地址库(如知名矿池:F2Pool、AntPool、Poolin、Slush Pool 等的官方 IP 段,可通过威胁情报平台、安全社区获取,例如Blockchain.com 矿池列表、CryptoCompare 矿池数据库);2. 在防火墙出方向配置 **“拒绝策略”**,禁止内部所有 IP 访问这些矿池 IP / 网段(源:内部所有网段,目的:矿池 IP 段,动作:拒绝)。- 需定期更新矿池 IP 库(矿池 IP 可能动态变化,建议每周更新 1 次);- 注意区分 “合法矿池” 与 “恶意矿池”,避免误阻断合法业务(如企业合规挖矿场景)。阻断常见挖矿端口1. 梳理挖矿程序常用端口(见下表);2. 在防火墙出方向配置策略,禁止内部 IP 通过这些端口访问外部网络(源:内部所有网段,目的:任意外部 IP,端口:挖矿常用端口,动作:拒绝)。- 部分挖矿程序会使用 80、443 等常用端口伪装,此策略无法阻断这类 “端口伪装” 的挖矿行为;- 避免阻断业务常用端口(如 8080 可能同时用于业务系统,需确认后排除)。 挖矿程序常见端口列表端口类型常见端口号对应场景通用矿池端口3333、4444、5555、6666、7777、8888多数 CPU/GPU 挖矿程序默认端口特定币种端口14444(门罗币 XMR)、30303(以太坊 ETH)、9999(Zcash)对应币种的专用矿池端口P2P 挖矿端口18080(门罗币 P2P)、30301(以太坊 P2P)去中心化 P2P 挖矿的节点通信端口2. 第二层:应用层精准阻断(针对挖矿程序特征,提升防御精度)若防火墙为下一代防火墙(NGFW),具备 “应用识别” 功能(可基于应用协议指纹、行为特征识别具体程序),可直接针对挖矿类应用进行阻断,比 “IP + 端口” 策略更精准,能防御端口伪装的挖矿行为。具体的一些操作步骤:启用防火墙的 “应用识别库” 并更新:确保防火墙的应用特征库为最新版本(多数厂商会定期更新挖矿程序的特征,如深信服、华为、 Palo Alto 等)。识别并阻断 “挖矿相关应用”:在防火墙的 “应用控制策略” 中,筛选 “挖矿”“ cryptocurrency mining” 等分类下的应用(如 XMRig、CGMiner、Claymore Miner 等);配置出方向策略:“所有内部 IP → 外部网络,阻断挖矿类应用”,并设置动作(如 “拒绝连接”“重置会话”)。针对加密通信的挖矿程序(HTTPS/SSL):若防火墙支持 “SSL 解密” 功能,开启对外部 HTTPS 流量的解密(需提前部署根证书至内部终端,避免证书告警);解密后,防火墙可识别 HTTPS 流量中的挖矿程序通信(如矿池域名、API 交互),进而阻断。3. 第三层:异常流量监控与阻断(发现未知挖矿行为)挖矿程序会产生持续性、高带宽的出方向流量(即使伪装端口,流量特征仍明显),可通过防火墙的 “流量统计”“异常检测” 功能发现未知挖矿行为。 具体操作: 配置流量基线与告警:在防火墙中,针对内部各终端 / 网段,设置出方向流量基线(如 “单 IP 平均出带宽≤10Mbps,并发连接数≤100”);当某 IP 出现 “长时间(如连续 1 小时以上)超出基线流量、且连接目标为非业务 IP” 时,触发防火墙告警(如邮件、短信告警)。阻断异常流量源:告警后,通过防火墙日志定位异常 IP(疑似感染挖矿程序的终端);临时配置 “针对该 IP 的出方向流量限制策略”(如限速 1Mbps、阻断非业务端口连接),避免其占用过多带宽,同时为后续终端排查争取时间。监控 P2P 类异常流量:挖矿程序(尤其是 P2P 挖矿)会产生大量 “随机 IP、小数据包、高频交互” 的流量,可在防火墙中启用 “P2P 流量识别”(如 BitTorrent、eMule 等协议),对异常 P2P 流量进行限速或阻断(需排除内部合法 P2P 业务,如文件分发)。4. 第四层:日志审计与溯源(定位感染终端,彻底清除)仅在防火墙层面阻断,无法解决 “内部终端已感染挖矿程序” 的根本问题,需通过防火墙日志追溯感染源,配合终端处理彻底清除。 具体操作:开启防火墙全量日志记录:确保防火墙记录所有出方向连接日志(包括源 IP、目的 IP、端口、协议、应用类型、流量大小、连接时长等)。分析日志,定位挖矿终端:筛选日志中 “频繁连接外部矿池 IP / 挖矿端口” 的源 IP,或 “长时间高流量连接非业务 IP” 的终端;重点排查 “非工作时间(如夜间、周末)仍有大量出方向流量” 的 IP(挖矿程序通常 24 小时运行)。终端侧处理(关键补充步骤):对定位到的疑似终端,进行本地排查(如查看进程管理器,结束 XMRig.exe、cgminer.exe 等可疑进程;检查启动项、计划任务,删除挖矿程序的自启动配置;使用杀毒软件扫描并清除挖矿程序);若终端无法清除(如挖矿程序嵌入系统进程),建议重装系统,并检查是否存在弱口令、漏洞(挖矿程序多通过弱口令、未修复漏洞入侵)。5. 第五层:结合威胁情报(提升防御时效性,应对新型挖矿)若防火墙支持 “威胁情报联动” 功能(多数 NGFW 支持),可接入第三方威胁情报平台(如奇安信威胁情报、360 威胁情报、IBM X-Force 等),实时获取最新矿池 IP、挖矿程序特征、恶意域名等信息,自动同步至防火墙策略,实现 “动态阻断”。 优势:无需人工频繁更新矿池 IP 库,可快速响应新型挖矿威胁(如新型矿池、变种挖矿程序)。三、局限性与补充建议(仅靠防火墙的不足)需注意:仅依赖出口防火墙,无法完全覆盖所有挖矿场景(如 “内网闭环挖矿”“离线挖矿”“基于容器 / 虚拟机的隐蔽挖矿”),需结合以下补充措施提升防御效果: 终端侧加固(核心补充):部署终端安全软件(如杀毒软件、EDR 终端检测与响应),实时监控并阻断挖矿程序的安装与运行;禁用终端的 USB 端口(防止通过 U 盘植入挖矿程序),限制非管理员账户安装软件。网络层补充(若条件允许):若后续可扩展设备,建议部署 IDS/IPS(入侵检测 / 防御系统),增强对挖矿程序通信特征的深度检测;部署 DNS 防火墙,阻断内部终端对矿池域名的解析(挖矿程序需通过域名解析获取矿池 IP,阻断解析可从源头切断连接)。定期安全检查:定期查看防火墙日志、流量报表,分析是否存在未被阻断的异常流量;定期扫描内部终端,检查是否存在弱口令、未修复的系统漏洞(挖矿程序常通过漏洞入侵,如永恒之蓝、Log4j 等)。总结一下下在仅用防火墙的场景下,阻止挖矿的核心逻辑是:“阻断矿池通信(断网)+ 识别应用特征(精准打靶)+ 监控异常流量(抓漏)+ 溯源终端(根除)”。优先落地 “已知矿池 IP / 端口阻断” 和 “应用识别阻断”(若为 NGFW),快速见效;再通过流量监控和日志审计发现未知挖矿行为,配合终端处理彻底清除。若需应对新型挖矿威胁,建议优先启用防火墙的威胁情报联动功能,提升防御时效性。
-
华为开发者空间携手HCSD校园大使助力全国高校“百团大战”!不仅为高校开发者基于“华为开发者空间”提供云开发环境、AI Notebook等平台工具,更有千元开发者定制好礼,快叫上小伙伴一起来参加吧~ 【活动流程】① 点击报名 → ② 提交活动策划方案 → ③ 活动执行 → ④ 活动验收备注:活动方案:格式不限,需包含社团情况介绍,活动策划方案(含开发者空间推广方案)等。活动验收:提交活动总结报告,并在HCSD社区论坛发布活动组织心得或简报。 【参与条件】1.参与形式:HCSD校园大使在社团活动、学生会、各协会及班级/年级群等组织,策划落地。2.参与资格:已加入华为云学生开发者计划(HCSD)的校园大使,非HCSD校园大使可立即至官网申请加入。3.支持名额有限,以完成活动验收的次序进行支持。 【活动激励】1.众多奖品可供选择,华为音箱、体脂称、手环,更有开发者双肩包、冲锋衣、云宝盲盒等好礼,线下推广易拉宝,宣传单页等物料。可用于社团招新、活动推广、社员福利等场景。(其中线下物料可预支申领)2.活动覆盖人数达百人的,可支持累计价值千元的奖品;单次活动累计奖品价值最高为三千元;具体奖品支持数量视活动覆盖人数及社团规模而定。3.校园大使晋级激励:参与完成活动,可在年度优秀校园大使评选中作为加分项。具体活动细则见HCSD校园大使官方社群 部分奖品实物图如下~
-
请查阅参考昇腾社区文档:https://gitee.com/ascend/MindSpeed/blob/master/docs/features/noop-layers.md
-
请查阅参考昇腾社区文档:https://gitee.com/ascend/MindSpeed/blob/master/docs/features/sequence-parallel.md
-
请查阅参考昇腾社区文档:https://gitee.com/ascend/MindSpeed-LLM/blob/2.1.0/docs/pytorch/features/virtual_pipeline_parallel.md
-
请查阅参考昇腾社区文档:https://gitee.com/ascend/MindSpeed/blob/master/docs/features/pipeline-parallel.md
-
请查阅参考昇腾社区文档:https://gitee.com/ascend/MindSpeed/blob/master/docs/features/tensor-parallel.md
-
请查阅参考昇腾社区文档:https://gitee.com/ascend/MindSpeed-LLM/blob/2.1.0/examples/mindspore/deepseek3/README.md
-
🌟【直播预告】9月24日(周三)晚19:00,openGauss数据库存储过程高级应用实践,快来预约!👨🏫华为开发者布道师技术直播第24期 | 青岛滨海学院副教授 冯小洁老师 🌟揭秘openGauss存储过程高级应用!从原理到实战,手把手教你打造高效数据库应用!🎯本期亮点🎯1.深度解析存储过程工作机制:从编译到执行,全面剖析openGauss存储过程的运行原理。2.企业级场景实战:结合真实案例,手把手教你设计高可用存储过程,解决复杂业务逻辑。3.自治事务技术详解:揭秘“子事务独立提交”技术,掌握openGauss差异化优势。4.工具实操指南:gsql、DBeaver开发技巧,助你高效开发存储过程。5.游标与事务管理:深入理解存储过程中的游标使用及事务控制,提升开发能力。👉 立即预约:>>openGauss数据库存储过程高级应用实践
-
请查阅参考昇腾社区文档:https://www.hiascend.com/document/detail/zh/canncommercial/82RC1/opdevg/Ascendcopdevg/atlas_ascendc_10_0081.html
上滑加载中
推荐直播
-
华为云码道-玩转OpenClaw,在线养虾2026/03/11 周三 19:00-21:00
刘昱,华为云高级工程师/谈心,华为云技术专家/李海仑,上海圭卓智能科技有限公司CEO
OpenClaw 火爆开发者圈,华为云码道最新推出 Skill ——开发者只需输入一句口令,即可部署一个功能完整的「小龙虾」智能体。直播带你玩转华为云码道,玩转OpenClaw
回顾中 -
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中 -
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中
热门标签