• [版主精选] 2021华为云GaussDB年度大盘点,感恩有你
    回首2021,我们探索数字化实践和前沿技术之路,深入产业发展与生态合作,勇攀一个个高峰;展望2022,我们怀抱更大的数字梦想,继续探索数字时代星辰大海。前行之路感谢相伴,华为云GaussDB 与您一起筑梦前行。https://www.huaweicloud.com/product/dbs.html
  • [版主精选] “数”驰天下,华为云DRS 高效支撑T3出行平稳迁移
    数字化潮流浩浩汤汤,企业上云如火如荼,网约车行业也借助这一股东风展现出了蓬勃的生命力,因为它的高效便捷,吸引了越来越多的都市**验。T3出行是南京领行科技股份有限公司打造的智慧出行生态平台,公司以“科技引领 愉悦出行”为使命,致力于成为能够为用户提供“安全、便捷、品质”出行服务的科技创新型企业。随着业务扩张和用户数量的增加,T3出行原系统在支撑海量数据和提供出行服务方面渐渐力不从心。为满足业务发展,提供安全高效的出行服务,T3出行开始对出行产品进行迭代更新,而华为云也在这段升级之旅中发挥了巨大作用。那么这段升级之旅是否顺畅无阻呢?我们接着往下瞧。重压之下,快与稳的迁移之路?升级需要将现有系统的数据进行迁移,而T3出行涉及业务繁多,若因为迁移而停止提供服务,将会造成巨大的业务损失。因此,客户希望既尽量避免对业务的影响,同时迁移工作也能顺利进行,求快与求稳是其核心诉求。数据库种类多,迁移难度大。T3出行不同业务类型的数据分别存放在MySQL、MongoDB、PostgreSQL等数据库中,需要很好适配各种不同数据库,以减轻应用改造压力。时间紧任务重,要在30h内完成。各种类型的数据基数庞大,存在亿级的大表,单单关系数据就有数十TB,而且还存在实例只迁移表级数据的梳理,场景复杂。客户要求在30h内完成新老数据库之间的迁移,并要求数据做增量比对,保证数据一致性。业务不停机,系统持续平稳运行。在数据库迁移过程中,不能因为对源端数据库的查询,导致对应实例性能受到影响,进而影响业务;客户原先使用的开源c**频繁重启,导致业务受损,希望有高可靠、能提前告警等能力的服务替换c**。层层重压之下,华为云如何应对呢?逐一击破,华为云DRS利刃出击天下武功,唯快不破。华为云通过优化目标端数据写入能力,结合数据复制服务DRS的限流功能,快速适配c**能力,实现30小时内完成全量数据同步,并在原有基础上提供了更高可靠和提前告警的能力。容纳百川,高效迁移:华为云DRS支持其他云、本地IDC、ECS自建数据库等不同平台之间的迁移,目前共支持60+类不同的数据库链路,充分满足T3出行的不同数据库迁移需求。润物无声,平滑在线迁移:华为云DRS针对不同实例,通过优化参数、同步方式和架构,并结合其特有的限流能力,确保迁移期间源端业务正常平稳运行,成功在指定时间内完成全量数据同步。稳如磐石,业务持续可用:华为云通过RDS适配c**能力,结合DRS高可靠和自动化运维能力,大大提高数据订阅稳定性。通过这一系列操作,华为云DRS成功助力T3出行在规定时间内完成数十TB级全量数据的迁移,迁移过程业务无须停机,迁移前后数据强一致,实现业务的持续平稳运行。如果将数据迁移比作一段旅行,那么华为云DRS就是助你快速到达目的地的飞机。在这个万事都讲究效率的时代,华为云DRS用扎实领先的技术为客户的迁移之旅保驾护航,客户诉求所指,便是华为云DRS迁移之道。相信在华为云DRS的能力加持下,未来的数据库迁移之路会更畅通无阻。 【重磅活动推荐】12.12 华为云数据库专场火热来袭,云数据库MySQL 低至12.12元,爆款云数据库包年1折起,更多优惠详情,请前往华为云官网:https://activity.huaweicloud.com/dbs_Promotion/index.html
  • [版主精选] 监控不掉线,安全看得见,华为云数据库让煤矿生产更安全
    摘要:华为云&精英数智,用数据驱动服务,让煤矿开采更安全煤炭,被誉为黑色的金子,工业的食粮,是十八世纪以来人类世界使用的主要能源之一。尽管近年来越来越多新能源取代煤炭,但是煤炭在我国能源体系中还具有“压舱石”的作用,煤炭目前仍是我国非常重要的能源。强烈的需求背后,煤矿的安全开采问题也一直牵动着人们的心。作业人员的不安全行为、设备的不安全状态,以及环境的不安全因素等,成为导致矿难产生的主要原因。因此,优化煤矿安全生产过程是一件势在必行的工程。华为云和精英数智科技股份有限公司(简称:精英数智)一拍即合,联合打造了“煤矿大脑”解决方案,该方案通过覆盖矿山安全态势感知与信息共享体系化协同模型,设计、实施、评测一体化智能监控平台,视觉、语音、OCR多维度作业场景分析模型,层级职能部门联合执行异常事件联动与处置机制等四个部分,基于煤矿生产和安全痛点,为煤炭行业注入了最强的人工智能技术和完备的服务体系。其中,由华为云数据库支撑的系列智能监控平台为精英数智提供了高效、稳定、可靠的数据服务,通过统一采集数据源,为决策分析提供有力的数据凭证,助力“煤矿大脑”更智慧、反应更灵敏。守护煤矿安全生产,华为云数据库从不玩虚的改造前:千呼万唤始出来,一看页面还空白精英数智原监控系统架构局限于容量瓶颈,无法满足业务增长诉求,当出现故障或者进行应用改造时,面临较长时间监控数据缺失,业务连续性方面得不到有效保障。改造后:千里江陵一日还,实时监控心里安华为云基于分布式数据库中间件DDM,对精英数智系列监控系统和生产调度指挥系统进行分布式改造,通过分布式高扩展、分库分表、平滑无感迁移等方式,成功支撑上千+矿井实现实时监控,为煤矿安全生产提供连续安全监测服务。支撑1300+矿井监控,华为云数据库助力精英数智打造智能矿山为满足精英数智16TB数据量、1300+个矿井的目标,华为云分布式数据库中间件 DDM通过分布式扩展和分库分表提升监控系统的性能,同时利用华为云数据复制服务DRS实现平滑在线迁移,让监控实时高效,分秒守护煤矿安全生产。提供极致扩展能力,让监控更高效分布式高扩展:精英数智需要支撑1300个矿井,对数据库弹性扩容要求极高,华为云DDM采用分布式架构提供横向扩容能力,快速弹性伸缩以满足业务增长诉求,让监控更平稳高效。分库分表:精英数智监控数据体量约16TB,客户希望在满足基本性能的同时,数据库反应更灵敏高效。华为云DDM采用分库分表方案,提升查询性能,业务集中访问场景下,监控平台依旧稳定高效,有效减少生产波动,达到稳定生产。监控不掉线,分秒守护安全精英数智的管控系统涉及整个生产流程,涵盖各系统生产状态、设备运行状态、井下作业人员等诸多场景环节,如果某一环节受影响,将造成不可估量的损失,因此,对业务连续性要求很高。华为云数据库采用数据复制服务DRS,将RDS数据库在线迁移到华为云DDM架构中,整个过程业务无须停机,最大程度减少了业务中断带来的风险,实现平滑无感迁移,监控实时在线,数据零丢失。经过改造,精英数智系列监控系统在容量扩展方面,单套系统支撑矿井数量由600提升到1300个,业务支撑能力提升1.2倍;平台连续稳定,监控不中断,业务无感知;单实例数据量由2TB提升到16TB,满足海量数据存储,性能大幅提升。华为云数据库为1300+矿井提供安全监测,为煤矿行业安全生产提供了强有力的保障,最终实现整个产业的智能化升级。随着国家大力推进各行各业信息化、智能化,煤矿人工智能已被提到国家战略的高度,煤矿智能化已成为能源领域的重要发展方向,“煤矿大脑”为煤矿行业的智能化发展提供了重要支撑,而华为云数据库也在煤矿产业升级中注入自己的力量,未来的煤矿发展前景可期。 【重磅活动推荐】12.12 华为云数据库专场火热来袭,云数据库MySQL 低至12.12元,爆款云数据库包年1折起,更多优惠详情,请前往华为云官网:https://activity.huaweicloud.com/dbs_Promotion/index.html
  • [版主精选] 分钟级查看报表,华为云&一汽-大众,让商机时刻被洞见
    摘要:华为云DRS助力一汽-大众BI平台实时查看报表,提升数字化决策能力数字化时代下,企业IT的数据重心从支持在线交易后移到运营分析,数据的及时更新、高效分析、减少人工干预,是企业经营的追求目标,因此企业不再满足于“T+1”,而是“T+0”,需要实时和个性化,对于汽车行业也不例外。一汽-大众汽车有限公司(简称一汽-大众)于1991年成立,是我国第一个按经济规模起步建设的现代化乘用车工业基地,旗下有奥迪、大众、捷达三大品牌20余款产品,覆盖A、B、C级全系列乘用车型。数字革命的浪潮下,4S门店的服务也更加精准高效,为了更好的服务客户,4S集团通过分析客户使用习惯及偏好、产品个性化需求收集等方式,多维度满足用户购车和体验需求。但随着数据挖掘的深入,对BI平台的要求也越高,为解决报表业务系统数据量的快速增长、数据汇集、交互分析难等难题,一汽-大众携手华为云数据库在MEP(经销商多功能生态平台)-BI平台项目合作中取得了突破,跨越了挑战。实时数据更新,才能具备更快的市场反应能力众所周知,BI平台的报表系统可以连接多维数据库,报表目的是帮助用户掌握和了解数据,企业决策者通过实时的数据进行分析和挖掘,为业务的变化及时作出应对策略。一汽-大众4S门店的BI报表业务需要实时汇集所有门店的数据,面临巨大的技术挑战。一汽-大众所有的4S门店拥有总计60+MySQL实例,200+数据库,每个数据库约有150+张表要同步,共有3万张表需要数据实时同步到BI系统内。如果按照传统的数据入湖方式,需要配置3万条数据同步链路,更需要海量的工作比对数据一致性,维护成本极高,同步效率低下。此外,随着数据量的膨胀,现有的数据库无法支撑数TB级别的数据量。因此打造支持海量数据存储、数据实时同步的商业数据智能分析的BI平台迫在眉睫。面对一汽-大众的业务挑战,华为在方案选型上的主要考量如下:抽取数据对源数据库影响最小化:抽取数据绝对不能拖垮源数据库,也不能对源业务的性能造成较大的衰减,甚至表被锁定;部署实施要轻量简单:不需要在每个数据源安装代理程序,即开即用,配置操作简单易用;数据一致性有保障:基于binlog解析进行逻辑数据同步,具有断点续传和严格的认点技术,不惧网络抖动,有效确保数据一致性。综上,具备实时精准同步且保障数据一致的轻量级服务,华为云数据复制服务DRS是迎接业务挑战的不二之选。华为云DRS助力一汽-大众报表系统数据实时同步,全面释放数据价值DRS(Data replication Service)华为云数据复制服务,将云上的数据通过多对一的方案汇集到具备超强写入能力的华为旗舰型云原生数据库GaussDB(for MySQL)中,保证数据一致性和实效性,再通过DRS实施同步,从GaussDB(for MySQL)同步到华为云数据仓库GaussDB(DWS)中进行分析。但要想达到实时数据同步难度极大,因此,华为云数据库解决了如下核心难题:增加数据来源列,解决主键冲突:通过MySQL到GaussDB(for MySQL)的多对一方案,增加数据来源列,记录server/database/table信息,避免多个源表主键冲突。同步链路支持动态加减表:新增业务随时需要增加同步的表,华为云DRS支持GaussDB(for MySQL)的链路动态增减表,配置更加简单方便。标记数据入湖时间,帮助实时分析:华为云数据库提供的方案中,增加附加列数据行写入时间和更新时间的列,标记数据插入和更新时间。为数据入湖及数据实时分析打下基础。引入缓冲数据库,实时计算:针对8万张表不停的汇集和写入,选择了百万级QPS吞吐量和海量数据存储能力的GaussDB(for MySQL)作为缓冲层数据库,解决OLTP和OLAP数据库之间天然的数据处理能力差异。基于DRS实时准确的数据同步后,华为云GaussDB(DWS)实现实时计算,极大缩短复杂报表的执行时间。数据实时精准同步:基于华为云DRS准确的数据同步能力,正常情况下延迟均在1s以内,为实时报表提供基础条件,帮助一汽-大众实现了销售报表数据可用时间从1天降低为10分钟。且数据同步准确度高,源端和目标端数据行数一致。业务上线后,一汽-大众业务报表系统维护的链路数量从3万条降低至65条,工作效率大幅提升;同时DRS保证数据一致性,10亿级数据无一条丢失,极大降低数据比对工作;帮助一汽-大众实现了销售报表数据可用时间从1天降低为10分钟,时效性大幅提升。此外,对于缓冲层数据库GaussDB(for MySQL) 具备海量数据存储能力,最大支持128TB,超百万级QPS吞吐,可支撑业务快速发展;基于GaussDB(for MySQL)的计算存储分离架构,数据三副本存储强一致,数据零丢失;RTO秒级,故障秒切换,全面保障数据安全。一汽-大众以用户为中心,构建以数据分析为核心的生态圈,洞察用户需求,提供高价值产品,深受客户青睐。而华为云数据库通过技术手段实现数据实时同步,从海量的数据中发现洞察,为企业经营决策提供数据基础。未来,华为云数据库将持续携手一汽-大众通过数字技术,打造差异化有竞争力的数字化服务,满足客户对产品和服务日益增长的个性化需求。更多华为云数据库详情了解,欢迎前往华为云官网:https://www.huaweicloud.com/product/dbs.html
  • [技术干货] 【云图说】第226期 DRS数据对比——带您随时观测数据一致性
    数据复制服务DRS介绍页入口,详情请点击链接数据复制服务DRS数据对比功能入口,详情请点击链接小云妹又来啦,新的一周,新的知识,今天给大家介绍一个数据迁移的神器----数据对比功能。除了网络中断自动重试、任务断点续传等各种技术保障以外,DRS还提供了数据对比功能,数据一不一致,对比见分晓,精准定位,动态实时对比,云图说为您一一详解:
  • [问题求助] 【DRS产品】【主备切换功能】可以支持灾备切换后,产生数据再切回去吗?
    业务容灾项目:源端业务故障后,容灾切换到华为云灾备端,源端业务恢复,再切回,这样的业务过程中,使用的是华为云DRS同步数据库,问题:源端恢复后,切回时 DRS的主备倒换可以实现吗?需要做反向同步数据的。
  • [技术干货] 【数据库GaussDB系列技术直播第4期】GaussDB(for openGauss)数据迁移之DRS
    【直播回看】点击观看直播【直播简介】DRS是一款易用、稳定、高效,用于数据库在线迁移和数据库实时同步的云服务,它提供了以Oracle、MySQL、PostgreSQL、华为云RDS等多种数据库作为源端的数据迁移上云服务,其中GaussDB(for openGauss)作为华为云上的主力云数据库,DRS对其做了深度的开发支持,在迁移的功能和性能上具有很大优势,可以帮助客户简单、快捷、一键式的完成数据迁移。本次直播特邀华为云数据迁移DRS产品架构师南风老师,为大家讲解DRS数据迁移功能简介、实现原理及适用场景,快来学习吧!戳这里→参与活动
  • [行业资讯] 华为云数据库亮相2021PG中国技术大会并斩获4项大奖
    1月7日-9日,以“开源论道·数据驱动·共建数字化未来”为主题的第十一届PostgreSQL中国技术大会隆重举办。华为多位数据库专家出席并发表了重要演讲,分享了华为云数据库最新技术与实践,积极推动商业落地,使能企业智能升级。会上,华为云RDS for PostgreSQL荣获“数据库最具潜力产品奖”,华为流程IT DBA团队荣获“PostgreSQL中国最具价值团队奖”,华为数据库架构师陈华军和华为云数据库高级专家赵全明分别荣获“十周年卓越贡献特别奖”、“中国PostgreSQL最具价值专家MVP奖”。大会主会场,华为质量与流程IT数据库架构师陈华军分享了《华为集团IT PostgreSQL运用实践》主题演讲。他介绍到,流程IT作为服务华为公司19万员工的企业IT部门,支持华为公司全球业务、全球研发、全球协同,客户覆盖全球170多个国家、服务上亿消费者。为了应对日益增长的业务数据和海量并发问题,华为集团对交易库选择主要采用云数据库PostgreSQL去“O”,通过架构部署、参数调优、客户端配置、监控告警、性能诊断工具、闪回实现等能力,很好地解决了数据库兼容性、扩展性、数据一致性、性能等方面的问题。目前,华为集团IT去“O”和上云工作已完成一半。华为云数据库高级工程师刘志俊在分论坛分享了《Oracle迁移到PostgreSQL的挑战与突破》。他提到,近年来去“O”的呼声越来越大,大量的传统企业开始脱离“IOE”集中式架构,进行云端分布式改造。针对扩展性、技术不可控、高成本等去“O”难题,华为云GaussDB推出了数据库和应用迁移UGO+数据复制服务DRS专属组合解决方案,该方案从迁移评估、结构迁移、应用迁移、全量+增量数据迁移、数据一致性动态校验、流量回放等方面提供了一站式迁移上云方案,让客户上云更轻松、更高效。华为云数据库产品经理冯万里分享了《解锁华为云数据库PostgreSQL高速增长密码》。他表示,华为云数据库PostgreSQL连续3年保持5倍营收增长,持续为5000+客户创造了价值。取得这一重大成果的原因在于,华为云RDS for PostgreSQL具备卓越的高可靠、高安全、插件丰富、兼容开源、便捷上云、低成本等能力优势,并在国家地理信息服务平台天地图和中国一汽等企业中成功落地。华为云数据库高级工程师杨科伟在分论坛分享了《GaussDB(for Redis)的云原生存算分离架构实践》。他指出,存算分离的分布式架构是大势所趋,目前已经有越来越多企业选择将核心业务上云到该架构。华为云GaussDB(for Redis)基于该架构,完美避开了开源Redis的主从堆积、主从不一致、fork抖动、内存利用率只有50%等问题,构筑了强一致、高可用、冷热分离、弹性伸缩、高性能等极具竞争力的能力优势,极大促进了企业业务的发展。华为云数据库高级工程师党李飞分享了《华为云DDS数据库容灾关键技术》。他介绍到,华为云DDS是一款兼容MongoDB 3.4/4.0版本的文档数据库服务,目前支持分片集群、副本集和单节点三种部署架构。华为云DDS基于华为云数据复制服务DRS灾备技术,支持主备倒换,通过数据抓取和数据回放,保障数据一致性。通过优化原生Change Streams,华为云DDS支持更丰富的DDL语句,对于集合删除、数据库删除事件,日志拉取不中断,支撑近50000 ops,与社区版相比,性能得到大幅提升。技术不止步,服务更贴心,华为云数据库未来将会打造更优、更专业高效的数据库服务,赋能企业挖掘数据价值,推动业务革新,加速企业数字化转型。 错过直播不要怕,点击下面链接可直接回顾精彩:1月7日,华为数据库架构师陈华军演讲链接:https://live.csdn.net/room/postgresqlchina/1Ppndzfv?spm=1001.2014.3001.55011月8日,华为云数据库高级工程师刘志俊演讲链接:https://live.csdn.net/room/postgresqlchina/FS0reRwq?spm=1001.2014.3001.55011月9日,华为云数据库高级工程师杨科伟和党李飞、华为云数据库产品经理冯万里演讲链接:https://live.csdn.net/room/postgresqlchina/XB2Uc2AA?spm=1001.2014.3001.5501 【阅读原文】https://www.huaweicloud.com/product/dbs.html
  • [技术干货] 题目:将一个列表的数据复制到另一个列表中。
    题目:将一个列表的数据复制到另一个列表中。程序分析:使用列表[:]。程序源代码:实例#!/usr/bin/python# -*- coding: UTF-8 -*-a = [1, 2, 3]b = a[:]print (b)以上实例输出结果为:[1, 2, 3]
  • [技术干货] 【云图说】第226期 DRS数据对比——带您随时观测数据一致性
    数据复制服务DRS介绍页入口,详情请点击链接数据复制服务DRS数据对比功能入口,详情请点击链接小云妹又来啦,新的一周,新的知识,今天给大家介绍一个数据迁移的神器----数据对比功能。除了网络中断自动重试、任务断点续传等各种技术保障以外,DRS还提供了数据对比功能,数据一不一致,对比见分晓,精准定位,动态实时对比,云图说为您一一详解:
  • [沙箱纠错] 使用DRS实现数据实时同步_mysql
    实验《使用DRS实现数据实时同步》指导手册中,关于源端Mysql数据库root用户的密码有疑问。如下截图1中,在ECS的terminal命令行中要求输入root用户名的密码为portalTest@123,而再截图2中,在创建的DRS同步任务中源端数据库root用户的密码为test@123,两个密码不一致,请教这是为什么?
  • [活动体验] 数据处理中的张量代码①
    ```C++// 导入同名的.h头文件#include "minddata/dataset/core/tensor.h"// 导入系统标准库文件#include #include #include #include #include #include #include #include // 导入自定义.h头文件#include "minddata/dataset/core/type_id.h"#include "utils/ms_utils.h"#include "minddata/dataset/include/dataset/constants.h"// ifndef定义的宏ENABLE_ANDROID,如果没有被定义过,就执行后续代码,如果被定义过,就执行endif的代码#ifndef ENABLE_ANDROID#include "minddata/dataset/core/cv_tensor.h"#endif// 导入自定义头文件#include "minddata/dataset/core/global_context.h"// 与上文的类似,不做解释#ifdef ENABLE_PYTHON#include "minddata/dataset/core/pybind_support.h"namespace py = pybind11; // 存放python代码的命名空间#endif#include "minddata/dataset/core/tensor_shape.h"// 双重命名空间namespace mindspore {namespace dataset {// 用于打印张量元素的辅助宏#define CASE_PRINT(de_type, native_type) case de_type: { native_type o; rc = GetItemAt(&o, index); out AllocateBuffer(byte_size)); } return Status::OK();}Status Tensor::CreateFromMemory(const TensorShape &shape, const DataType &type, const uchar *src, TensorPtr *out) { RETURN_IF_NOT_OK(CreateEmpty(shape, type, out)); if (src != nullptr) { // 给定此张量的形状/类型,计算数据大小并复制输入字节。 int64_t byte_size = (*out)->SizeInBytes(); int ret_code = memcpy_ss((*out)->data_, byte_size, src, byte_size); // 无法将数据复制到张量中 CHECK_FAIL_RETURN_UNEXPECTED(ret_code == 0, "Failed to copy data into tensor."); } return Status::OK();}Status Tensor::CreateFromMemory(const TensorShape &shape, const DataType &type, const unsigned char *src, const dsize_t &length, TensorPtr *out) { // 指向源数据的指针为空 CHECK_FAIL_RETURN_UNEXPECTED(src != nullptr, "Pointer to source data is null."); const TensorAlloc *alloc = GlobalContext::Instance()->tensor_allocator(); *out = std::allocate_shared(*alloc, shape, type); if (type.IsNumeric()) { dsize_t calculated_length = (*out)->SizeInBytes(); // 源数据的长度与形状不匹配 CHECK_FAIL_RETURN_UNEXPECTED(calculated_length == length, "Length of source data does not match the shape."); } else { // min_length 是空字符串张量的长度 // min_length = 存储偏移量所需的字节数 + 每个元素的 1 个字节 dsize_t min_length = (shape.NumOfElements() + 1) * kOffsetSize + shape.NumOfElements(); // 源数据的长度与形状不匹配 CHECK_FAIL_RETURN_UNEXPECTED(min_length AllocateBuffer(length)); int ret_code = memcpy_ss((*out)->data_, length, src, length); // 无法将数据复制到张量中。 CHECK_FAIL_RETURN_UNEXPECTED(ret_code == 0, "Failed to copy data into tensor."); return Status::OK();}#ifdef ENABLE_PYTHONStatus Tensor::CreateFromNpString(py::array arr, std::shared_ptr *out) { std::vector shape; for (dsize_t i = 0; i < arr.ndim(); i++) { shape.push_back(static_cast(arr.shape())); } arr.resize({arr.size()}); // 压平 py::array 以便我们可以迭代一次 std::vector strings; if (arr.dtype().kind() == 'U') { std::for_each(arr.begin(), arr.end(), [&strings](const auto &s) { strings.emplace_back(py::cast(s)); }); } else { std::for_each(arr.begin(), arr.end(), [&strings](const auto &s) { strings.emplace_back(py::cast(s)); }); } arr.resize(shape); // 将 arr 调整回原始形状 return CreateFromVector(strings, TensorShape{shape}, out);}Status Tensor::CreateFromNpArray(const py::array &arr, std::shared_ptr *out) { if (DataType::FromNpArray(arr) == DataType::DE_STRING) { return CreateFromNpString(arr, out); } std::vector shape; std::vector strides; // 检查步幅是否连续 bool is_strided = false; dsize_t count = arr.size(); for (dsize_t i = 0; i < arr.ndim(); i++) { shape.push_back(static_cast(arr.shape())); strides.push_back(static_cast(arr.strides())); // 在空数组的情况下 num_items=0 if (count != 0) { count /= shape; if (strides != arr.itemsize() * count) { is_strided = true; } } } // 定义指针 unsigned char *data = static_cast(arr.request().ptr); // 判断条件是否符合 if (is_strided) { RETURN_IF_NOT_OK(Tensor::CreateEmpty(TensorShape(shape), DataType::FromNpArray(arr), out)); RETURN_IF_NOT_OK(CopyStridedArray((*out)->data_, data, shape, strides, (*out)->type_.SizeInBytes())); } else { RETURN_IF_NOT_OK(Tensor::CreateFromMemory(TensorShape(shape), DataType::FromNpArray(arr), data, out)); } return Status::OK();}#endif```
  • [技术干货] 我使用DRS同步MySQL Float类型数据到PostgreSQL,为什么两边数据"不一致"
    最近收到一个客户反馈使用DRS同步后,源库和目标库的数据不一致。数据一致性是DRS的生存之本,团队上下非常重视,收到反馈后马上联系客户了解情况排查原因,最终发现原来是虚惊一场。那么这个“不一致”是怎么产生的?它底层的根本原因又是什么呢?接下来我们一起来挖一挖。### 问题现象客户使用DRS创建了MySQL到PostgreSQL的同步任务,MySQL表中存在一个FLOAT类型的列,DRS任务启动后会在PostgreSQL中对应创建一个FLOAT4的列。同步过程中在MySQL中插入一条FLOAT列值为3.1415926的数据,同步后在源库MySQL中SELECT出来的数据是3.14159,而在目标库PostgrSQL中SELECT出来却是3.1415925。### 复现步骤:1. 在源库建表:```CREATE TABLE `float_test` (`id` int(11) primary key,`id2` float) ENGINE=InnoDB DEFAULT CHARSET=utf8```2. 创建DRS任务,同步这张表的数据到PostgreSQL。目标库会自动创建下表:```CREATE TABLE "root"."float_test" ("id" int PRIMARY KEY,"id2" FLOAT4)```3. 在源库insert数据:```insert into `float_test` values (1, 3.1415926);```4. 数据同步之后通过mysql客户端查询: ![](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202110/30/212544xwlhjzvltsvzwq3e.png)通过postgresql客户端查询: ![](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202110/30/220225tpxlepjbgjhm6sgi.png)而通过jdbc查询:mysql: ![](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202110/30/220318ok6xwp6d82fzlwr3.png)postgresql: ![](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202110/30/220331oolheuirfknpihww.png)### 问题原因:mysql底层存储3.1415926的时候,binlog中记录的数据为3.1415925,DRS从binlog中解析出来数据,同步到PostgrSQL的也是3.1415925。而通过mysql的driver进行select的时候,mysql driver对数据进行了截断,所以查出来是3.14159,而PostgrSQL的driver没有进行截断,导致通过两种driver select出的数据不一致。如果不想让driver截断,可以在jdbc的url中增加useServerPrepStmts=true的option。
  • [行业资讯] 华为云GaussDB深耕数字化下半场,持续打造数据库根技术
     10月18日,以“数造未来”为主题的第12届中国数据库技术大会(DTCC2021)在北京举办,华为云数据库CTO庄乾锋携华为云数据库多位技术专家和优秀合作伙伴共同参会并发表了重要主题演讲,分享了GaussDB立足数据库6项基础研究,持续打造根技术,加速数字技术与业务的进一步融合创新。华为云数据库CTO庄乾锋现场发表演讲 在上午的大会主会场,华为云数据库首席架构师冯柯表示:“数字化转型已从'以资源为中心'转换成'以应用为中心',数字化转型进入新阶段。华为云GaussDB将深耕数字化下半场,坚持在金融级高可用、云栈垂直整合、密态数据库等6大基础研究上投入,打造根技术竞争力。同时将产品能力应用到更多商业实践,为客户提供更多高效可用的解决方案,做企业核心数据上云信赖之选。” 华为云GaussDB紧随时代发展潮流,紧密结合客户业务场景,不断进行自主创新,积极打造极致性能、高可用的数据库服务。华为云数据库CTO庄乾锋表示:“基于客户业务需求,华为云GaussDB在云原生多主、基于Memory Pool的HTAP、云原生Serverless、AI自治、全密态数据库等方面进行了巨大创新,同时还联合梦饷、消费者云、迪思杰等合作伙伴联合创新,打造更多、更优的数据库服务能力,满足客户多种复杂场景需求。” 华为云GaussDB立足云原生,提升高可用能力 云原生在互联网领域逐渐成为主流,越来越多的互联网应用基于云原生架构运行。华为云数据库技术专家彭立勋介绍到:华为云GaussDB面向互联网云原生场景,构建了自己独特的云原生能力,以高可用为例,GaussDB致力于向全场景透明应用连续性方向持续演进,提供最佳的云原生数据库体验。 云原生高可用能力可以让企业摆脱扩展难、稳定性差等痛点,让企业更聚焦业务价值创造,实现业务新一轮发展。厚仁科技技术研发部副部长杨喜帅表示:“厚仁科技在线教育平台基于GaussDB提供的高可用、高性能、易扩展、低时延等能力,流量暴涨下平台依旧稳定,在线服务提供更及时,用户体验更佳。” 华为云GaussDB存储引擎创新,探索更高可用方案 高可用作为数据库根技术之一,影响着企业业务的持续稳定运行,对业务发展至关重要。华为GaussDB技术专家王磊表示:“GaussDB通过将磁盘引擎和内存引擎结合,提供了高性能/高扩展的并发控制事务系统、高可靠/高可用的日志系统、灵活的表级存储格式/引擎、统一的行存访存接口等能力,面对大容量、追求极致性能的业务场景表现更优。” 当前该能力已在部分行业落地实践,华为消费者云数据库技术专家张中靖表示:“消费者云服务业务覆盖全球180+国家/地区、亿级终端用户,需要具备高性能、高可靠、 大容量的分布式数据存储服务。消费者云服务基于华为云GaussDB(for openGauss)分布式数据库技术构建了单集群PB级、万亿记录、跨AZ高可用的扩展能力,实现简化业务开发、快速构筑开发者生态。” 华为云生态工具革新,为企业提供更快上云方式 近年来,去“O”的呼声越来越大,大量的传统企业开始脱离“IOE”集中式架构,进行分布式改造,迈向云端。华为云数据库技术专家窦德明表示:“针对去‘O’,华为云GaussDB推出了数据复制服务DRS+数据库和应用迁移UGO专属解决方案,提供简单易用、高效可靠的迁移服务。目前该方案已在某金融头部企业中实施,并经受住海量存储过程改造、TB级数据在线迁移等业务实践考验。而作为语法转换利器的UGO,目前也开始正式商用了。” 作为华为优秀生态合作伙伴和数字服务提供商,迪思杰在信息化创新、数字化转型的大背景下,对数据管理技术和产品进行了多方位革新。迪思杰副总裁王浩表示:“迪思杰打造了全套数据生命周期管理解决方案,还联合华为推出了面向GaussDB的数据生态产品和解决方案,以及面向华为云的数据**系列产品和解决方案,积极构建国产数据库生态,共创数字化繁荣。” 数字化创新之路还在继续,华为云GaussDB会继续携手更多合作伙伴,打造更优、更专业高效的数据库服务,加速企业数字化转型,创造数据库新未来!【GaussDB技术专场预告】10月19日下午和20日上午还有华为云GaussDB金融核心业务去“O”实践介绍,以及GaussDB NoSQL技术演进内容分享,精彩依旧,干货满满,千万不要错过啦!
  • [问题求助] 【ROMA与VCM对接】【华为视频分析平台】数据订阅并获取连接
    【功能模块】华为视频分析平台-数据订阅并获取连接-callback模式【操作步骤&问题现象】1、使用postman调用vcm接口可以成功,但使用roma API网关-API测试-数据订阅并获取连接 返回 master callbackUrl is invalid参数信息:{    "request":{        "callbackUrl":{            "master":"http://106.75.66.197:12312",            "authMode":"0"        },        "suspectId":"61403bf55514004500efc404,6123580333173033473c55fe"    }}【截图信息】
总条数:66 到第
上滑加载中