-
1 问题背景在GaussDB各类问题场景中,网络故障是最难定位及恢复的问题之一,其不仅可能影响着数据库的性能,甚至在一定程度上会阻塞业务的正常运行,造成严重后果。网络问题牵连着应用侧(即GaussDB)、操作系统、交换机以及硬件资源等,本文将介绍几种常用手段,用于梳理其间可能存在的问题,从而快速定位恢复。文中涉及的参数、视图详情可参考产品文档。2 问题现象附件:gsar4.sh图1. gsar脚本运行结果对于性能慢、数据库连接异常等情况,建议使用gsar脚本检查网络状态,若重传率或丢包率超过0.01%,如图1最后一列红色框,则说明网络存在问题,需进一步分析定位。3 排查一:TaiShan服务器网卡加固对于TaiShan服务器(100/200),均需要使用兼容的网卡及驱动,否则很有可能产生此类网络问题。附件:GaussDB A加固配置指南04.pdf须严格按照加固配置指南进行定位,包括透明大页等均需核查。4 排查二:MTU一致性MTU即最大传输单元,整条数据链路要保证MTU的一致性,否则可能由于数据包大小不匹配导致丢包。使用ifconfig命令即可查看和修改各个网卡的MTU值:图2. ifconfig修改MTU如图2,其缺点是重启后失效,想长久保留还需修改配置文件,不同操作系统修改方法不同,可谷歌查找。5 排查三:网络重传情况1. netstat查看重传次数使用gsar脚本观察到明显的重传现象后,可根据netstat命令具体查看重传状态:图3. netstat查看重传状态若重传次数达到12次(图3红色框中,第一列表示距离下一次重传的时间,第二列为已经发生重传的次数,理论上重传达到9分钟,keepalive就会检测到连接异常,将其断开),则说明此时网络不通,可进一步排查对端进程状态以及网络环境(ping)。2. netstat查看缓存区状态当发送缓存区严重阻塞时,可明显看到重传现象,仍然使用netstat命令查看缓存区情况:图4. netstat查看发送缓存区状态图4红色框为发送端缓存区状态,可以看到阻塞较为严重且接收端均为192.168.2.101,此时可以根据端口号查看对端接收情况:图5. netstat查看对端接收缓存区状态图5红色框为44112端口的接收端缓存区,阻塞现象同样明显。此时,可以根据GaussDB相关视图获取各线程状态,进而分析阻塞原因,以一条阻塞的连接为例:图6. DN上根据client_port查到query_id根据GaussDB节点端口登录数据库,利用对端连接端口号查找到query_id;图7. CN上根据query_id查到各线程状态登录GaussDB的CN节点,根据query_id找到CN线程id,此时DN均在向CN传输数据,可以使用gstack打印此时CN的堆栈等。1. 打印线程堆栈:gstack lwtid 2. 监控线程与内核交互:strace -p lwtid -tt -T -o strace.log 3. 查看线程使用的CPU资源:top -p lwtid -d 0.2 3. 已知语句gather慢个别语句执行慢,打印执行计划发现主要耗时在gather上,此时可根据要执行的sql语句找到对应CN和DN的状态,找到慢因所在节点及线程id,再打印堆栈信息等进一步分析。图8. 根据sql查到CN线程状态6 排查四:网络丢包情况1. 内存不足内存不足是引发丢包的一大原因,但是一般会出现其他的直观表现,可使用free、top等命令查看内存情况,也可使用pv_total_memory_detail视图观察具体的进程状况。2. CPU软中断不足网卡接收到数据后,数据进入到TCP缓存区的过程需要进行CPU中断处理,若此时相关CPU繁忙、软中断使用较高,CPU处理网卡的数据不及时,造成丢包。图9. speed_test压测接收端图10. speed_test压测发送端图11. speed_test压测时网络状况图12. speed_test压测时CPU软中断状况使用speed_test工具压测观察,两台机器分别作为接收和发送端,如图9~12,此时测试集群无背景压力,可以看到网络流量达到网卡上限,偶发出现丢包现象,查看对应的CPU软中断,一直处在高于70的水平。附件:get_irq_affinity2.sh、smart_irq_affi.sh此外,软中断也与IO相关,可使用iostat命令查看对应时刻的IO状态。对一些场景,网卡与业务分开绑核可以有一定的缓解,使用get_irq_affinity2.sh脚本查看当前网卡绑核情况:图13. 查看网卡绑核情况使用smart_irq_affi.sh对网卡进行绑核:图14. 对网卡进行绑核使用gs_cgroup对GaussDB进行绑核:图15. 对GaussDB进行绑核7 排查五:交换机作为整个数据传输链路的重要一环,针对交换机的拓扑结构、流控、接口带宽等,需联系相关专家进行逐一排查。8 常用命令1. 网络压测工具:speed_test/iperf./speed_test_xxx recv/send ip portiperf -s / iperf -c ip -t time -p thread_num2. 网卡工具:ethtoolethtool ethx // speedethtool -i ethx // driverethtool -k ethx // gro gso tsoethtool -l ethx // channelethtool -S ethx // 统计信息3. 抓包工具:tcpdumptcpdump tcp -i ethx and host ip1 and ip2 and port port1 -w target.pcap9 总结由于数据传输链路的复杂性,重传丢包问题定位较为困难,但学会掌握一定的手段方法,理清思路,从源头开始排查,终究会找到根因。
-
DWS集群只读磁盘base目录占有率高案例分析1、问题描述 重复告警。2、分析过程 1.DWS集群在任意dn节点磁盘空间使用率超过90%后,将触发dws集群只读保护,避免发生磁盘占用率上升至100%后难以处理的情况。 2.常用命令 查看磁盘使用率 df –h 查看目录占用空间大小 du -sh * 查看集群状态(包含实例目录) cm_ctl query -Cvd 查看对应dn的端口号 cat dn目录下/postgresql.conf |grep port 例:cat /var/chroot/DWS/data1/master1/postgresql.conf | grep port 3.登录dws各dn节点,确认为base目录异常增高。注:这次集群只读均发生在dws集群base目录(如: /DWS/data1/master1/base)异常增高情况下,本文只讨论该情况。 3、问题根因DWS集群在任意dn节点磁盘空间使用率超过90%后,将触发dws集群只读保护,避免发生磁盘占用率上升至100%后难以处理的情况。4、解决方案1、 /DWS/data1/master1/base下的数字为database的oid找到近日异常增大或最大的通过以下查询确定数据库select oid,* from pg_database2、 查找异常增高的表或索引l 方案一a) 登录异常数据库gsql –Udbadmin –d 数据库 –p 端口注:数据库上面查询到,port为dn的port执行如下sql,快速确认占用空间最大的前20的大表。SELECT schemaname,tablename,pg_size_pretty(sum(dnsize)) AS totalsize, pg_size_pretty(max(dnsize)) AS maxsize, pg_size_pretty(min(dnsize)) AS minsize,pg_size_pretty(max(dnsize)-min(dnsize)) diffsizeFROM pg_catalog.pg_class c INNER JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace INNER JOIN pg_catalog.table_distribution() s ON s.schemaname = n.nspname AND s.tablename = c.relname INNER JOIN pg_catalog.pgxc_class x ON c.oid = x.pcrelid AND x.pclocatortype = 'H' GROUP BY schemaname,tablenameorder by max(dnsize)-min(dnsize) desclimit 20;l 方案二注1:正常情况下请按方案一进行日常巡检,这样可以对比历史数据更加清晰明了最近增大的表。若上面sql比较慢或平时没有巡检对比,可以采用方案二。注2:database目录下,文件的命名方式,行存表或行存表分区为12345.1,其中红色部分为relfilenode,最后的数字表示这是该relation的第几个文件;列存表为12345_C10.1,其中红色部分表示relfilenode,C10表示这是第几列,最后的数字表示这是该relation第10列的第几个文件;每个文件大小达到1G后开启下一个文件a) 进入异常dn的数据库目录(如:../base/15239),执行ll *.50,(如不存在,则执行ll *.30或ll *.20)确定大表。连接到异常dn对应的database,执行select * from pg_class where relfilenode = $relfilenode 或select * from pg_class where oid = (select parentid from pg_partition where relfilenode = $relfilenode)注:$relfilenode为上面查询到的大表oid3、 根据情况,选择下面部分方法整改表和索引(需获得客户授权)a) 若表倾斜,整改表。否则reindex重建索引b) 对部分占用空间大的表进行清理c) vacuum full table4、 磁盘空间达到90%l 若已经达到90%,集群只读,无法进行写操作,需要先解除集群的只读状态。这些手段使用时都会使磁盘空间先升后降,因此必须确保剩余空间足够进行这些操作。a) 在所有cn节点配置白名单,防止取消只读状态后有业务接入将磁盘插入至100%一定要先备份!!!cp /DWS/data1/coordinator/pg_hba.conf /DWS/data1/coordinator/pg_hba.conf_`date +'%Y-%m-%d_%H%M%S'`注释白名单b) 在主备cm_server cm/cm_server/cm_server.conf中修改enable_transaction_read_only=off(关闭集群只读监控)c) 在后台取消只读状态gs_guc reload -Z coordinator -N all -I all -c "default_transaction_read_only = false"l 执行完相关操作,确认空间已恢复后,需恢复集群白名单配置和CM的只读检测,此处需注意,一定要恢复白名单和CM的只读检测,否则下次磁盘使用率超过90%时将无法将集群置为只读状态,带来严重后果。a) enable_transaction_read_only=onb) 恢复白名单(用备份文件恢复)c) gs_guc reload -Z coordinator -N all -I all -c "default_transaction_read_only = false"
-
【功能模块】【操作步骤&问题现象】想问下,发生主备切换后,原来的主成为备,显示need repair(disconnected), 整个集群是unavailable的状态,这种情况下,标准的处理步骤是怎么样的?是需要杀死cm_server进程让其重启并重新仲裁主备关系么?【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
【功能模块】【操作步骤&问题现象】如何查询一个表的主键?【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
1、pgxc_stat_activity视图中xact_start和query_start两个开始时间的区别和联系?2、如果计算一个sql的执行时长,建议用哪个开始时间?3、一般在查询会话过程中建议以哪个开始时间作为判断依据?
-
各位开发者朋友们大家好:GaussDB(DWS)历经十年磨炼,是业界领先的企业级云分布式数据仓库服务。欢迎一起探讨产品核心技术,交流产品新特性。论坛主页链接:https://bbs.huaweicloud.com/forum/forum-598-1.htmlGaussDB(DWS)论坛形式多样,在这里每天都会分享关于DWS的博文鉴赏、维护宝典、活动预告、还有很多开发者朋友们会在上面进行提问,专家们实时在线引导解答问题,所有GaussDB(DWS)相关信息都会第一时间发布,是众多开发者朋友们共同交流的平台,本文档介绍了该论坛各模块的功能及使用方法。您可点击下方板块名称链接了解详情:1、活动公告:https://bbs.huaweicloud.com/forum/forumdisplay-fid-598-orderby-dateline-filter-typeid-typeid-206.html2、博文鉴赏:https://bbs.huaweicloud.com/forum/forumdisplay-fid-598-orderby-dateline-filter-typeid-typeid-81sub.html3、最佳实践:https://bbs.huaweicloud.com/forum/forumdisplay-fid-598-orderby-dateline-filter-typeid-typeid-1382sub.html4、维护宝典:https://bbs.huaweicloud.com/forum/forumdisplay-fid-598-orderby-dateline-filter-typeid-typeid-1407sub.html5、教程培训:https://bbs.huaweicloud.com/forum/forumdisplay-fid-598-orderby-dateline-filter-typeid-typeid-80.html6、生态空间:https://bbs.huaweicloud.com/forum/forumdisplay-fid-598-orderby-dateline-filter-typeid-typeid-82.html7、问题求助:https://bbs.huaweicloud.com/forum/forumdisplay-fid-598-orderby-dateline-filter-typeid-typeid-78sub.html温馨提示:开发者发表很多维护宝典和精品博文哦,您可以在提问前先“搜一搜”参考一下分享,然后再进行求助哦8、精品博文汇总贴:https://bbs.huaweicloud.com/forum/thread-84739-1-1.html9、维护宝典汇总贴:https://bbs.huaweicloud.com/forum/thread-85548-1-1.html10、或者您可以试试搜一搜功能:相关问题直接搜,了解历史文章,帮您了解更多信息~
-
如果发生误删除数据的操作,有没有办法恢复
-
【功能模块】【操作步骤&问题现象】我使用GDS导入外部数据,遇到报错,error: dn_6005_6006: null value in column "xxxxx" violates not-null constraint, 我想让GDS跳过这种错误,继续导入没有问题的记录,设置per node reject limit 'unlimited'没有用,【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
【功能模块】【操作步骤&问题现象】我要导入一个文件的数据,有a,b两列,外表有2列,a,b, 目标表4列,目标表的c,d列分别为timestamp类型和decimal类型,想导入的想给c,d列指定默认值,这个有办法实现么,我试下以下的方式,insert into t1 select a, b, '0001-01-01 00:00:00.000000', 0000.00 from f1, 但是报错,【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
客户8.0版本的集群上,主LVS所在的主机服务器卡死故障了,此时LVS的虚拟IP切换到了备机上运行这是正常的。客户手动重启了异常服务器恢复正常,此时LVS的虚拟ip直接从备机切换到了主LVS节点上。此时客户业务连接LVS的虚拟ip访问直接报错,报连接被拒绝。但是在该主LVS主机上执行ipvsadm -Ln是可以看到所有cn实例连接的。可是就是无法使用。客户将主LVS节点的keepalived进程给停掉后,LVS的虚拟IP就切换到了备上,此时业务调用没问题。但是将主LVS节点的keepalived进程给启动LVS的虚拟IP就会切换到主上,此时业务仍然无法运行。最后客户重现在主LVS节点重新又安装了一下负载均衡才能正常运行业务。针对客户的情况由如下两个问题:服务器重启会导致LVS配置异常吗?LVS的抢占机制是什么,是否可以禁止?
-
【问题描述】通过gsql -h方式连接到数据库查询小表无反应,在后台直连数据库查询正常返回【问题分析】1、查看活跃视图大多数语句处理waite in global queue2、查看等待视图发现处于select gds外表,活跃语句与等待视图如下:3、查看gds日志报错如下:4、目前打开文件数与文件描述符设置如下:5、使用ulimit -n 640000修改文件描述符数,注意修改完后重新登录该用户再拉起gds进程,否则可能不生效【问题结论】访问gds相关外表卡住占满max_active_statements数量,导致其他业务无法进来始终处于wait in global queue状态,无法真正执行,而后台直连不占max_active_statements数量,因此查询表正常,gds服务器恢复正常后业务恢复正常。
-
GaussDB 从轻量到重量定义了三种锁:l spinLock(自旋锁),系统级共享资源的封锁操作l LWLock(轻量锁):系统级共享资源的封锁操作,在系统运行期间,系统级的资源需要加锁,操作后,被释放。l RegularLock(常规锁/重量锁):用于并发保护用户表的数据。常规锁按照被锁对象按照类型可以分为10种:relation,extend,page,tuple,transactionid,virtualxid,object,userlock,advisory,pg_locks视图中第一列locktype的取值就是这些。下面我们主要介绍常见的表锁(relation)和行锁(tuple)。1 表锁当对表进行DDL/DML 操作时,数据库会对表进行加锁操作,在事务结束时释放。常规锁按照粒度可以分为8个等级,各操作对应的锁以及相容性如下表所示: 当两个事务的锁产生冲突时,未拿到锁的线程会等锁,等锁超过系统设置参数lockwait_timeout(默认值20min)就会报错。报错信息会将持锁语句等信息打印出来,例如:ERROR: Lock wait timeout: thread 140354461361920 on node coordinator1 waiting for AccessShareLock on relation 16655 of database 14764 after 1200.057 sDETAIL: blocked by hold lock thread 140354804238080, statement <drop table aa;>, hold lockmode AccessExclusiveLock.2 行锁2.1 行锁模式GaussDB不支持for key share和for no key update模式的行级锁,支持以下两种模式:l For share: 使用select for share语句时持有该模式锁,后台会对tuple加5级锁(ShareLock);l For update: 使用select for update, delete, update等操作时持有该模式的锁,后台会对tuple加7级锁(ExclusiveLock),根据上图中各级锁的相容性可知,并发更新同一条语句时会产生行锁冲突;2.2 并发更新参数当allow_concurrent_tuple_update=false时,并发更新同一条记录不会等锁,直接报错:abort transaction due to concurrent update当allow_concurrent_tuple_update=true时,并发更新同一条记录会产生锁冲突。等锁超过系统设置参数update_lockwait_timeout(默认值2min)就会报错。报错信息可以分为几种,最重要的标志就是超时时间。2.3 行锁加锁流程行锁等到事务提交才会释放,其他事物如果等待这个行锁,必须等待这个事务锁释放。tuple锁可以保证多个修改事务加锁的顺序问题,原则是先来先拿锁,修改完tuple后,tuple锁会立即释放,而事务锁不会释放。假设有3个事务,A、B、C依次对同一行修改,均未提交:Session ASession BSession Cbegin;update t set b=1;set max_query_retry_times=0;begin;update t set b=2;set update_lockwait_timeout='1s';set max_query_retry_times=0;begin;update t set b=3;此时A处于idle in transaction状态,B持有tuple锁但是等待A的事务锁,C等待B持有的tupe锁。如果B和C分别锁超时,那么超时报错信息如下所示:C 先报错:ERROR: Lock wait timeout: thread 139728477222656 on node datanode3 waiting for ExclusiveLock on tuple (0,1) of relation 33287 of database 14194 after 2000.096 msDETAIL: blocked by hold lock thread 139728418502400, statement <UPDATE public.t SET b = 2>, hold lockmode ExclusiveLock. B报错:ERROR: Lock wait timeout: thread 139728477222656 on node datanode3 waiting for ShareLock on transaction 24858 after 120018.206 msDETAIL: blocked by hold lock thread 139728691128064, statement < update t set b=1; >, hold lockmode ExclusiveLock.注释:如果此时A事务中又执行了一条select * from t;那么B的报错信息中statement就是<select * from t;>。2.4 其他报错案例如果持锁事务残留或者正处于提交状态,detail信息可能是ERROR: dn_6005_6006: Lock wait timeout: thread 140354804238080 on node dn_6001_6002 waiting for ShareLock on transaction 867484 fter 12000.453msDETAIL: blocked by hold lock thread 0, statement <pending twophase transaction>, hold lockmode (null).此时可以根据事务号查询是否有残留事务:Select * from pg_prepared_xacts;如果确认残留,调用gs_clean清理残留事务即可。3 如何查询锁等待在没有锁等待超时报错的情况下,我们通常会结合pgxc_stat_activity, pgxc_thread_wait_status, pg_locks等视图来定位锁等待问题,这种方法过于繁琐。我们可以采用以下两种简单方式之一来快速定位锁等待问题:方法一:通过设置参数来达到提前报错的目的,具体可以参考案例:https://bbs.huaweicloud.com/forum/thread-82664-1-1.html方法二: 使用附件提供的工具查询锁等待情况.使用方法:1. 创建存储过程2. 在cn上执行SELECT * FROM pgxc_locks_wait;4 锁超时处理办法现场规避:通过以上方法,找到持锁线程,在对应的实例上执行以下sql杀掉持锁线程select pg_terminate_backend(xxxxx); --xxxxx为找到的持锁线程长期手段:从业务侧避免锁冲突行为。
-
【功能模块】【操作步骤&问题现象】在用户rafal下想创建schema tony的表,create table tony.t1(a int)提示ERROR: permission denied for schema tony使用omm用户进行schema赋权grant usage on schema tony to rafal仍然出错,还需要什么其他权限么?【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
12月21日-23日,第十一届中国数据库技术大会(DTCC2020)在北京完美落幕。在这场中国数据库技术发展探讨最高规格的大会上,华为云数据库携手优秀客户和合作伙伴围绕“驱动数据创新,共建GaussDB生态”发表了重要演讲,深度剖析云数据库的架构创新、技术优势、生态开放以及行业实践等内容,还斩获DTCC两项创新大奖,备受业界关注和认可。华为云GaussDB数据库现场图新基建时代,云数据库作为企业数字化转型的核心关键基础软件,面临着越来越多的新挑战,如何通过技术创新满足企业日益发展的新需求,如何将核心技术与行业场景紧密贴合,为行业提供云上高效数据迁移管理极致体验,成为云厂商和企业发展的重要命题。融合开放,积极创新面对挑战,华为云数据库业务总裁苏光牛表示:“我们将始终坚持开放、合作、共赢的态度,和业界主流的ISV、SI等合作伙伴一同承接金融政企客户数字化转型与智能升级需求,结合行业业务场景,提供稳定可靠且易用好用的数据库产品与服务,同合作伙伴的行业应用系统强强联合,共同服务好行业客户,做最好的数据处理底座。”华为云数据库业务总裁苏光牛现场分享华为云数据库多位产品技术专家,从战略投入、生态开放、架构创新、技术能力、行业解决方案创新等方面,分享了华为云数据库GaussDB如何使能企业数字化转型升级。他们提到,华为云GaussDB以市场为导向,坚持生态开放,架构先进,打造全场景云服务,兼容广泛认知的开源生态和华为自有生态openGauss,支持关系型与非关系型数据库,为政企客户打造传统商业数据库一站式上云解决方案,并最新发布了金融行业核心数据库上云解决方案与数据库和应用迁移 UGO,加速金融政企数据库转型。聚焦金融政企,落地行业实践所有技术创新最终都要落地于具体实践,华为云 GaussDB很好地践行了这一点,并邀请中国工商银行、国家地理信息公共服务平台天地图、华为流程IT等头部知名金融政企客户分享上云实践经验。中国工商银行软件开发中心高级经理林承军表示,华为云GaussDB高度兼容主流商业数据库,加快了金融行业Oracle替代转型,促进了国产分布式数据库产品的成熟和完善。我们后续会依托GaussDB的极致能力,坚持并行并重策略,开源与商业、自主研发与外部技术引入两条腿走路,大胆创新、稳妥推进。国家基础地理**高级工程师张红平表示,天地图以门户网站、服务接口、前置服务等形式向政府、专业部门、企业、公众等用户提供在线地理信息服务,华为云GuassDB (for Mongo)通过快照技术实现读写分离,满足地图数据更新时数据一致性需求,为天地图4亿用户提供了最佳体验,支撑日均请求超过5亿次,大大提升了地理信息平台的服务能力。华为HIS大数据平台首席架构师黄兆勤表示,OLTP和OLAP的联动,是华为企业场景驱动下的必然发展趋势,而GaussDB开放的生态将加速数据库产业融合趋势,大数据和数据库将走向一体化,华为集团数据库业务将在2022年全部上云。联合创新,共建良好生态良好生态的构建离不开客户和合作伙伴的支持,华为云数据库现场为武汉大学珞珈图腾数据库实验室、上海泛微网络公司等优秀合作伙伴颁布授牌,表达了构建良好合作生态的决心。“珞珈图腾数据库实验室长期专注于数据库、复杂数据管理、可信数据管理研究和系统研发工作。实验室基于GaussDB的数据库实践教学探索,携手华为云数据库共同推动产学研一体化发展,共同培育数据库专业人才,共建高校合作生态关系。”——武汉大学副教授彭煜玮现场表示“携手共建良好产业生态,互惠互利,聚力创新,联合构建’安全可控、自主可靠’的应用平台,推动数据库解决方案在ISV行业落地实践。”——上海泛微网络副总经理张建现场表示目前,华为云GaussDB案例已经覆盖全场景客户,在500+大客户的业务上规模化商用,无论是泛金融、政府、运营商,还是物流、电商领域,都有华为云数据库的身影。华为云数据库将持续战略投入,做好技术提升和帮助客户成功,提供稳定可靠且易用的数据库产品与服务,为更多企业上云数字化转型提供坚实可靠的数据库底座。Ps:华为云“云原生2.0技术峰会”火热报名中,想了解更多GaussDB技术黑科技,请点击此链接进行预约报名:https://www.huaweicloud.com/about/techwave.html
-
GaussDB 200 6.5.1版本的集群中,通过使用Python第三方库psycopg2连接集群如何导出数据库中的表数据?
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签