华为云用户手册

  • CodeArts PerfTest最佳实践汇总 本文汇总了基于性能测试(CodeArts PerfTest)常见应用场景的操作实践,为每个实践提供详细的方案描述和操作指导,帮助您轻松掌握不同应用场景下CodeArts PerfTest的使用方法。 表1 CodeArts PerfTest最佳实践一览表 最佳实践 说明 城市政务一网通办系统性能测试 类似“一网通办”等跟国计民生相关的系统,由于突然的访问量暴增导致系统响应慢,为避免流量高峰期使用出现系统崩溃,性能测试服务通过模拟相关实际场景,快速构造压力模型,发现不同压力模型下服务的性能瓶颈,避免宕机。 JMeter测试工程原生性能压测 PerfTest-JMeter测试工程旨在为用户提供JMeter原生引擎的支持,用户可在PerfTest-JMeter测试工程里导入JMeter脚本,使用JMeter原生引擎快速发起高并发的性能测试,可查看完备的性能测试报告。 全局变量使用全流程 全局变量用于构造数据集合,使测试数据更加丰富。在报文事务请求信息的报文内容中引用全局变量,执行压测任务过程会将报文内容中的变量值动态替换为指定的值。
  • 抢占共享权限 9.7.7及以上版本的客户端可支持。 当会中有人共享时,主持人或其他与会者可发起自己的共享并停止正在进行的共享。 企业管理员可对企业下所有会议抢占共享权限的默认值进行设置,详细操作请参考设置会议参数。 进入会议后,主持人可对当前会议抢占共享权限的范围进行修改。 主持人进入会议。 单击会控栏中“共享”右侧的按钮。 根据需要进行选择,如图2所示。 仅主持人可抢占:选择后,仅主持人可发起自己的共享并停止正在进行的共享。 所有与会者可抢占:选择后,所有与会者可发起自己的共享并停止正在进行的共享。 图2 设置抢占共享权限 (可选)主持人完成设置后,拥有权限的与会者单击会控栏中的“共享”可抢占共享。
  • 隐藏标注者姓名 与会者参与会中标注时,可观看正在标注的会场名称,沟通更流畅。 入会后,共享者单击会控栏中的“共享”,选择共享内容并发起共享。 在共享界面,共享者单击会控栏中的“标注”开启标注,其他与会者可参与会中标注。 在标注界面,共享者和观看者单击会控栏中的“标注设置”,可选择勾选或取消勾选“隐藏标注者姓名”,如图4所示。 取消勾选“隐藏标注者姓名”后,可以观看正在标注的会场名称,如图5所示。 图4 隐藏标注者姓名 图5 观看正在标注的会场名称
  • 通过与会者界面邀请与会者 主持人或普通与会者会中可以打开与会者界面并邀请他人入会。 加入会议后,单击会控栏中的“与会者”打开界面。 单击界面右上角的按钮,选择邀请方式并邀请与会者。 表1 会中邀请方式 邀请方式 操作说明 通讯录邀请 单击“通讯录邀请”打开邀请界面,可从“我的收藏、手机通讯录、企业通讯录、会议终端”中选择需要邀请的用户。 搜索:在搜索框输入姓名、手机号码或邮箱,勾选搜索出来的用户。 我的收藏:单击“我的收藏”,单个勾选或全选已收藏的企业用户。 手机通讯录:单击“手机通讯录”,勾选手机通讯录中的用户。 企业通讯录:单击“企业通讯录”,选择部门,单个勾选或全选部门中的企业用户。 会议终端:单击“会议终端”,单个勾选或全选会议终端。 勾选需要邀请的用户后,单击“确定”。 说明: 如果您需要添加用户到“我的收藏”,可以在通讯录中单击企业成员打开名片,单击按钮可以收藏联系人。 企业通讯录由企业管理员创建和管理,管理方法请参见管理部门、管理用户。 会议终端由企业管理员添加到华为云会议管理平台,添加会议终端的方法请参见添加专业会议终端、管理SmartRooms、添加智慧屏TV、添加智能协作大屏(IdeaHub,Board系列)、添加第三方终端。 取消已勾选的用户:在通讯录中已勾选的用户将显示在邀请界面下方。单击对应用户的头像可以取消勾选该用户。 微信邀请 单击“微信”将跳转至微信界面,选择对应的联系人并发送会议邀请。 短信邀请 单击“短信”将跳转至短信界面,将会议邀请发送给对应的联系人。 邮件邀请 单击“邮件”将跳转至邮件界面,将会议邀请发送给对应的联系人。 会议二维码 单击“会议二维码”可以复制会议的二维码,分享并邀请他人入会。 复制链接 单击“复制链接”可以复制会议链接,分享并邀请他人入会。 图1 会中邀请他人
  • 通过会中邀请弹窗邀请与会者 主持人或普通与会者可以通过会中的“邀请”按钮打开弹窗邀请与会者。 加入会议后,单击会控栏中的“邀请”。 在弹窗中选择邀请方式并邀请与会者。 表1 会中邀请方式 邀请方式 操作说明 通讯录邀请 可从“我的收藏、组织架构、会议终端、企业外部联系人、我的外部联系人”中选择需要邀请的用户。 搜索:在搜索框输入姓名、手机号码或邮箱,勾选搜索出来的用户。 我的收藏:单击“我的收藏”,单个勾选或全选已收藏的企业用户。 组织架构:单击“组织架构”,选择部门,单个勾选或全选部门中的企业用户。 会议终端:单击“会议终端”,单个勾选或全选会议终端。 企业外部联系人:单击“企业外部联系人”,单个勾选或全选外部联系人。 我的外部联系人:单击“我的外部联系人”,单个勾选或全选外部联系人。 勾选需要邀请的用户后,单击“确定”。 说明: 如果您需要添加用户到“我的收藏”,可以在通讯录中单击企业成员打开名片,单击按钮可以收藏联系人。 企业通讯录由企业管理员创建和管理,管理方法请参见管理部门、管理用户。 会议终端由企业管理员添加到华为云会议管理平台,添加会议终端的方法请参见添加专业会议终端、管理SmartRooms、添加智慧屏TV、添加智能协作大屏(IdeaHub,Board系列)、添加第三方终端。 企业外部联系人由企业管理员添加,添加方法请参见管理外部联系人。 如果您需要添加用户到“我的外部联系人”,请参见添加外部联系人。 取消已勾选的用户:在通讯录中已勾选的用户将显示在弹窗右侧的“已选择”中。单击“取消全部”将取消全部已勾选的用户。将鼠标移至需要取消选择的用户,单击可取消勾选该用户。 复制邀请 单击“复制邀请”打开页签。单击“复制”可以复制会议链接、会议号和密码等信息,分享复制的会议信息邀请他人入会。 扫码邀请 单击“扫码邀请”打开页签。单击“复制二维码”可以分享二维码邀请他人入会。 您也可以打开华为云会议移动端扫描二维码,分享会议信息。 图1 通讯录邀请 图2 复制邀请 图3 扫码邀请 图4 华为云会议移动端扫码分享(其他APP扫码分享界面略有差异) 图5 取消已勾选的与会者
  • 修订记录 发布日期 修订记录 2024-10-10 第二十四次正式发布。 新增: 接入 云桌面 时,如果有配置防火墙、安全组等访问控制,需要放通的云桌面相关业务IP与端口。: 客户端问题 2024-07-29 第二十三次正式发布。 修改: 优化接入桌面有怎样的网络要求?表格中用户体验列的描述内容。 2024-07-19 第二十二次正式发布。 新增: 云桌面内应用中心无法打开已经安装的软件如何处理? 2024-06-07 第二十一次正式发布。 新增:使用自定义安全组时,如何配置安全组规则? 2024-01-02 第二十次正式发布。 新增: Windows云桌面如何开启RDP? 2023-11-23 第十九次正式发布。 新增: 云桌面如何开启IPv6? 2023-09-11 第十八次正式发布。 新增: 云桌面最多支持创建多少个私有镜像? 如何开启/关闭云桌面的应急模式? 2023-08-23 第十七次正式发布。 新增: 购买云桌面后如何为企业项目迁入/迁出资源? 云桌面安装火绒杀毒管理员桌面转镜像失败如何处理? 2022-12-08 第十六次正式发布。 新增: 终端绑定问题 2022-11-11 第十五次正式发布。 修改: 优化云桌面支持使用私有镜像购买桌面吗?中镜像描述。 2022-11-03 第十四次正式发布。 新增: 云桌面如何进行备份恢复? 登录时提示受策略限制无法登录该如何处理? 2022-09-23 第十三次正式发布。 新增: 云桌面中可以登录淘宝网吗? 云桌面中可以访问手机淘宝吗? 修改: 修改云桌面支持哪种操作系统?中UOS操作系统版本。 2022-09-19 第十二次正式发布。 新增: 导入策略提示名称重复如何处理? 重建系统盘后Windows桌面的数据盘消失了怎么办? 2022-09-06 第十一次正式发布。 新增: 如何使终端用户可使用网络打印机? 云桌面管理控制台中提示“服务被锁定,请取消服务后重新开户”或“购买桌面、创建用户、创建策略、开通互联网”的按钮已置灰,无法使用怎么办? 云桌面中无法使用网络打印机怎么办? 2022-08-10 第十次正式发布。 修改: 优化云桌面屏幕无法适配怎么办?中PC显示器分辨率调节描述。 2022-08-08 第九次正式发布。 新增: 无法通过多因素验证怎么办? 2022-07-15 第八次正式发布。 新增: 如何通过其他云服务页面开通互联网? 2022-07-04 第七次正式发布。 新增: 云桌面无法访问互联网怎么办? 2022-07-01 第六次正式发布。 修改: 如何使终端用户可使用本地打印机?优化策略配置。 如何配置云桌面访问公网?优化参考链接。 如何配置云桌面访问企业内网?优化参考链接。 如何控制云桌面与本地存储设备之间的文件复制?优化操作描述。 云桌面无法连接外网怎么办?优化关闭代理描述。 云桌面中无法使用本地打印机怎么办?优化处理步骤。 无法在云桌面与本地存储设备之间复制文件怎么办?增加用户操作描述。 2022-04-29 第五次正式发布。 修改: 忘记帐户密码怎么办?优化操作描述。 2022-04-12 第四次正式发布。 新增: 如何启用AD服务器的LDAPS服务? 如何导出已启用LDAPS的AD服务器的根证书? 2022-03-30 第三次正式发布。 修改: 云桌面是如何计费的?优化套餐类型描述。 如下章节中增加Windows操作系统描述。 云桌面支持哪种操作系统? 云桌面是否支持个性化设置? 哪些软件禁止卸载? 哪些文件禁止删除? 哪些命令禁止执行? 2022-02-28 第二次正式发布。 新增: 如何扩容UOS磁盘容量至新增磁盘分区? 如何扩容UOS磁盘容量至已有磁盘分区? 2022-01-05 第一次正式发布。
  • 使用命令恢复历史不变的数据 这里以恢复“/hbase/data/default/table_20180811”表为例,恢复步骤如下: 进入 MRS Client所在的节点,例如master1节点。 切换为omm用户。 su – omm 加载环境变量。 source /opt/client/bigdata_env 执行修改目录权限命令。 hdfs dfs –chown omm:hadoop –R /hbase/data/default/table_20180811 omm:hadoop:表示用户名,实际场景中请替换。 /hbase/data/default/table_20180811:表示表所在路径。 执行恢复元数据命令。 hbase hbck –fixMeta table_20180811 执行Region上线命令。 hbase hbck –fixAssignments table_20180811 出现“Status: OK”则说明恢复表成功。
  • 恢复表时的问题处理 执行完fixMeta命令后,报错显示“xx inconsistent”: fixMeta命令是校验HDFS和HBase元数据一致性,出现这个提示是正常情况,继续执行fixAssignments命令即可。 执行完fixAssignments命令后,报错显示“xx inconsistent”: fixAssignments是让所有Region上线,偶尔会出现部分Region上线较慢,可以再执行一次以下命令检查一下: hbase hbck 表名 如果出现“Status : OK”则表示HBase表恢复成功。 执行完fixAssignments命令后,错误提示多个region有相同的startkey,部分region存在overlap情况: 可以再执行: hbase hbck –fixHdfsOverlaps 表名 执行完毕后再执行fixMeta和fixAssignments命令。
  • 准备数据 项目 数据项 说明 取值示例 DES盒子 挂载地址 DES盒子在客户的虚拟机挂载的地址。 //虚拟机IP/huawei 存储管理系统 DES盒子的存储管理系统,与管理IP相关。 https://管理IP:8088/deviceManager/devicemanager/login/login.html 用户名 登录存储管理系统的用户名。 admin 密码 登录密码。 - CDH集群 NameNode IP 客户CDH集群的主NameNode IP。 192.168.2.3 HDFS的端口 一般默认为9000。 9000 HDFS URI 客户CDH集群中HDFS的NameNode URI地址。 hdfs://192.168.2.3:9000 OBS OBS终端节点 OBS的Endpoint。 obs.cn-north-1.myhuaweicloud.com OBS桶 存放CDH一个月前历史数据的OBS桶。 cdm AK/SK 连接OBS的AK/SK。 - MRS Manager IP MRS Manager的IP地址。 192.168.3.11
  • 迁移方案 图1 迁移方案 H公司的车联网大数据业务平台当前CDH(Cloudera Hadoop) HBase集群中共有854张表约400TB,备HBase集群中共有149张表,约10TB数据。最近一个月新增的数据量是60TB。 使用 CDM 将CDH集群中的HBase HFile抽取出来存入到MRS(MapReduce) HDFS中,再通过HBase修复命令重建HBase表。基于这种迁移方案,可以使用以下2种迁移方式同时进行: CDM通过专线直接迁移近一个月的数据以及备HBase集群的数据: CDH → CDM(华为云) → MRS 使用云专线直接迁移时的优缺点: 优点:数据无需做多次的搬迁,缩短整体搬迁周期。 缺点:在数据大量传输过程中会占用专线带宽,对客户并行进行的业务存在影响,跨越多个交换机设备。 CDM通过DES(数据快递服务)迁移1个月前的历史数据,迁移路径如下: CDH → DES → CDM(华为云) → OBS → CDM(华为云) → MRS DES适用场景:数据量大,用户私有云与华为云无专线打通,用户私有云网络到公网带宽有限。 优点:传输可靠性高,受专线以及网络质量影响较小。 缺点:迁移方式耗时较长。
  • 前提条件 DLI 创建OBS外表,对OBS表数据存储格式有所要求: 使用DataSource语法创建OBS表时,支持orc,parquet,json,csv,carbon,avro类型。 使用Hive语法创建OBS表时,支持TEXTFILE, AVRO, ORC, SEQUENCEFILE, RCFILE, PARQUET, CARBON类型。 如果原始数据表存储格式不满足要求,您可以通过CDM将原始数据直接导入到DLI中进行分析,无需上传OBS。
  • 上传增量数据 使用CDM将存量数据上传完后,单击该作业后的“编辑”,直接修改该作业。 保持作业基本参数不变,单击“下一步”修改任务参数,如图1所示。 图1 定时任务配置 勾选“是否定时执行”,配置定时任务: “重复周期”配置为1天。 “开始时间”配置为每天凌晨0点1分执行。 这样CDM每天凌晨自动执行全量迁移,但因为“重复文件处理方式”选择了“跳过重复文件”,相同名称且相同大小的文件不迁移,所以只会上传每天新增的文件。 单击“保存”,完成CDM的增量同步配置。 父主题: 使用CDM上传数据到OBS
  • 场景描述 H公司是国内一家收集主要贸易国贸易统计及买家数据的商业机构,拥有大量的贸易统计数据库,其数据广泛应用于产业研究、行业研究、国际贸易促进等方面。 在这之前,H公司采用其自建的大数据集群,并安排专人维护,每年固定购买电信联通双线专用带宽,在机房、电力、专网、服务器、运维方面进行高额投入,但其在面对客户不断变化的业务诉求时,因为人员投入不足,大数据集群能力不匹配,而无法聚焦业务创新,使得存量100T的数据只有4%的利用率。 在将本地的贸易统计数据迁移到华为云之后,基于华为公有云的大数据分析能力,可帮助H公司屏蔽大数据基础设施复杂的构建、维护过程,使其客户人员可以全身心聚焦业务创新,盘活100T的存量数据,使资产最大化变现。 CDM和DLI服务按需收费,帮助H公司客户释放了维护人员并降低了专用带宽成本,使得维护成本相比线下数据中心降低了70%,且使用门槛低,可实现已有数据的平滑迁移,使新业务上线周期相比之前缩短了50%。
  • 数据说明 贸易详单数据 包括主要贸易国货物贸易统计数据。 表1 贸易详单数据 字段名称 字段类型 字段说明 hs_code string 进出口商品编码列表 country smallint 国家基础信息 dollar_value double 交易金额 quantity double 交易量 unit smallint 计量单位 b_country smallint 目标国家基础信息 imex smallint 进出口类型 y_year smallint 年 m_month smallint 月 基础信息数据 贸易详单数据中维度字段对应的相关字典数据信息。 表2 国家基础信息表(country) 字段名称 字段类型 字段说明 countryid smallint 国家编码 country_en string 国家英文名称 country_cn string 国家中文名称 表3 更新时间信息表(updatetime) 字段名称 字段类型 字段说明 countryid smallint 国家编码 imex smallint 进出口类型 hs_len smallint 商品编码长度 minstartdate string 最小开始时间 startdate string 开始时间 newdate string 更新时间 minnewdate string 最小更新时间 表4 进出口商品编码信息表(hs246) 字段名称 字段类型 字段说明 id bigint 编号 hs string 商品编码 hs_cn string 商品中文名称 hs_en string 商品英文名称 表5 单位信息表(unit_general) 字段名称 字段类型 字段说明 id smallint 计量单位编码 unit_en string 计量单位英文名称 unit_cn string 计量单位中文名称
  • 场景任务 根据客户原始数据采集处理系统中已有的H公司的数据(例如:贸易详单数据和基础信息数据),基于CDM+OBS+DLI完成贸易统计分析。 图1 场景方案 DLI创建OBS外表,对OBS表数据存储格式有所要求: 使用DataSource语法创建OBS表时,支持orc,parquet,json,csv,carbon,avro类型。 使用Hive语法创建OBS表时,支持TEXTFILE, AVRO, ORC, SEQUENCEFILE, RCFILE, PARQUET, CARBON类型。 如果原始数据表存储格式不满足要求,您可以通过CDM将原始数据直接导入到DLI中进行分析,无需上传OBS。
  • 创建CDM迁移作业 登录控制台,选择实例,单击“进入控制台”,单击相应工作空间后的“数据集成”。 在集群管理页面,单击集群操作列“作业管理”,进入“作业管理”页面,如图1所示。 图1 集群管理 在“连接管理”页签中,单击“新建连接”,分别创建Oracle数据连接和MRS Hive数据连接,详情请参见新建Oracle数据连接和新建MRS Hive数据连接。 在“表/文件迁移”页签中,单击“新建作业”,创建数据迁移作业。 配置Oracle源端参数、MRS hive目的端参数,并配置传递参数,参数形式为 ${varName},本示例参数为${cur_date},如图2所示。 图2 配置作业 不能在CDM迁移作业中配置“作业失败重试”参数,如有需要请在数据开发中的CDM节点配置“失败重试”参数。
  • 创建数据开发作业 单击工作空间的“数据开发”,进入 DataArts Studio 数据开发模块。 创建子作业“分表作业”,选择CDM节点,节点属性中作业类型配置为“创建新作业”,并将步骤2中复制的作业JSON粘贴到“CDM作业消息体”中。 图6 配置CDM作业消息体 编辑“CDM作业消息体”。 由于源表有三个,分别为mail001、mail002、mail003,因此需要将作业JSON中的“fromJobConfig.tableName”属性值配置为“mail${num}”,即源表名是通过参数配置。如下图所示: 图7 编辑JSON 由于数据迁移作业名不能重复,因此修改JSON中作业名称“name”属性值配置为“mail${num}”,目的是创建多个CDM集成作业,避免作业名称重复。如下图所示: 如果需要创建分库的作业,也可将作业JSON中的源连接修改为变量,方便替换。 图8 编辑JSON 添加作业参数num,用于作业JSON中调用。如下图所示: 图9 添加作业参数num 添加完成后单击“保存并提交版本”,以保存子作业。 创建主作业“集成管理”,选择For Each节点,每次循环调用分表作业,分别将参数001、002、003传递给子作业,生成不同的分表抽取任务。 关键配置如下: 子作业:选择“分表作业” 数据集:[['001'],['002'],['003']] 子作业参数:@@#{Loop.current[0]}@@ 此处子作业参数的EL表达式需要添加@@。如果不加@@包围,数据集001会被识别为1,导致源表名不存在的问题。 如下图所示: 图10 配置关键参数 配置完成后单击“保存并提交版本”,以保存主作业。 创建主作业和子作业完成后,通过测试运行主作业“集成管理”,检查数据集成作业创建情况。运行成功后,创建并运行CDM子作业成功。 图11 查看作业创建情况
  • 适用场景 业务系统中,数据源往往会采用分表的形式,以减少单表大小,支持复杂的业务应用场景。 在这种情况下,通过CDM进行数据集成时,需要针对每张表创建一个数据迁移作业。您可以参考本教程,通过数据开发模块的For Each节点和CDM节点,配合作业参数,实现批量创建分表迁移作业。 本教程中,源端MySQL数据库中存在三张分表,分别是mail01、mail02和mail03,且表结构一致,数据内容不同。目的端为MRS Hive服务。
  • 注意事项 由于CDM版本不同,某些属性可能不支持,比如fromJobConfig.BatchJob。当创建任务报错时,需要在请求体中删除该属性。如下图所示: 图12 修改属性 CDM节点配置为创建作业时,节点运行会检测是否有同名CDM作业。 如果CDM作业未运行,则按照请求体内容更新同名作业。 如果同名CDM作业正在运行中,则等待作业运行完成。此时该CDM作业可能被其他任务启动,可能会导致数据抽取不符合预期(如作业配置未更新、运行时间宏未替换正确等),因此请注意不要启动或者创建多个同名作业。
  • 前提条件 已创建CDM集群。 已获取MRS集群的Manager IP、管理员账号和密码,且该账号拥有数据导入、导出的操作权限。 MRS集群和CDM集群之间网络互通,网络互通需满足如下条件: CDM集群与云上服务处于不同区域的情况下,需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP,数据源所在的主机可以访问公网且防火墙规则已开放连接端口。 CDM集群与云上服务同区域情况下,同虚拟私有云、同子网、同安全组的不同实例默认网络互通;如果同虚拟私有云但是子网或安全组不同,还需配置路由规则及安全组规则,配置路由规则请参见如何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。 此外,您还必须确保该云服务的实例与CDM集群所属的企业项目必须相同,如果不同,需要修改工作空间的企业项目。
  • 创建CDM集群并绑定EIP 如果是独立CDM服务,参考创建集群创建CDM集群;如果是作为DataArts Studio服务CDM组件使用,参考创建集群创建CDM集群。 关键配置如下: CDM集群的规格,按待迁移的数据量选择,一般选择cdm.medium即可,满足大部分迁移场景。 CDM集群所在VPC、子网、安全组,选择与DWS集群所在的网络一致。 如果安全控制原因不能使用相同子网和安全组,那么需要确保安全组规则能允许CDM访问 云搜索服务 集群。 CDM集群创建完成后,在集群管理界面选择“绑定弹性IP”,CDM通过EIP访问Oracle数据源。 如果用户对本地数据源的访问通道做了SSL加密,则CDM无法通过弹性IP连接数据源。
  • 创建CDM集群并绑定EIP 如果是独立CDM服务,参考创建集群创建CDM集群;如果是作为DataArts Studio服务CDM组件使用,参考创建集群创建CDM集群。 关键配置如下: CDM集群的规格,按待迁移的数据量选择,一般选择cdm.medium即可,满足大部分迁移场景。 CDM集群所在VPC、子网、安全组,选择与DWS集群所在的网络一致。 CDM集群创建完成后,选择集群操作列的“绑定弹性IP”,CDM通过EIP访问MySQL。 图1 集群列表 如果用户对本地数据源的访问通道做了SSL加密,则CDM无法通过弹性IP连接数据源。
  • 创建CDM集群并绑定EIP 如果是独立CDM服务,参考创建集群创建CDM集群;如果是作为DataArts Studio服务CDM组件使用,参考创建集群创建CDM集群。 关键配置如下: CDM集群的规格,按待迁移的数据量选择,一般选择cdm.medium即可,满足大部分迁移场景。 CDM集群所在VPC、子网、安全组,选择与MRS集群所在的网络一致。 CDM集群创建完成后,选择集群操作列的“绑定弹性IP”,CDM通过EIP访问MRS HDFS。 图1 集群列表 如果用户对本地数据源的访问通道做了SSL加密,则CDM无法通过弹性IP连接数据源。
  • 创建CDM集群并绑定EIP 如果是独立CDM服务,参考创建集群创建CDM集群;如果是作为DataArts Studio服务CDM组件使用,参考创建集群创建CDM集群。 关键配置如下: CDM集群的规格,按待迁移的数据量选择,一般选择cdm.medium即可,满足大部分迁移场景。 CDM集群创建完成后,选择集群操作列的“绑定弹性IP”,CDM通过EIP访问MySQL。 图1 集群列表 如果用户对本地数据源的访问通道做了SSL加密,则CDM无法通过弹性IP连接数据源。
  • MongoDB/DDS增量迁移 使用CDM导出MongoDB或者DDS的数据时,支持导出指定时间段内的数据,配合CDM的定时任务,可以实现MongoDB/DDS的增量迁移。 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 在创建CDM表/文件迁移的作业,源连接选择为MongoDB连接或者DDS连接时,高级属性的可选参数中可以配置查询筛选。 图1 MongoDB查询筛选 此参数支持配置为时间宏变量,例如起始时间配置为{"ts":{$gte:ISODate("${dateformat(yyyy-MM-dd'T'HH:mm:ss.SSS'Z',-1,DAY)}")}},表示查找ts字段中大于时间宏转换后的值,即只导出昨天以后的数据。 参数配置后,CDM就只导出前一天内的数据,再将该作业配置为每天0点执行一次,就可以增量同步每天新生成的数据。 父主题: 增量迁移原理介绍
  • 创建表/文件迁移作业 在创建表/文件迁移作业时,选择已创建的源端连接器、目的端连接器。 图1 配置作业 单击“下一步”,进入“字段映射”配置页面后,单击源字段图标。 图2 配置字段映射 选择“自定义字段”页签,填写字段名称及字段值后单击“确认”按钮,例如: 名称:InputTime。 值:${timestamp()},更多时间宏变量请参见表1。 图3 添加字段 表1 时间变量宏定义具体展示 宏变量 含义 实际显示效果 ${dateformat(yyyy-MM-dd)} 以yyyy-MM-dd格式返回当前时间。 2017-10-16 ${dateformat(yyyy/MM/dd)} 以yyyy/MM/dd格式返回当前时间。 2017/10/16 ${dateformat(yyyy_MM_dd HH:mm:ss)} 以yyyy_MM_dd HH:mm:ss格式返回当前时间。 2017_10_16 09:00:00 ${dateformat(yyyy-MM-dd HH:mm:ss, -1, DAY)} 以yyyy-MM-dd HH:mm:ss格式返回时间,时间为当前时间的前一天。 2017-10-15 09:00:00 ${timestamp()} 返回当前时间的时间戳,即1970年1月1日(00:00:00 GMT)到当前时间的毫秒数。 1508115600000 ${timestamp(-10, MINUTE)} 返回当前时间点10分钟前的时间戳。 1508115000000 ${timestamp(dateformat(yyyyMMdd))} 返回今天0点的时间戳。 1508083200000 ${timestamp(dateformat(yyyyMMdd,-1,DAY))} 返回昨天0点的时间戳。 1507996800000 ${timestamp(dateformat(yyyyMMddHH))} 返回当前整小时的时间戳。 1508115600000 添加完字段后,新增的字段在界面不显示样值,不会影响字段值的传输,CDM会将字段值直接写入目的端。 这里“添加字段”中“自定义字段”的功能,要求源端连接器为JDBC连接器、HBase连接器、MongoDB连接器、ElasticSearch连接器、Kafka连接器,或者目的端为HBase连接器。 添加完字段后,请确保自定义入库时间字段与目的端表字段类型相匹配。 单击“下一步”配置任务参数,一般情况下全部保持默认即可。 单击“保存并运行”,回到作业管理的表/文件迁移界面,在作业管理界面可查看作业执行进度和结果。 作业执行成功后,单击作业操作列的“历史记录”,可查看该作业的历史执行记录、读取和写入的统计数据。 在历史记录界面单击“日志”,可查看作业的日志信息。 前往目的端数据源查看数据迁移的入库时间。
  • 二进制格式 如果想要在文件系统间按原样复制文件,则可以选择二进制格式。二进制格式传输文件到文件的速率高、性能稳定,且不需要在作业第二步进行字段匹配。 文件传输的目录结构 CDM的文件传输,支持单文件,也支持一次传输目录下所有的文件。传输到目的端后,目录结构会保持原样。 增量迁移文件 使用CDM进行二进制传输文件时,目的端有一个参数“重复文件处理方式”,可以用作文件的增量迁移,具体请参见文件增量迁移。 增量迁移文件的时候,选择“重复文件处理方式”为“跳过重复文件”,这样如果源端有新增的文件,或者是迁移过程中出现了失败,只需要再次运行任务,已经迁移过的文件就不会再次迁移。 写入到临时文件 二进制迁移文件时候,可以在目的端指定是否写入到临时文件。如果指定了该参数,在文件复制过程中,会将文件先写入到一个临时文件中,迁移成功后,再进行rename或move操作,在目的端恢复文件。 生成文件MD5值 对每个传输的文件都生成一个MD5值,并将该值记录在一个新文件中,新文件以“.md5”作为后缀,并且可以指定MD5值生成的目录。
  • 文件格式的公共参数 启动作业标识文件 这个主要用于自动化场景中,CDM配置了定时任务,周期去读取源端文件,但此时源端的文件正在生成中,CDM此时读取会造成重复写入或者是读取失败。所以,可以在源端作业参数中指定启动作业标识文件为“ok.txt”,在源端生成文件成功后,再在文件目录下生成“ok.txt”,这样CDM就能读取到完整的文件。 另外,可以设置超时时间,在超时时间内,CDM会周期去查询标识文件是否存在,超时后标识文件还不存在的话,则作业任务失败。 启动作业标识文件本身不会被迁移。 作业成功标识文件 文件系统为目的端的时候,当任务成功时,在目的端的目录下,生成一个空的文件,标识文件名由用户来指定。一般和“启动作业标识文件”搭配使用。 这里需要注意的是,不要和传输的文件混淆,例如传输文件为“finish.txt”,但如果作业成功标识文件也设置为“finish.txt”,这样会造成这两个文件相互覆盖。 过滤器 使用CDM迁移文件的时候,可以使用过滤器来过滤文件。支持通过通配符或时间过滤器来过滤文件。 选择通配符时,CDM只迁移满足过滤条件的目录或文件。 选择时间过滤器时,只有文件的修改时间晚于输入的时间才会被传输。 例如用户的“/table/”目录下存储了很多数据表的目录,并且按天进行了划分DRIVING_BEHAVIOR_20180101~DRIVING_BEHAVIOR_20180630,保存了DRIVING_BEHAVIOR从1月到6月的所有数据。如果只想迁移DRIVING_BEHAVIOR的3月份的表数据,那么需要在作业第一步指定源目录为“/table”,过滤类型选择“通配符”,然后指定“路径过滤器”为“DRIVING_BEHAVIOR_201803*”。
  • 文件格式问题解决方法 数据库的数据导出到 CS V文件,由于数据中含有分隔符逗号,造成导出的CSV文件中数据混乱。 CDM提供了以下几种解决方法: 指定字段分隔符 使用数据库中不存在的字符,或者是极少见的不可打印字符来作为字段分隔符。例如可以在目的端指定“字段分隔符”为“%01”,这样导出的字段分隔符就是“\u0001”,详情可见表1。 使用包围符 在目的端作业参数中开启“使用包围符”,这样数据库中如果字段包含了字段分隔符,在导出到CSV文件的时候,CDM会使用包围符将该字段括起来,使之作为一个字段的值写入CSV文件。 数据库的数据包含换行符 场景:使用CDM先将MySQL中的某张表(表的某个字段值中包含了换行符\n)导出到CSV格式的文件中,然后再使用CDM将导出的CSV文件导入到MRS HBase,发现导出的CSV文件中出现了数据被截断的情况。 解决方法:指定换行符。 在使用CDM将MySQL的表数据导出到CSV文件时,指定目的端的换行符为“%01”(确保这个值不会出现在字段值中),这样导出的CSV文件中换行符就是“%01”。然后再使用CDM将CSV文件导入到MRS HBase时,指定源端的换行符为“%01”,这样就避免了数据被截断的问题。
  • JSON格式 这里主要介绍JSON文件格式的以下内容: CDM支持解析的JSON类型 记录节点 从JSON文件复制数据 CDM支持解析的JSON类型:JSON对象、JSON数组。 JSON对象:JSON文件包含单个对象,或者以行分隔/串连的多个对象。 单一对象JSON { "took" : 190, "timed_out" : false, "total" : 1000001, "max_score" : 1.0 } 行分隔的JSON对象 {"took" : 188, "timed_out" : false, "total" : 1000003, "max_score" : 1.0 } {"took" : 189, "timed_out" : false, "total" : 1000004, "max_score" : 1.0 } 串连的JSON对象 { "took": 190, "timed_out": false, "total": 1000001, "max_score": 1.0 } { "took": 191, "timed_out": false, "total": 1000002, "max_score": 1.0 } JSON数组:JSON文件是包含多个JSON对象的数组。 [{ "took" : 190, "timed_out" : false, "total" : 1000001, "max_score" : 1.0 }, { "took" : 191, "timed_out" : false, "total" : 1000001, "max_score" : 1.0 }] 记录节点 记录数据的根节点。该节点对应的数据为JSON数组,CDM会以同一模式从该数组中提取数据。多层嵌套的JSON节点以字符“.”分割。 从JSON文件复制数据 示例一 从行分隔/串连的多个对象中提取数据。JSON文件包含了多个JSON对象,例如: { "took": 190, "timed_out": false, "total": 1000001, "max_score": 1.0 } { "took": 191, "timed_out": false, "total": 1000002, "max_score": 1.0 } { "took": 192, "timed_out": false, "total": 1000003, "max_score": 1.0 } 如果您想要从该JSON对象中提取数据,使用以下格式写入到数据库,只需要在作业第一步指定文件格式为“JSON格式”,指定JSON类型为“JSON对象”,然后在作业第二步进行字段匹配即可。 表2 示例 took timedOut total maxScore 190 false 1000001 1.0 191 false 1000002 1.0 192 false 1000003 1.0 示例二 从记录节点中提取数据。JSON文件包含了单个的JSON对象,但是其中有效的数据在一个数据节点下,例如: { "took": 190, "timed_out": false, "hits": { "total": 1000001, "max_score": 1.0, "hits": [{ "_id": "650612", "_source": { "name": "tom", "books": ["book1","book2","book3"] } }, { "_id": "650616", "_source": { "name": "tom", "books": ["book1","book2","book3"] } }, { "_id": "650618", "_source": { "name": "tom", "books": ["book1","book2","book3"] } }] } } 如果想以如下格式写入到数据库,则需要在作业第一步指定文件格式为“JSON格式”,指定JSON类型为“JSON对象”,并且指定记录节点为“hits.hits”,然后在作业第二步进行字段匹配。 表3 示例 ID SourceName SourceBooks 650612 tom ["book1","book2","book3"] 650616 tom ["book1","book2","book3"] 650618 tom ["book1","book2","book3"] 示例三 从JSON数组中提取数据。JSON文件是包含了多个JSON对象的JSON数组,例如: [{ "took" : 190, "timed_out" : false, "total" : 1000001, "max_score" : 1.0 }, { "took" : 191, "timed_out" : false, "total" : 1000002, "max_score" : 1.0 }] 如果想以如下格式写入到数据库,需要在作业第一步指定文件格式为“JSON格式”,指定JSON类型为“JSON数组”,然后在作业第二步进行字段匹配。 表4 示例 took timedOut total maxScore 190 false 1000001 1.0 191 false 1000002 1.0 示例四 在解析JSON文件的时候搭配转换器。在示例二前提下,想要把hits.max_score字段附加到所有记录中,即以如下格式写入到数据库中: 表5 示例 ID SourceName SourceBooks MaxScore 650612 tom ["book1","book2","book3"] 1.0 650616 tom ["book1","book2","book3"] 1.0 650618 tom ["book1","book2","book3"] 1.0 则需要在作业第一步指定文件格式为“JSON格式”,指定JSON类型为“JSON对象”,并且指定记录节点为“hits.hits”,然后在作业第二步添加转换器,操作步骤如下: 单击添加字段,新增一个字段。 图2 添加字段 在添加的新字段后面,单击添加字段转换器。 图3 添加字段转换器 创建“表达式转换”的转换器,表达式输入“1.0”,然后保存。 图4 配置字段转换器
共100000条