• [问题求助] HCCDE – Big Data 这个认证为什么专家级不能报名呢
    HCCDE – Big Data 这个认证为什么专家级不能报名呢
  • [问题求助] 茅台酒库一体化环境迁移报错
    茅台酒库AP1环境中的HiCampus__SecurityWorkbenchBase应用,打包安装在ulab环境后,报错。安装高级页面时出错: 导入'高级页面'请求失败,错误码为'3004',错误信息为'页面引用的插件资产不存在,资产插件标识:global_SCResafety3DAdapter。'但项目中是有这个资产插件。AP1环境:
  • [教程] DataArts Studio 通过Rest Client 接口读取RESTful接口数据的能力,存储到Hive
    本文指导从RESTful地址中读取数据并同步到MRS-Hive表中,大致方案,DataArtStudio 管理配置采集任务,通过CDM服务进行代理下发和第三方API服务器进行对接,响应消息通过节点间参数传递给MSR-Hive-SQL解析入库,集成流程如下:方案开发流程如下:步骤1:DataArtsStudio 创建Rest Client任务数据开发模块,创建Rest Client节点,输入GET/POST参数,包括认证方式,头域、请求参数/消息体其中请求消息体中json可以使用EL表达式,比如携带时间过滤参数JSON Body体{ "startTime":"#{DateUtil.format(DateUtil.addDays(Job.planTime,-1),"yyyy-MM-dd")}", "endTime":"#{DateUtil.format(DateUtil.now(),"yyyy-MM-dd")}" }系统转换后参数如下:{ "startTime":"2023-07-11", "endTime":"2023-07-12" }EL表达式的详细参考如下:cid:link_0响应消息的JSON中返回的消息如下数组格式:Response body: {"data": [ { "id":99467, "proportionProjectId":"0405", "proportionProjectName":"外勤津贴", "proportionAfterTax":40800, "proportionDepartmentId":289, "proportionDepartmentName":"总所税务部", "voucherStatusTime":1600758794000, "billsNumber":"2020092299467" }, { "id":102000, "proportionProjectId":"040102", "proportionProjectName":"040102 _ 职能部门员工年薪", "proportionAfterTax":20000, "proportionDepartmentId":296, "proportionDepartmentName":"总所创客部", "voucherStatusTime":1606209149000, "billsNumber":"2020112402000" } ] }步骤2:MSR-Hive创建表CREATE TABLE IF NOT EXISTS mrs_hive_rest ( `billsNumber` STRING ,`proportionDepartmentId` BIGINT ,`voucherStatusTime` BIGINT ,`proportionProjectId` STRING ,`proportionAfterTax` BIGINT ,`id` BIGINT ,`proportionProjectName` BIGINT ,`proportionDepartmentName` STRING );步骤3:DataArtsStudio 创建hive-sql脚本用于存储POST接口的响应消息数据开发模块创建hive-sql脚本,例如:-- HIVE sql -- ******************************************************************** -- -- author: zhanghaoqi -- create time: 2023/07/12 15:50:41 GMT+08:00 -- ******************************************************************** -- SELECT * FROM mrs_hive_rest; INSERT INTO mrs_hive_rest SELECT json_tuple(json, 'billsNumber', 'proportionDepartmentId', 'voucherStatusTime', 'proportionProjectId', 'proportionAfterTax', 'id', 'proportionProjectName', 'proportionDepartmentName') FROM ( SELECT explode(split(regexp_replace(regexp_replace('${jsonStr}', '\\[|\\]',''),'\\}\\,\\{','\\}\\;\\{'),'\\;')) as json) t; SELECT * FROM mrs_hive_rest;SQL脚本关键点说明,在脚本中引用**${jsonStr}** 作为响应的消息的JSON字符串进行解析(在步骤4中定义改参数内容)由于响应消息是JSON数组,使用了内置的json和字符串方法进行解析。步骤4:DataArtsStudio 创建hive-sql节点执行脚本创建hive-sql节点,执行步骤3脚本参数关键点:脚本参数会自动提取SQL脚本中引用的参数,此处需要配置参数的内容,参数使用EL表达式获取前一个Rest_Client节点的返回值 #{JSONUtil.toString(JSONUtil.path(Job.getNodeOutput("Rest_Client_1729"),"data"))} 其中Rest_Client_1729为前一个节点的任务名,data为前一个节点的数据路径。步骤5:配置完成后执行测试运行验证脚本配置完成后,测试运行脚本,通过查看日志确认内容是否符合预期,SQL入库是否成功。[2023/07/12 20:13:24 GMT+0800] [INFO] Connect to server successfully [2023/07/12 20:13:24 GMT+0800] [INFO] Executing SQL:SELECT * FROM mrs_hive_rest; [2023/07/12 20:13:24 GMT+0800] [INFO] Execute SQL successfully [2023/07/12 20:13:24 GMT+0800] [INFO] Reading SQL execution result [2023/07/12 20:13:24 GMT+0800] [INFO] The first 0 rows:[2023/07/12 20:13:24 GMT+0800] [INFO] Read SQL execution result successfully [2023/07/12 20:13:24 GMT+0800] [INFO] [2023/07/12 20:13:24 GMT+0800] [INFO] Executing SQL:INSERT INTO mrs_hive_rest SELECT json_tuple(json, 'billsNumber', 'proportionDepartmentId', 'voucherStatusTime', 'proportionProjectId', 'proportionAfterTax', 'id', 'proportionProjectName', 'proportionDepartmentName') FROM ( SELECT explode(split(regexp_replace(regexp_replace('[{"billsNumber":"2020092299467","proportionDepartmentId":289,"voucherStatusTime":1600758794000,"proportionProjectId":"0405","proportionAfterTax":40800,"id":99467,"proportionProjectName":"外勤津贴","proportionDepartmentName":"总所税务部"},{"billsNumber":"2020112402000","proportionDepartmentId":296,"voucherStatusTime":1606209149000,"proportionProjectId":"040102","proportionAfterTax":20000,"id":102000,"proportionProjectName":"040102 _ 职能部门员工年薪","proportionDepartmentName":"总所创客部"}]', '\[|\]',''),'\}\,\{','\}\;\{'),'\;')) as json) t; [2023/07/12 20:13:38 GMT+0800] [INFO] Execute SQL successfully [2023/07/12 20:13:38 GMT+0800] [INFO] Reading SQL execution result [2023/07/12 20:13:38 GMT+0800] [INFO] Read SQL execution result successfully [2023/07/12 20:13:38 GMT+0800] [INFO] [2023/07/12 20:13:38 GMT+0800] [INFO] Executing SQL:SELECT * FROM mrs_hive_rest; [2023/07/12 20:13:38 GMT+0800] [INFO] Execute SQL successfully [2023/07/12 20:13:38 GMT+0800] [INFO] Reading SQL execution result [2023/07/12 20:13:38 GMT+0800] [INFO] The first 2 rows: 2020092299467,289,1600758794000,0405,40800,99467,null,总所税务部 2020112402000,296,1606209149000,040102,20000,102000,null,总所创客部[2023/07/12 20:13:38 GMT+0800] [INFO] Read SQL execution result successfully [2023/07/12 20:13:38 GMT+0800] [INFO]确认脚本执行成功,入库成功。
  • [问题求助] 查询表时候报:查看表数据时出错。
    查询表时候报:查看表数据时出错。 单击“详细信息”了解详情。   [SQLErrorCode : 6636]ERROR: pooler: failed to create 2 connections, Error Message: remote node dn_6003_6004, detail: GSSAPI continuation error, more than 10 times, remote datanode dn_6003_6004, errno: Success各位大佬,求助!!!感谢!!!!
  • Megahit迁移
    在使用鲲鹏代码迁移工具对源码文件进行迁移时这个错误,不会自动修改。请问各位大佬怎么解决这个问题
  • [技术干货] 镜像迁移
    问题:zhxx-app.vmdk和zhxx-db.vmdk是否都能导入华为云镜像的方式部署? 问题2:对于Vmware镜像文件.vmdk部署为华为云的弹性云服务器ECS,其流程主要步骤有哪些?回答:1、华为云支持导入vhd、vmdk、qcow2、raw、vhdx、qcow、vdi、qed、zvhd或zvhd2格式镜像文件。2、使用公有云镜像服务,步骤如下: 准备符合平台要求的外部镜像文件。 上传外部镜像文件到OBS个人桶中。 通过管理控制台选择上传的镜像文件,并将镜像文件注册为私有镜像。 私有镜像注册成功后,使用该镜像创建新的云服务器。
  • java代码迁移实验
    就挺麻的,第一步死活报错。找不到文件。
  • [综合] 在线迁移和离线迁移的对比
    在线迁移:是指在系统不停机的情况下,将服务器或虚拟机上的系统、服务程序等从自建机房(IDC)或云平台等源环境迁移同步至云上,方便实现企业上云、跨云平台迁移、跨账号/区域迁移或部署混合云等业务需求。@离线迁移:(1)离线实例迁移:将系统盘镜像(若需同时迁移实例已挂载的数据盘,则可将系统盘镜像和数据盘镜像)迁入至指定的云服务器。(离线数据迁移)将数据盘镜像迁入至指定的云硬盘。区别:离线迁移需要先将源端服务器的系统盘或数据盘制作成镜像,再将镜像迁移至您指定的云服务器或云硬盘。在线迁移无需制作镜像,直接在源端服务器运行迁移工具,即可将源端服务器迁移至指定的云服务器。在线迁移、离线迁移对比三方面:成本、效率、安全性。成本:大规模数据的迁移需要耗费大量传输资源,就是网络,成本较高,因此数据量太大有时不适合在线传输。效率:效率受网速限制,如通过网络转移1EB的数据大约需要26 年,而用十辆卡车可以将传输时间降至6个月内安全:利用云计算的黑客攻击愈发频繁,尤其像金融等传统客户是不放心数据在线迁移的。在线迁移工具:技术流:Oracle系统迁移(自带)Oracle Golden Gate/ Data Guard(DG),MS Always On……服务流:采用数据复制服务DRS做数据库迁移,此外若客户涉及异构数据库迁移,则也可用数据库应用迁移服务UGO做迁移离线迁移工具:DES数据快递服务、OBS对象存储
  • [综合] Oracle数据库迁移上云和迁移到数仓的工具和流程
    利用华为云云数据库RDS和分布式数据库中间件DDM完成Oracle应用迁移上云,提高访问效率,轻松应对高并发的实时交易场景,若采用工具流:Oracle Golden Gate/Data guard/Always On/数据库自带迁移工具等若采用公有云服务:DRS数据复制服务(偏同构数据库)1、Oracle数据库迁移上云的工具和流程迁移上云的工具5Oracle数据库可以使用OGG迁移上云流程Oracle GoldenGate 数据复制过程如下:利用抽取进程(Extract Process)在源端数据库中读取Online Redo Log或者Archive Log,然后进行解析,只提取其中数据的变化信息,比如DML操作——增、删、改操作将抽取的信息转换为GoldenGate自定义的中间格式存放在队列文件(trail file)中再利用传输进程将队列文件(trail file)通过TCP/IP传送到目标系统。目标端有一个进程叫Server Collector,这个进程接受了从源端传输过来的数据变化信息把信息缓存到GoldenGate 队列文件(trail file)当中,等待目标端的复制进程读取数据。GoldenGate 复制进程(replicat process)从队列文件(trail file)中读取数据变化信息,并创建对应的SQL语句,通过数据库的本地接口执行,提交到目标端数据库,提交成功后更新自己的检查点,记录已经完成复制的位置,数据的复制过程最终完成。2、Oracle迁移至数据仓库(GaussDB)的工具和流程使用DRS的实时同步功能将本地Oracle数据库实时迁移至华为云GaussDB(for openGauss)。通过全量+增量同步,实现源数据库Oracle和目标数据库GaussDB(for openGauss)的数据长期同步。(1)迁移至数据仓库的工具:DRS(2)迁移至数据仓库的流程:创建VPC和安全组创建GaussDB(for openGauss)实例迁移前构造数据迁移数据库(创建DRS实例,将本地Oracle上的test_info数据库迁移到GaussDB(for openGauss)实例中test_database_info数据库中)迁移后进行数据校验PS:补充业务架构和迁移原理(防止考到)1、业务架构图2、迁移原理次实践使用全量+增量同步功能,原理如下:全量同步阶段,先进行结构迁移,例如表、主键、唯一键的迁移。结构迁移完成后,启动增量数据抽取,以确保全量数据同步期间的增量数据完整的抽取到DRS实例。启动全量迁移任务。全量迁移完成后自动进入增量同步,从全量迁移开始抽取的位点开始回放。当增量回放全部完成后,启动比对任务进行一致性检查,支持实时比对。实时比对数据一致时,可以启动业务割接。
  • [教程] 使用CDM搬迁关系型数据库类作业报错Read timed out的排查流程
    关系型数据库类作业搬迁报错Read timed out的排查说明问题背景在进行关系型数据库的搬迁时,经常会出现Read timed out异常,该类问题一般是在设定的超时时间内没有完成对应抽取或写入数据的SQL。下面以MySQL2DWS的单表迁移作业日志为示例,讲述如何简单并快速定位该类问题。定位流程找到导致作业失败的异常日志在作业日志中的位置,界面提示报错信息如下:作业日志异常位置关键信息如下:aa:表示出现异常的时间点为2022-05-18 09:57:18,049bb:表示出现异常的线程名称为LocalJobRunner Map Task #51 cc:表示导致异常产生的原因为The last packet successfully received from the server was 300,100 milliseconds ago.  The last packet sent successfully to the server was 300,100 milliseconds ago.dd:异常堆栈中出现该方法表示是在抽取线程中出现的异常:org.apache.sqoop.connector.jdbc.GenericJdbcExtractor.extractee:表示导致该异常的根因是Read timed out由以上关键信息,即可分析出现异常的原因是cdm在抽取数据过程中出现了超时,超时时间是300100ms(5min)左右,cdm作为客户端抽取源端数据,由于源端数据超过5min没有返回(也可以说是某个数据包),导致超时异常产生;进一步确认是那个动作执行出现了超时,按照抽取线程名LocalJobRunner Map Task #51向上搜索作业日志,寻找上一次该线程的时间点,因为cdm对应该抽取线程名的laoder线程名为LocalJobRunner Map Task #51 #laoder,所以一般按照LocalJobRunner Map Task #51 [ 来搜索;由以上日志可以看出是cdm提交的查询语句(SELECT * FROM xxxx WHERE xxxx)在数据源端超过了5min(从2022-05-18 09:52:17到2022-05-18 09:57:18,049)问题根因对应的SQL执行时间超过了CDM设置的默认超时时间,读写数据的默认超时时间是5min,获取连接的默认超时时间是1min;解决措施配置对应连接的相关超时参数。   关于关系型数据库的该类超时问题,排查思路如下:先要确认是抽取源端超时还是写入目的端超时;再确认当前生效的超时时间;最后在连接管理中找到对应的连接,配置高级属性,对于MySQL、SqlServer、DWS等关系型数据库读写超时参数为socketTimeout,连接超时参数为connectTimeout,对于oracle数据库,读写超时参数为jdbc.ReadTimeout,连接超时参数为oracle.net.CONNECT_TIMEOUT,单位均为ms。   上面讲述了出现了超时的基本解决措施,另外还可以从如下几个方面考虑:数据大表,考虑用where条件拆分成多个子作业,where条件中的字段最好是主键或者索引字段;避免数据源在同一时间大批量执行业务,尽量错峰运行业务(数据源端业务压力大时,相关sql会执行缓慢);cdm 作业的抽取并发数和抽取并发字段设置合理,抽取并发字段一般建议设置成主键,其次是设置成数据分布均匀的带有索引的字段; 
  • [问题求助] 单表迁移作业报错Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]
    【功能模块】HIVE2MySQL 单表迁移作业报错,日志提示“java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.ffffffffff]”【操作步骤&问题现象】【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] 【CDM】抽取HBASE表数据报错”HBASE_CONNECTOR_1104:Failed to open tablble.
    【功能模块】【操作步骤&问题现象】抽取HBASE表数据作业失败,作业日志报错”HBASE_CONNECTOR_1104:Failed to open table. Cause : callTimeout=6000…”【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] 【CDM】【单表迁移】DWS自动建表报错“column name “tid” conflicts with a system
    【功能模块】mysql2dws 单表迁移,自动建表【操作步骤&问题现象】作业运行失败【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [其他] CDM作业配置界面选择模式或表空间/表名选项,列表显示为空也没有任何报错提示
    作业配置界面选择模式或表空间/表名选项,列表显示为空也没有任何报错提示建议按照如下排查方式排查:检查对应连接的连通性是否正常;检查对应连接所使用的用户权限配置是否满足,权限参考https://support.huaweicloud.com/productdesc-cdm/cdm_01_0008.html ;对于关系型数据库类,可以尝试在对应连接的高级属性中,配置或去掉引用符号尝试;对于关系型数据库类,检查驱动版本是否是正确匹配,更换驱动尝试;
  • [迁移系列] CDM迁移阿里云ADB到华为云DWS
    1. 阿里云ADB导入数据到DWS前提配置点(1) CDM绑定的公网IP的带宽不能太低,建议为按需购买的300M/S;(2) 阿里云ADB端的一个查询的连接时长默认为30min,若导数时长长于此值,会报错(Query exceeded maximum time limit of 1800000.00ms)进行设置:SET adb_config QUERY_TIMEOUT=XXXX;(阿里云这个全局生效)(3) DWS目标端为列存表时,delta不要开启;DWS目标端最好提前建好表,是分区表的话注意分区范围1.1 创建阿里云连接1.2 创建DWS连接1.3 作业配置1.4 CDM配置管理