华为云用户手册

  • 请求示例 修改个人信息。 POST https://{domain_name}/api/v2/sdk/profile/update X-operating-sys-version: Android 10 X-device-fingerprint: 156aysdna213sac X-device-ip: 10.10.10.1 X-agent: Mozilla/5.0 (Linux; Android 10; Redmi K30 Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.99 Mobile Safari/537.36 X-L: zh X-client-id: DRrYIqauawN0I8myTMoDTPys6ezGZxnm X-signature:D0JeOUuVqU8Ixvl0xrmewQRk4AuGZrtk1RfBxueNKUrNPpgSbXrYnzw... X-tenant-id: 08f770f51f80d2f40f38c00cb199fd21 { "user_name": "zhangsan", "name": "张三", "head_img": "https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTIQ8QOTSn3y4cYHLlMC3sv6RCBmeMkxtOog47Zr3v2Afbqc2bmP0WibUIUskX39eJlJAEbAibXs", "attr_gender": "male", "attr_birthday": "2022-02-17", "attr_nick_name": "张三", "first_name": "zhangsan", "middle_name": "zhangsan", "last_name": "zhangsan", "extension": { "age": "18" } }
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-operating-sys-version 是 String 调用方操作系统版本,例如:Android 10。 X-device-fingerprint 是 String 调用方设备指纹,例如:156aysdna213sc50。 X-device-ip 否 String 调用方IP,例如:10.10.10.1。 X-agent 是 String 用户Agent信息,例如:Mozilla/5.0 (Linux; Android 10; Redmi K30 Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.99 Mobile Safari/537.36。 X-L 否 String 用于国际化语言设置,例如:zh。 X-client-id 是 String 应用标识,注册应用后分配的ClientId。 X-signature 是 String 加密数据为session_token=xxx×tamp=xxx&nonce=xxx,其中:session_token为会话凭证,timestamp表示当前时间戳,nonce表示当前时间戳的16进制,加密方式为RSA公钥加密。当前时间戳可调用获取服务器时间接口获取,加密公钥可调用获取公钥接口获取。 X-tenant-id 否 String 租户id,ISV应用调用则为必填,需要将{domain_name}换成ISV通用 域名 {common_domain},请求Header参数中需要指定对应租户的tenant_id,并将X-client-id换成ISV应用模板的client_id。 表2 请求Body参数 参数 是否必选 参数类型 描述 user_name 否 String 用户名。 name 否 String 姓名。 mobile 是 String 手机号。 verify_code 是 String 短信验证码。 email 否 String 邮箱。 pwd 否 String 密码。 head_img 否 String 头像,填写url地址。 attr_gender 否 String 性别。 枚举值: unknown:保密 male:男性 female:女性 attr_birthday 否 String 生日,格式为yyyy-MM-dd。 attr_nick_name 否 String 昵称。 first_name 否 String 名字。 middle_name 否 String 中间名。 last_name 否 String 姓氏。 extension 否 Object 自定义扩展属性。
  • 错误码 状态码 错误码 错误信息 描述 处理措施 400 APP.0001 Application does not exist. 应用不存在 请检查对应应用是否存在 400 APP.0002 Application ID required. 应用ID不能为空 请检查入参中的应用ID字段是否为空 400 APP.0003 Application disabled. 应用已禁用 请联系管理员或换一个未禁用的应用再试 400 APP_ACCOUNT.0001 Application account does not exist. 应用账号不存在 请检查对应应用账号是否存在 400 APP_ACCOUNT.0002 Application account already exists. 应用账号已存在 更换未添加过的应用账号 400 APP_ACCOUNT.0003 Unsupported application account. 不支持此应用账号类型 请检查应用账号类型是否正确 400 APP_ACCOUNT.0004 Unsupported application account permission. 不支持此应用账号权限类型 请检查应用账号权限类型是否正确 400 APP_ACCOUNT.0006 Public account does not exist. 应用公共账号不存在 请检查对应应用公共账号是否存在 400 APP_ACCOUNT.0007 Extended attribute does not exist. 应用账号扩展属性不存在 请检查对应应用账号扩展属性是否存在 400 APP_ACCOUNT.0008 The name of the application account required. 应用账号名称不能为空 请检查入参中的应用账号名称字段是否为空 400 APP_ACCOUNT.0035 Application account name required. 应用账号名不能为空 请检查入参中的应用账号名字段是否为空 400 APP_ACCOUNT.0036 Application account name invalid. 应用账号名不符合校验规则 请检查入参中的应用账号名字段是否符合校验规则 400 APP_ORG.0001 Application organization does not exist. 应用机构不存在 请检查对应应用机构是否存在 400 APP_ORG.0002 Application organization is not enabled. 应用机构未开启 请检查对应应用是否开启应用机构 400 APP_ORG.0003 Application organization code already exists. 应用机构编码已存在 更换未添加过的应用机构编码 400 APP_ORG.0004 Parent application organization does not exist. 父级应用机构不存在 请检查对应应用机构是否存在 400 APP_ORG.0005 Application organization cannot be modified. 应用机构不能被修改 请检查对应应用是否是租户名下的应用 400 APP_ORG.0006 Application organization and its parent must be different. 父级应用机构和应用机构不能是同一个 请检查父级应用机构是否和应用机构是同一个机构 400 APP_ORG.0007 Application organizations cannot be deleted. 应用机构不能被删除 请检查对应应用机构下是否存在子机构或用户 400 APP_ORG.0008 Application organization code required. 应用机构编码不能为空 请检查入参中的应用机构编码字段是否为空 400 APP_ORG.0009 Application organization name required. 应用机构名称不能为空 请检查入参中的应用机构名称字段是否为空 400 APP_ORG.0010 Application organization name already exists. 应用机构名称已存在 更换同层级下未添加过的应用机构名称 400 APP_ORG.0011 Invalid application organization code. 应用机构编码不符合校验规则 请检查入参中的应用机构编码字段是否符合校验规则 400 APP_ORG.0012 Invalid application organization name. 应用机构名称不符合校验规则 请检查入参中的应用机构名称字段是否符合校验规则 400 APP_ROLE.0001 Application role does not exist. 应用角色不存在 请检查对应应用角色是否存在 400 APP_ROLE.0002 Application role is not enabled. 应用角色未开启 请检查对应应用是否开启应用角色 400 APP_ROLE.0003 Application role already exists. 应用角色已存在 更换未添加过的应用角色 400 APP_ROLE.0004 Application role is bound to accounts. 应用角色存在账号绑定 请先解绑应用账号 400 APP_ROLE.0005 Application role code required. 应用角色代码不能为空 请检查入参中应用角色代码是否为空 400 APP_ROLE.0006 Application role code invalid. 应用角色代码不符合校验规则 请检查入参中的应用角色代码字段是否符合校验规则 400 APP_ROLE.0007 Application role name required. 应用角色名称不能为空 请检查入参中应用角色名称是否为空 400 APP_ROLE.0008 Application role name invalid. 应用角色名称不符合校验规则 请检查入参中的应用角色名称字段是否符合校验规则 400 CAPTCHA.0002 Invalid CAPTCHA code. 图形验证码校验失败 请检查输入项是否正确并重新调用 400 CAPTCHA.0003 CAPTCHA token expired. 图形验证码校验通过令牌已失效 请重新获取和校验图形验证码后再调用 400 CAPTCHA.0004 Invalid CAPTCHA token. 图形验证码校验通过令牌校验失败 输入的令牌和校验图形验证码中返回的令牌不一致 400 CAPTCHA.0005 Unsupported scenario. 不支持此发送场景 请检查发送方式是否正确 400 CAPTCHA.0006 Failed to send the verification code. 验证码发送失败 请检查输入项是否正确并重新调用 400 CAPTCHA.0007 Incorrect verification code. 验证码不正确 请检查输入的验证码是否正确 400 COM.0002 System busy. Please try again later. 系统繁忙,请稍后重试 请联系管理员 400 LOG IN.0001 User has been locked due to multiple login failures. It will be unlocked in {0} minutes and {1} seconds. 由于多次登录失败,用户已被锁定。 它将在 {0} 分钟和 {1} 秒内解锁 请解锁后重试 400 LOGIN.0002 Invalid account name or password. Remaining attempts: {0} 无效的账号或密码。 剩余次数:{0} 请检查输入的用户名或密码是否正确 400 LOGIN.0003 id_token generate error. id_token 生成失败 请检查输入的用户名或密码是否正确 400 MOBILE.0002 Unauthenticated mobile number. 未经认证的手机号 请检查输入的手机号是否正确 400 ORG.0001 Organization does not exist. 组织不存在 请检查对应组织是否存在 400 ORG.0002 Parent organization does not exist. 父级组织不存在 请检查对应父组织是否存在 400 ORG.0010 Organization code required. 组织编码不能为空 请检查组织编码 400 ORG.0011 Organization name required. 组织名称不能为空 请检查入参中的组织名称字段是否为空 400 ORG.0012 Organization code already exists. 组织编码已存在 更换未添加过的组织编码 400 ORG.0014 Invalid organization code. 组织编码不符合校验规则 请检查入参中的组织代码字段是否符合校验规则 400 ORG.0015 Invalid organization name. 组织名称不符合校验规则 请检查入参中的组织名称字段是否符合校验规则 400 ORG.0016 Organizations cannot be deleted. 组织不能被删除 请检查对应组织下是否存在子组织或用户 400 ORG.0017 Organization and its parent must be different. 父组织与当前组织不允许重复 请检查父组织与当前组织不允许重复 400 PAGE.0001 Number of records per page is invalid. 每页数量不符合校验规则 请检查输入每页数量 400 PA RAM .0001 Incomplete device information. 设备信息不完整 请检查输入的设备信息是否完整 400 PARAM.0002 clientId required. clientId不能为空 请检查输入的clientId是否为空 400 PARAM.0004 Coordinates required. 坐标信息不能为空 请检查输入的坐标信息是否为空 400 PARAM.0005 Token required. 图形验证码身份令牌不能为空 请检查输入的图形验证码身份令牌是否为空 400 PARAM.0006 Sender required. 发送方不能为空 请检查输入的发送方是否为空 400 PARAM.0007 Scenario required. 发送场景不能为空 请检查输入的发送场景是否为空 400 PARAM.0008 CAPTCHA token required. 图形验证码校验通过令牌不能为空 请检查输入的图形验证码校验通过令牌是否为空 400 PARAM.0009 Verification code required. 验证码不能为空 请检查输入的验证码是否为空 400 PARAM.0010 Account required. 账号不能为空 请检查输入的账号是否为空 400 PARAM.0011 WeChat authorization code required. 微信授权码不能为空 请检查输入的微信授权码是否为空 400 PARAM.0012 Alipay authorization code required. 支付宝授权码不能为空 请检查输入的支付宝授权码是否为空 400 PARAM.0013 State token required. 临时令牌不能为空 请检查输入的临时令牌是否为空 400 PARAM.0014 Invalid state token. 临时令牌无效 请检查输入的临时令牌是否正确 400 PARAM.0017 PARAM.0017 社交ID不能为空 请检查输入的社交ID是否为空 400 PARAM.0018 Old password required. 原密码不能为空 请检查入参中的原密码字段是否为空 400 PARAM.0019 New password required. 新密码不能为空 请检查入参中的新密码字段是否为空 400 PARAM.0020 Old and new passwords must be different. 原密码和新密码不能一致 请检查输入的原密码和新密码是否一致 400 PARAM.0028 Old password is incorrect. 原密码校验失败 请重新输入密码 400 PARAM.0029 Invalid list. 集合大小不符合校验规则 请检查入参中的集合大小是否符合校验规则 400 PARAM.0030 Signature invalid or expired. 签名无效或已过期 请重新生成签名后再试 400 PARAM.0031 SSO ticket required. 一次性令牌不能为空 请检查输入的一次性令牌是否为空 400 PARAM.0032 SSO ticket invalid or expired. 一次性令牌无效或已过期 请重新获取一次性令牌后再试 400 PWD.0001 Historical passwords cannot be used. 不允许使用历史密码 不允许使用历史密码,请重新输入密码 400 PWD.0002 Password cannot be the username spelled backwards. 密码不允许使用用户名的倒写 密码不允许使用用户名的倒写,请重新输入密码 400 PWD.0003 Password cannot include username, mobile number, or email prefix. 密码中不允许包含:用户名、手机号、邮箱前缀、姓名拼音 密码中不允许包含:用户名、手机号、邮箱前缀、姓名拼音,请重新输入密码 400 PWD.0004 Weak password. 密码复杂度低 密码复杂度低,请重新输入密码 400 PWD.0005 Weak password. 该密码为弱密码 该密码为弱密码,请重新输入密码 400 PWD.0006 Max. {0} identical characters in password. 密码中最大字符重复数不能超过{0} 密码中最大字符重复数不能超过{0},请重新输入密码 400 PWD.0007 Password must be {0} to {1} characters. 密码长度为{0}~{1}个字符 密码长度为{0}~{1}个字符,请重新输入密码 400 PWD.0008 Password required. 密码不能为空 请检查输入的密码是否为空 400 SOCIAL.0001 Social media account already bound to another account. Unbind them first. 社交账号已绑定,请先解绑 请检查社交账号是否已绑定,或换个手机号进行绑定 400 USER.0001 User does not exist. 用户不存在 请检查对应用户是否存在 400 USER.0004 User disabled. 姓氏不能为空 请联系管理员 400 USER.0008 Username required. 用户名不能为空 请检查入参中的用户名字段是否为空 400 USER.0009 Name required. 姓名不能为空 请检查入参中的姓名字段是否为空 400 USER.0010 Mobile number required. 手机号不能为空 请检查入参中的手机号字段是否为空 400 USER.0011 Email address required. 邮箱不能为空 请检查入参中的邮箱字段是否为空 400 USER.0012 First name required. 名字不能为空 请检查入参中的名字字段是否为空 400 USER.0013 Middle name required. 中间名不能为空 请检查入参中的中间名字段是否为空 400 USER.0014 Last name required. 姓氏不能为空 请检查入参中的姓氏字段是否为空 400 USER.0015 Nickname required. 昵称不能为空 请检查入参中的昵称字段是否为空 400 USER.0016 Birth date required. 生日不能为空 请检查入参中的生日字段是否为空 400 USER.0017 Gender required. 性别不能为空 请检查入参中的性别字段是否为空 400 USER.0018 ID type required. 证件类型不能为空 请检查入参中的证件类型字段是否为空 400 USER.0019 ID number required. 证件号码不能为空 请检查入参中的证件号码字段是否为空 400 USER.0020 Country/region required. 国家或地区不能为空 请检查入参中的国家或地区字段是否为空 400 USER.0021 City required. 城市不能为空 请检查入参中的城市字段是否为空 400 USER.0022 Employee ID required. 工号不能为空 请检查入参中的工号字段是否为空 400 USER.0024 Immediate supervisor required. 直属上级不能为空 请检查入参中的直属上级字段是否为空 400 USER.0026 On-boarding date required. 入职时间不能为空 请检查入参中的入职时间字段是否为空 400 USER.0027 Office location required. 工作所在地不能为空 请检查入参中的工作所在地字段是否为空 400 USER.0028 Extended attribute {0} required. 扩展属性{0}不能为空 请检查入参中的扩展属性{0}字段是否为空 400 USER.0029 Username already exists. 用户名已存在 更换未添加过的用户名 400 USER.0030 Mobile number already exists. 手机号已存在 更换未添加过的手机号 400 USER.0031 Email address already exists. 邮箱已存在 更换未添加过的邮箱 400 USER.0032 ID number already exists. 证件号码已存在 更换未添加过的证件号码 400 USER.0033 Employee ID already exists. 工号已存在 更换未添加过的工号 400 USER.0035 Extended attribute {0} already exists. 扩展属性{0}已存在 更换未添加过的扩展属性{0} 400 USER.0036 Invalid username. 用户名不符合校验规则 请检查入参中的用户名字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0037 Invalid name. 姓名不符合校验规则 请检查入参中的姓名字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0038 Invalid mobile number. 手机号不符合校验规则 请检查入参中的手机号字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0039 Invalid email address. 邮箱不符合校验规则 请检查入参中的邮箱字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0040 Invalid first name. 名字不符合校验规则 请检查入参中的名字字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0041 Invalid middle name. 中间名不符合校验规则 请检查入参中的中间名字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0042 Invalid last name. 姓氏不符合校验规则 请检查入参中的姓氏字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0043 Invalid nickname. 昵称不符合校验规则 请检查入参中的昵称字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0044 Invalid birth date. 生日不符合校验规则 请检查入参中的生日字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0045 Invalid gender. 性别不符合校验规则 请检查入参中的性别字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0046 Invalid ID type. 证件类型不符合校验规则 请检查入参中的证件类型字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0047 Invalid ID number. 证件号码不符合校验规则 请检查入参中的证件号码字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0048 Invalid country or region. 国家或地区不符合校验规则 请检查入参中的国家或地区字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0049 Invalid city. 城市不符合校验规则 请检查入参中的城市字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0050 Invalid employee ID. 工号不符合校验规则 请检查入参中的工号字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0052 Invalid immediate supervisor. 直属上级不符合校验规则 请检查入参中的直属上级字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0053 Invalid user type. 人员类型不符合校验规则 请检查入参中的人员类型字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0054 Invalid on-boarding date. 入职时间不符合校验规则 请检查入参中的入职时间字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0055 Invalid office location. 工作所在地不符合校验规则 请检查入参中的工作所在地字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0056 Extended attribute {0} is invalid. 扩展属性{0}不符合校验规则 请检查入参中的扩展属性{0}字段是否符合【管理门户-用户-用户属性定义】中的校验规则 400 USER.0061 User ID required. 用户ID不能为空 请检查入参中的用户ID字段是否为空 父主题: 附录
  • 请求示例 查询CAS1.0接口验证票据,参数分别配置应用回调地址https://example.com及认证登录接口获取的认证票据ST-eYlKs8FrLCltwRwfm8AiwCxmQ8gAL...,获取用户属性信息。 GET https://{domain_name}/api/v1/cas/validate?service=https://example.com&ticket=ST-eYlKs8FrLCltwRwfm8AiwCxmQ8gAL...
  • 计费说明 APM 提供按需计费模式,计费项按照数据量计费。具体内容如表1所示。 表1 计费规则 - 区域 产品规格 免费存储时长 计费方式 价格 说明 OpenTelemetry 北京四、华南-广州、上海一、上海二 企业版 30天 按需计费 0.42元/GB 每个Region免费数据量为5G/月,超出5G数据量之后开始计费。 - 免费版 - - 每个Region免费数据量为5G/月,超出5G数据量之后不再上报数据。 SkyWalking 北京四、华南-广州、上海一、上海二 企业版 30天 按需计费 0.42元/GB 每个Region免费数据量为5G/月,超出5G数据量之后开始计费。 - 免费版 - - 每个Region免费数据量为5G/月,超出5G数据量之后不再上报数据。 Profiler 北京四、华南-广州、上海一、上海二 企业版 7天 按需计费 0.42元/GB 每个Region免费数据量为5G/月,超出5G数据量之后开始计费。 - 免费版 - - 不支持Profiler功能。
  • 计费周期 开源探针和SDK以及Profiler数据上报后,会经过聚合、分析等计算处理,最终存储到APM平台,因此APM统计的数据量并非原始数据量。 OpenTelemetry、SkyWalking以及Profiler按上报量计费,计费周期为1小时。假设您是2024/11/06 16:29:30开始使用OpenTelemetry、SkyWalking以及Profiler,则计费周期如下。 第一个计费周期为:2024/11/06 17:15:00开始结算2024/11/06 16:29:30 ~ 2024/11/06 16:59:59之间的数据量。 第一个计费周期为:2024/11/06 18:15:00开始结算2024/11/06 17:00:00 ~ 2024/11/06 17:59:59之间的数据量。
  • 批量设置多个接入配置 支持同时批量设置多个接入配置,操作简单,不用重复配置即可快速完成多个场景的接入配置。 在“接入管理”页面,单击“批量接入”,进入配置详情页面,请参考表4。 表4 批量接入设置 类型 操作 说明 基本配置 接入类型 选择ServiceStage-云主机日志。 接入配置数量 在输入框填写接入配置数量,单击“添加接入配置”。 在接入配置下方默认已有1个接入配置,最多支持再添加99个数量,因此支持同时添加100个接入配置。 接入配置 接入列表 左侧显示接入配置的信息,最多支持添加99个配置。 右侧显示配置接入的内容,详细请参考步骤3:采集配置进行设置。 一个接入配置设置完成后,单击“应用于其他接入配置”即可将该接入配置复制到其他接入配置。 单击“参数检查”,检查成功后,单击“提交”,批量接入设置完成。 例如添加了4个接入配置,批量创建成功后,在“接入管理”下方,就会显示4条接入配置数量。 (可选)支持对接入配置任务进行以下操作: 勾选多个已创建成功的接入配置,单击“批量编辑”进入配置详情页面,通过选择不同接入类型,修改对应的接入配置信息。 勾选多个已创建成功的接入配置,单击启用或禁用按钮。接入配置状态禁用后不会继续采集日志。 勾选多个已创建成功的接入配置,单击删除按钮即可批量删除接入配置。
  • 批量设置多个接入配置 支持同时批量设置多个接入配置,操作简单,不用重复配置即可快速完成多个场景的接入配置。 在“接入管理”页面,单击“批量接入”,进入配置详情页面,请参考表4。 表4 批量接入设置 类型 操作 说明 基本配置 接入类型 选择裸金属服务BMS-文本日志。 接入配置数量 在输入框填写接入配置数量,单击“添加接入配置”。 在接入配置下方默认已有1个接入配置,最多支持再添加99个数量,因此支持同时添加100个接入配置。 接入配置 接入列表 左侧显示接入配置的信息,最多支持添加99个配置。 右侧显示配置接入的内容,详细请参考步骤3:采集配置进行设置。 一个接入配置设置完成后,单击“应用于其他接入配置”即可将该接入配置复制到其他接入配置。 单击“参数检查”,检查成功后,单击“提交”,批量接入设置完成。 例如添加了4个接入配置,批量创建成功后,在“接入管理”下方,就会显示4条接入配置数量。 (可选)支持对接入配置任务进行以下操作: 勾选多个已创建成功的接入配置,单击“批量编辑”进入配置详情页面,通过选择不同接入类型,修改对应的接入配置信息。 勾选多个已创建成功的接入配置,单击启用或禁用按钮。接入配置状态禁用后不会继续采集日志。 勾选多个已创建成功的接入配置,单击删除按钮即可批量删除接入配置。
  • 前提条件 CCE集群已安装ICAgent并且已创建相关节点自定义标识的主机组(如果不满足,配置CCE接入LTS时会自动检查修复)。 首次使用 AOM 2.0的用户,请参考开通AOM2.0授权使用AOM2.0,进入AOM2.0控制台后,请参考云服务授权授予 云日志 服务 (LTS)、云容器引擎 (CCE)等云服务数据的访问权限。 在“主机”页面,选择“CCE集群”,在搜索框选择目标集群,单击“升级ICAgent”,详细操作请参考升级ICAgent。 已关闭采集容器标准输出到AOM的开关。 开启“ICAgent诊断开关”用于查看ICAgent异常监控、ICAgent整体状态和ICAgent采集监控,请参考设置ICAgent日志采集开关。
  • 使用限制 支持容器引擎为Docker的CCE集群节点。详情请查看云容器引擎(CCE)。 支持使用Containerd作为容器引擎的CCE集群节点(ICAgent 5.12.130及以上版本)。 支持 CCE Turbo 集群(ICAgent 5.12.130及以上版本)。 容器内的日志目录如果已挂载到主机目录上,将无法通过配置容器文件路径方式采集到LTS,只能通过配置节点文件路径方式采集到LTS。 Docker存储驱动限制:容器文件日志采集目前仅支持overlay2存储驱动,不支持devicemapper作为存储驱动的节点。查看存储驱动类型,请使用如下命令: docker info | grep "Storage Driver" 如果选择日志流时,采集方式为采集到集中日志流时,则必须已创建CCE集群。
  • 批量设置多个接入配置 支持同时批量设置多个接入配置,操作简单,不用重复配置即可快速完成多个场景的接入配置 在“接入管理”页面,单击“批量接入”,进入配置详情页面,请参考表6。 表6 批量接入设置 类型 操作 说明 基本配置 接入类型 选择云容器引擎 CCE-应用日志。 接入配置数量 在输入框填写接入配置数量,单击“添加接入配置”。 在接入配置下方默认已有1个接入配置,最多支持再添加99个数量,因此支持同时添加100个接入配置。 接入配置 接入列表 左侧显示接入配置的信息,最多支持添加99个配置。 右侧显示配置接入的内容,详细请参考步骤4:采集配置进行设置。 一个接入配置设置完成后,单击“应用于其他接入配置”即可将该接入配置复制到其他接入配置。 单击“参数检查”,检查成功后,单击“提交”,批量接入设置完成。 例如添加了4个接入配置,批量创建成功后,在“接入管理”下方,就会显示4条接入配置数量。 (可选)支持对接入配置任务进行以下操作: 勾选多个已创建成功的接入配置,单击“批量编辑”进入配置详情页面,通过选择不同接入类型,修改对应的接入配置信息。 勾选多个已创建成功的接入配置,单击启用或禁用按钮。接入配置状态禁用后不会继续采集日志。 勾选多个已创建成功的接入配置,单击删除按钮即可批量删除接入配置。
  • 批量设置多个接入配置 支持同时批量设置多个接入配置,操作简单,不用重复配置即可快速完成多个场景的接入配置。 在“接入管理”页面,单击“批量接入”,进入配置详情页面,请参考表4。 表4 批量接入设置 类型 操作 说明 基本配置 接入类型 选择ServiceStage-容器应用日志。 接入配置数量 在输入框填写接入配置数量,单击“添加接入配置”。 在接入配置下方默认已有1个接入配置,最多支持再添加99个数量,因此支持同时添加100个接入配置。 接入配置 接入列表 左侧显示接入配置的信息,最多支持添加99个配置。 右侧显示配置接入的内容,详细请参考步骤4:采集配置进行设置。 一个接入配置设置完成后,单击“应用于其他接入配置”即可将该接入配置复制到其他接入配置。 单击“参数检查”,检查成功后,单击“提交”,批量接入设置完成。 例如添加了4个接入配置,批量创建成功后,在“接入管理”下方,就会显示4条接入配置数量。 (可选)支持对接入配置任务进行以下操作: 勾选多个已创建成功的接入配置,单击“批量编辑”进入配置详情页面,通过选择不同接入类型,修改对应的接入配置信息。 勾选多个已创建成功的接入配置,单击启用或禁用按钮。接入配置状态禁用后不会继续采集日志。 勾选多个已创建成功的接入配置,单击删除按钮即可批量删除接入配置。
  • 使用限制 支持容器引擎为Docker的CCE集群节点。 支持使用Containerd作为容器引擎的CCE集群节点(ICAgent 5.12.130及以上版本)。 容器内的日志目录如果已挂载到主机目录上,将无法通过配置容器文件路径方式采集到LTS,只能通过配置节点文件路径方式采集到LTS。 Docker存储驱动限制:容器文件日志采集目前仅支持overlay2存储驱动,不支持devicemapper作为存储驱动的节点。查看存储驱动类型,请使用如下命令: docker info | grep "Storage Driver"
  • 修改日志流 日志流默认的存储时间和日志组保持一致。 在日志流列表中,单击待修改日志流操作列的“修改”。 在弹出框中,支持修改日志流名称、日志存储时间、标签等信息。 关闭开关:日志流会使用日志组配置的日志存储时间。 打开开关:使用日志流配置的日志存储时间。 超出存储时间的日志将会被自动删除,您可以按需将日志数据转储至OBS桶中进行长期存储。 目前白名单用户的日志存储时间支持1095天,如有需要,请提交工单申请。 单击“确定”。 修改完成后,鼠标悬浮在日志流名称上,显示修改后日志流名称和日志流原始名称。
  • 删除日志流 如果日志流不再需要使用,可以删除日志流,日志流删除后,日志流中的日志数据将被同时删除。删除日志流会导致用户日志相关业务异常,日志流删除后无法恢复,请谨慎操作。 删除日志流前请确认该日志流下没有配置日志采集任务,否则删除后可能影响正常的日志上报。 如果日志流绑定了日志转储任务,删除日志流之前,需要先删除该日志流关联的日志转储任务。 在日志流列表中,单击待删除日志流操作列的“删除”。 在弹出框中输入“DELETE”后,单击“确定”,完成日志流删除。 图1 删除日志流
  • 智能冷存储 目前此功能仅在华北-北京四、华南-广州、华东-上海一局点支持白名单用户提交工单申请使用,其他局点暂不支持该功能。 云日志服务LTS 提供冷存储和标准存储功能。冷存储费用低,响应速度慢,对长期存储的数据进行冷存储。 在日志流创建或修改页面,开启智能冷存储功能,将标准存储层数据转为冷存储。 在开启智能冷存储功能后,如果标准存储时间增大,冷存储数据的存储时间仅对最新数据生效,冷存储数据不会重新转为标准存储。 在开启智能冷存储功能后,在可视化日志、仪表盘、定时SQL的查询时间范围查询日志时,不支持查询涉及冷存储的时间段,需将查询时间设置为标准存储的时间范围。 表2 冷存储和标准存储区别 对比项 标准存储 冷存储 适用场景 数据高频查询场景 数据低频查询场景 查询与分析性能 高,秒级返回 较低,存在8S延迟 可视化、仪表盘等 高,秒级返回 不支持此功能 存储价格 0.000479元/GB/小时 0.000208元/GB/小时
  • 创建日志流 登录云日志服务控制台。 单击日志组名称对应的。 单击“创建日志流”,在创建日志流页面,参考表1填写日志流相关信息。 若您的组织已经设定云日志服务的相关标签策略,则需按照标签策略规则为日志组、日志流、日志接入、主机组添加标签。标签如果不符合标签策略的规则,则可能会导致日志组、日志流、日志接入、主机组创建失败,请联系组织管理员了解标签策略详情。标签策略详细介绍请参考标签策略概述,标签管理详细介绍请参考标签管理。 表1 日志流参数说明 参数 说明 日志组名称 默认显示目标日志组名称。 日志流名称 日志流名称只支持输入英文、数字、中文、中划线、下划线及小数点,且不能以小数点、下划线开头或以小数点结尾。长度为1-64个字符。 企业项目 选择业务需要的企业项目,默认为default。也可单击“查看企业项目”,在企业项目管理页面查看全部企业项目。 说明: 企业项目需要开通后才能使用,请参考如何开通企业项目。 支持将该企业项目资源迁出,详细请参考迁出企业项目资源。 日志存储 若关闭日志存储,则无法开启日志存储时间。 开启“日志存储”:日志将会被存入搜索引擎,能使用日志全量功能。 关闭“日志存储”:日志不会存储到LTS,可节约索引流量和存储费用,只能使用日志生成指标、转储功能,不能使用日志搜索分析、告警、消费加工等其他功能。 日志存储时间(天) 日志流的存储时间,即日志上报到LTS后日志存储的时间。 日志数据默认存储30天,可以在1~365天之间设置。 打开日志流的“日志存储时间”:日志的存储时间使用日志流设置的日志存储时间。 关闭日志流的“日志存储时间”:日志的存储时间使用日志组设置的日志存储时间。 智能冷存储 开启日志存储时间后,根据业务需要设置智能冷存储功能。详细请参考智能冷存储。 说明: 开启智能冷存储需要日志存储时间大于7天。 标准存储层数据保存时间 开启智能冷存储后,需要设置标准存储层数据的保存时间。 标准存储数据至少需保存7天才能转换为智能冷存储层数据。当日志保存时间大于标准存储层数据保存时间,且小于日志存储时间时,日志数据将自动转换为智能冷存储层数据存储。 标签 按照业务需求对不同的日志流添加对应的标签,单击“添加标签”,分别填写标签键key和标签值value。 说明: 如需添加多个标签可重复该步骤,最多支持添加20个标签。 如需删除标签可单击标签操作列的“删除”。 标签键长度不能超过128个字符;标签值长度不能超过255个字符。 标签键名称不可重复。 如果配置转储时使用了该标签,删除标签后,请同步修改转储配置信息。 匿名写入 匿名写入默认关闭,适用于安卓/IOS/小程序/浏览器端上报日志才能使用匿名写入,需要提交工单开通白名单。 打开匿名写入则表示该日志流打开匿名写入权限,不会经过有效鉴权,可能产生脏数据。关于SDK使用请参考SDK接入。 说明: 使用匿名写入采集日志功能仅支持华北-北京四、华东-上海一、华南-广州区域的白名单用户使用,如有需要,请提交工单,其他区域暂不支持申请开通。 备注 自定义填写备注信息,字符长度0-1024个字符。 单击“确定”,完成日志流的创建。在日志流列表中,可以查看日志流名称、操作等信息。 支持查看日志流计费状态,日志计费请参考价格计算器。 按日志流维度上报话单功能目前在友好用户内测中,您可以提交工单申请开通。
  • 批量设置多个接入配置 支持同时批量设置多个接入配置,操作简单,不用重复配置即可快速完成多个场景的接入配置。 在“接入管理”页面,单击“批量接入”,进入配置详情页面,请参考表4。 表4 批量接入设置 类型 操作 说明 基本配置 接入类型 选择云主机 E CS -文本日志。 接入配置数量 在输入框填写接入配置数量,单击“添加接入配置”。 在接入配置下方默认已有1个接入配置,最多支持再添加99个数量,因此支持同时添加100个接入配置。 接入配置 接入列表 左侧显示接入配置的信息,最多支持添加99个配置。 右侧显示配置接入的内容,详细请参考步骤3:采集配置进行设置。 一个接入配置设置完成后,单击“应用于其他接入配置”即可将该接入配置复制到其他接入配置。 单击“参数检查”,检查成功后,单击“提交”,批量接入设置完成。 例如添加了4个接入配置,批量创建成功后,在“接入管理”下方,就会显示4条接入配置数量。 (可选)支持对接入配置任务进行以下操作: 勾选多个已创建成功的接入配置,单击“批量编辑”进入配置详情页面,通过选择不同接入类型,修改对应的接入配置信息。 勾选多个已创建成功的接入配置,单击启用或禁用按钮。接入配置状态禁用后不会继续采集日志。 勾选多个已创建成功的接入配置,单击删除按钮即可批量删除接入配置。
  • 步骤3:安装日志采集组件 在Kubernetes集群中,选择任意一台主机执行如下操作步骤: 获取ICAgent安装包。 获取ICAgent安装包(以界面上显示的为准)。 wget https://icagent-{regionId}.{obsDomainName}/ICAgent_linux/icagentK8s-5.5.1.2.tar.gz 解压ICAgent安装包。 tar -xzvf icagentK8s-5.5.1.2.tar.gz 进入目录。 cd icagentK8s 生成安装命令: 选择接入日志的区域名。 选择接入日志的账号的项目ID。 k8s集群所在区域,选择“区域内”。 安装ICAgent。 复制ICAgent安装命令,执行的命令需要填写AK/SK,有两种方式可选择:复制命令时手动替换AK/SK或者直接执行命令时再根据提示替换AK/SK。 为了避免泄漏您的AK/SK,请勾选此处,执行关闭历史记录命令。 图2 安装ICAgent 使用PuTTY等远程登录工具,以root用户登录待安装主机,执行复制到的命令。 当显示”ICAgent install success”时,表示安装成功,安装成功后,在主机列表下方查看ICAgent状态。 单击“确认安装完毕”。
  • 批量设置多个接入配置 支持同时批量设置多个接入配置,操作简单,不用重复配置即可快速完成多个场景的接入配置。 在“接入管理”页面,单击“批量接入”,进入配置详情页面,请参考表6。 表6 批量接入设置 类型 操作 说明 基本配置 接入类型 选择自建k8s - 应用日志。 接入配置数量 在输入框填写接入配置数量,单击“添加接入配置”。 在接入配置下方默认已有1个接入配置,最多支持再添加99个数量,因此支持同时添加100个接入配置。 接入配置 接入列表 左侧显示接入配置的信息,最多支持添加99个配置。 右侧显示配置接入的内容,详细请参考步骤5:采集配置进行设置。 一个接入配置设置完成后,单击“应用于其他接入配置”即可将该接入配置复制到其他接入配置。 单击“参数检查”,检查成功后,单击“提交”,批量接入设置完成。 例如添加了4个接入配置,批量创建成功后,在“接入管理”下方,就会显示4条接入配置数量。 (可选)支持对接入配置任务进行以下操作: 勾选多个已创建成功的接入配置,单击“批量编辑”进入配置详情页面,通过选择不同接入类型,修改对应的接入配置信息。 勾选多个已创建成功的接入配置,单击启用或禁用按钮。接入配置状态禁用后不会继续采集日志。 勾选多个已创建成功的接入配置,单击删除按钮即可批量删除接入配置。
  • 步骤2:检查依赖项 系统自动检查以下三项是否符合要求: 存在自定义标识为k8s-log-集群ID的主机组。 存在名为k8s-log-集群ID的日志组。支持修改日志组的日志存储时间和备注。当选择日志流为采集到集中日志流时,会进行该项内容检查。 存在系统推荐的集中采集的日志流。支持修改日志流的日志存储时间和备注。当选择日志流为采集到集中日志流时,会进行该项内容检查。 如果以上三项中,有任意一项不符合要求,需单击“自动修复”按钮进行修复,否则将无法进行下一步操作。 自动修复:一键帮您完成以上三项配置。 重新检查:重新检查依赖项。 当选择日志流为采集到自定义日志流时,“存在名为k8s-log-集群ID的日志组”的检查项为可选项。您可以通过开启或关闭开关进行控制,确定是否进行该项检查。 单击“下一步:安装日志采集组件”。
  • 数据源简介 表2 数据源简介 数据源类型 简介 数据仓库 服务(DWS) 华为云DWS是基于Shared-nothing分布式架构,具备MPP大规模并行处理引擎,兼容标准ANSI SQL 99和SQL 2003,同时兼容PostgreSQL/Oracle数据库生态,为各行业PB级海量大数据分析提供有竞争力的解决方案。 数据湖探索 DLI ) 华为云DLI是完全兼容Apache Spark和Apache Flink生态,实现批流一体的Serverless大数据计算分析服务。DLI支持多模引擎,企业仅需使用SQL或程序就可轻松完成异构数据源的批处理、流处理、内存计算、机器学习等,挖掘和探索数据价值。 MapReduce服务 MRS HBase) HBase是一个开源的、面向列(Column-Oriented)、适合存储海量非结构化数据或半结构化数据的、具备高可靠性、高性能、可灵活扩展伸缩的、支持实时数据读写的分布式存储系统。 使用MRS HBase可实现海量数据存储,并实现毫秒级数据查询。选择MRS HBase可以实现物流数据毫秒级实时入库更新,并支持百万级时序数据查询分析。 MapReduce服务(MRS Hive) Hive是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Hive定义了简单的类SQL查询语言,称为HiveQL,它允许熟悉SQL的用户查询数据。 使用MRS Hive可实现TB/PB级的数据分析,快速将线下Hadoop大数据平台(CDH、HDP等)迁移上云,业务迁移 “0”中断,业务代码 “0”改动。 MapReduce服务(MRS Kafka) 华为云MapReduce服务可提供专属MRS Kafka集群。Kafka是一个分布式的、分区的、多副本的消息发布-订阅系统,它提供了类似于JMS的特性,但在设计上完全不同,它具有消息持久化、高吞吐、分布式、多客户端支持、实时等特性,适用于离线和在线的消息消费,如常规的消息收集、网站活性跟踪、聚合统计系统运营数据(监控数据)、日志收集等大量数据的互联网服务的数据收集场景。 MapReduce服务(MRS Spark) Spark是一个开源的并行数据处理框架,能够帮助用户简单的开发快速、统一的大数据应用,对数据进行协处理、流式处理、交互式分析等等。 Spark提供了一个快速的计算、写入以及交互式查询的框架。相比于Hadoop,Spark拥有明显的性能优势。Spark提供类似SQL的Spark SQL语言操作结构化数据。 MapReduce服务(MRS Clickhouse) ClickHouse是一款开源的面向联机分析处理的列式数据库,其独立于Hadoop大数据体系,最核心的特点是极致压缩率和极速查询性能。同时,ClickHouse支持SQL查询,且查询性能好,特别是基于大宽表的聚合分析查询性能非常优异,比其他分析型数据库速度快一个数量级。 当前ClickHouse被广泛的应用于互联网广告、App和Web流量、电信、金融、物联网等众多领域,非常适用于商业智能化应用场景。 MapReduce服务(MRS Impala) Impala直接对存储在HDFS、HBase或 对象存储服务 (OBS)中的Hadoop数据提供快速、交互式SQL查询。除了使用相同的统一存储平台之外,Impala还使用与Apache Hive相同的元数据,SQL语法(Hive SQL),ODBC驱动程序和用户界面(Hue中的Impala查询UI)。这为实时或面向批处理的查询提供了一个熟悉且统一的平台。作为查询大数据的工具的补充,Impala不会替代基于MapReduce构建的批处理框架,例如Hive。基于MapReduce构建的Hive和其他框架最适合长时间运行的批处理作业。 MapReduce服务(MRS Ranger) Ranger提供一个集中式安全管理框架,提供统一授权和统一审计能力。它可以对整个Hadoop生态中如HDFS、Hive、HBase、Kafka、Storm等进行细粒度的数据访问控制。用户可以利用Ranger提供的前端WebUI控制台通过配置相关策略来控制用户对这些组件的访问权限 。 MapReduce服务(MRS Hudi) Hudi是一种 数据湖 的存储格式,在Hadoop文件系统之上提供了更新数据和删除数据的能力以及消费变化数据的能力。支持多种计算引擎,提供IUD接口,在HDFS的数据集上提供了插入更新和增量拉取的流原语。 Hudi的元数据存放在Hive中,操作通过Spark进行。 MapReduce服务(MRS Presto) Presto是一个开源的用户交互式分析查询的SQL查询引擎,用于针对各种大小的数据源进行交互式分析查询。其主要应用于海量结构化数据/半结构化数据分析、海量多维数据聚合/报表、ETL、Ad-Hoc查询等场景。 Presto允许查询的数据源包括Hadoop分布式文件系统(HDFS),Hive,HBase,Cassandra,关系数据库甚至专有数据存储。一个Presto查询可以组合不同数据源,执行跨数据源的数据分析。 MapReduce服务(MRS Doris) Doris是一个高性能、实时的分析型数据库,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。因此,Apache Doris能够较好的满足报表分析、即时查询、统一数仓构建、数据湖联邦查询加速等使用场景。 云数据库 RDS 华为云RDS是一种基于 云计算平台 的即开即用、稳定可靠、弹性伸缩、便捷管理的在线关系型数据库服务。 注意, DataArts Studio 平台目前仅支持RDS中的MySQL和PostgreSQL数据库。 MySQL MySQL是目前最受欢迎的开源数据库之一,其性能卓越,架构成熟稳定,支持流行应用程序,适用于多领域多行业,支持各种WEB应用,成本低,中小企业首选。 ORACLE ORACLE数据库系统是以 分布式数据库 为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。 ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。 实时数据接入 DIS 使用实时数据接入通道,可实现跨空间作业调度。若使用数据通道连接,可以向其他账号的DIS通道发送消息;若不使用,仅能给本账号下所有region的通道发送消息。 Rest Client 通过Rest Client执行一个RESTful请求。目前支持 IAM Token、用户名密码两种认证鉴权方式的RESTful请求。 主机连接 通过主机连接,用户可以在DataArts Studio数据开发中连接到指定的主机,通过脚本开发和作业开发在主机上执行Shell或Python脚本。主机连接保存连接某个主机的连接信息,当主机的连接信息有变化时,只需在主机连接管理中编辑修改,而不需要到具体的脚本或作业中逐一修改。
  • 源端优化 MySQL抽取优化 可通过在作业任务配置参数单击中“添加自定义属性”来新增MySQL同步参数。 图1 添加自定义属性 可使用的调优参数具体如下: 表1 全量阶段优化参数 参数名 类型 默认值 说明 scan.incremental.snapshot.backfill.skip boolean true 全量阶段是否跳过读取binlog数据,默认为true。跳过读取binlog数据可以有效降低内存使用。需要注意的是,跳过读取binlog功能只提供at-least-once保证。 scan.incremental.snapshot.chunk.size int 50000 分片大小,决定了全量阶段单个分片最大数据的数据条数以及分片个数。分片大小越大,单个分片数据条数越多,分片个数越小。 当表的条数过多时,作业会划分较多的分片,从而占用过多的内存导致内存问题,请解决表的条数适当调整该值。 当scan.incremental.snapshot.backfill.skip为false时,实时处理集成作业会缓存单个分片的数据,此时分片越大,占用内存越多,引发内存溢出,在此场景下,可以考虑降低分片大小。 scan.snapshot.fetch.size int 1024 全量阶段抽取数据时,从Mysql侧单次请求抽取数据的最大条数,适当增加请求条数可以减少对Mysql的请求次数提升性能。 debezium.max.queue.size int 8192 数据缓存队列条数,默认为8192,当源表中单条数据过大时(如1MB),缓存过多数据会导致内存溢出,可以考虑减小该值。 debezium.max.queue.size.in.bytes int 0 数据缓存队列大小,默认为0,即表示缓存队列不考虑数据大小,只按照数据条数计算。在debezium.max.queue.size无法有效限制内存占用时,考虑显式设置该值来限制缓存数据的大小。 jdbc.properties.socketTimeout int 300000 全量阶段连接Mysql的socket超时时间,默认为5分钟。当Mysql负载较高,作业出现SocketTimeout异常时,考虑增大该值。 jdbc.properties.connectTimeout int 60000 全量阶段连接Mysql的连接超时时间,默认为1分钟。当Mysq负载较高,作业出现ConnectTimeout异常时,考虑增大该值。 表2 增量阶段优化参数 参数名 类型 默认值 说明 debezium.max.queue.size int 8192 数据缓存队列条数,默认为8192,当源表中单条数据过大时(如1MB),缓存过多数据会导致内存溢出,可以考虑减小该值。 debezium.max.queue.size.in.bytes int 0 数据缓存队列大小,默认为0,即表示缓存队列不考虑数据大小,只按照数据条数计算。在debezium.max.queue.size无法有效限制内存占用时,考虑显式设置该值来限制缓存数据的大小。
  • 源端优化 Kafka抽取优化 可通过在源端配置中单击“Kafka源端属性配置”来添加Kafka优化配置。 图1 添加自定义属性 可使用的调优参数具体如下: 表1 全量阶段优化参数 参数名 类型 默认值 说明 properties.fetch.max.bytes int 57671680 消费Kafka时每次fetch请求返回的最大字节数。Kafka单条消息大的场景,可以适当调高每次获取的数据量,以提高性能。 properties.max.partition.fetch.bytes int 1048576 消费Kafka时服务器将返回的每个分区的最大字节数。Kafka单条消息大的场景,可以适当调高每次获取的数据量,以提高性能。 properties.max.poll.records int 500 消费者每次poll时返回的最大消息条数。Kafka单条消息大的场景,可以适当调高每次获取的数据量,以提高性能。
  • 数据库账号权限要求 在使用Migration进行同步时,源端和目的端所使用的数据库账号需要满足以下权限要求,才能启动实时同步任务。不同类型的同步任务,需要的账号权限也不同,详细可参考下表进行赋权。 表2 数据库账号权限 类型名称 权限要求 源数据库连接账号 Oracle 库需要开启归档日志,同时需表查询权限和日志解析权限,开通对应权限详情请参考Oracle数据源如何开通归档日志、查询权限和日志解析权限?。 目标数据库连接账号 目标数据库的每张表必须具有如下权限:INSERT、SELECT、UPDATE、DELETE、CONNECT、CREATE。
  • 支持的同步对象范围 在使用Migration进行同步时,不同类型的链路,支持的同步对象范围不同,详细情况可参考下表。 表3 同步对象范围 类型名称 使用须知 同步对象范围 支持同步的DML:包括INSERT、UPDATE、DELETE。 支持同步的DDL:新增列。 仅支持同步有主键表。 不支持同步视图、外键、存储过程、触发器、函数、事件、虚拟列、唯一约束和唯一索引。 自动建表支持同步表结构、普通索引、约束(主键、空、非空)、注释。
  • 注意事项 除了数据源版本、连接账号权限及同步对象范围外,您还需要注意的事项请参见下表。 表4 注意事项 类型名称 使用和操作限制 数据库限制 源端数据库中的库名、表名、字段名不能包含:.-以及非ASCII字符,建议尽量使用常规字符避免任务失败。 目的端数据库中的对象名需要满足约束:长度不超过63个字符,以字母或下划线开头,中间字符可以是字母、数字、下划线、$。 使用限制 通用: 实时同步过程中,不支持IP、端口、账号、密码修改。 Oracle归档日志建议保留3天以上。 禁止对Oracle源库做resetlogs操作,否则会导致数据无法同步且任务无法恢复。 不支持修改源数据库Oracle用户名(SCHEMA名),包括11.2.0.2之前版本通过修改USER$字典表方式及11.2.0.2之后通过ALTER USER username RENAME TO new_username修改SCHEMA名称的场景。 Oracle为源端时,暂不支持迁移CLOB、NCLOB和BLOB类型。 Oracle为源端时,暂不支持分区表。 全量同步阶段: 任务启动和全量数据同步阶段,请不要在源数据库执行DDL操作,否则可能导致任务异常。 增量同步阶段: 支持DML:包括INSERT、UPDATE、DELETE。 支持的DDL:新增列。 常见故障排查: 在任务创建、启动、全量同步、增量同步、结束等过程中,如有遇到问题,可先参考常见问题章节进行排查。 其他限制 支持目标数据库中的表比源数据库多列场景,但是需要避免以下场景可能导致的任务失败。 目标数据库多的列要求非空且没有默认值,源数据库insert数据,同步到目标数据库后多的列为null,不符合目标数据库要求。 目标数据库多的列设置固定默认值,且有唯一约束。源数据库insert多条数据后,同步到目标数据库后多的列为固定默认值,不符合目标数据库要求。 Migration自动建表时,源库中char、varchar、nvarchar、enum、set字符类型长度在目标库会按照字节长自动扩大(因为DWS目标库为字节长)。
  • 操作步骤 本小节以Apache Kafka到MRS Kafka实时同步为示例,介绍如何配置Migration实时集成作业。配置作业前请务必阅读使用前自检概览, 确认已做好所有准备工作。 参见新建实时集成作业创建一个实时集成作业并进入作业配置界面。 选择数据连接类型:源端选Apache_Kafka,目的端选MRS_Kafka。 图1 选择数据连接类型 选择集成作业类型:同步类型默认为实时,同步场景仅支持整库场景。 图2 选择集成作业类型 同步场景相关介绍请参见同步场景。 配置网络资源:选择已创建的DMS Kafka、OBS数据连接和已配置好网络连接的资源组。 图3 选择数据连接及资源组 检测网络连通性:数据连接和资源组配置完成后需要测试整个迁移任务的网络连通性,可通过以下方式进行数据源和资源组之间的连通性测试。 单击展开“源端配置”触发连通性测试,会对整个迁移任务的连通性做校验。 单击源端和目的端数据源和资源组中的“测试”按钮进行检测。 网络连通性检测异常可先参考数据源和资源组网络不通如何排查?章节进行排查。 配置源端参数。 选择需要同步的Kafka Topic。 图4 选择需要同步的Kafka Topic 消费组ID 消费者是从Topic订阅消息的一方,消费组是由一个或多个消费者组成的。Migration支持指定本次消费动作所属的Kafka消费组。 Kafka源端属性配置 支持设置Kafka的配置项,需要增加 properties. 前缀,作业将自动移除前缀并传入底层Kafka客户端,具体参数可参考 Apache Kafka官方文档 中的配置说明。 配置目的端参数。 图5 Kafka目的端配置项 目标Topic名称规则。 配置源端MySQL库表与目的端Kafka Topic的映射规则。可指定为固定的一个Topic,也可使用内置变量做映射,将不同源表数据同步到不同的Topic中。 可以使用的内置变量有:源Topic名:#{source_Topic_name} 同步kafka partition策略 支持以下三种投递策略将源端的数据按规则同步到Kafka Topic的特定Partition: 全部投递到Partition 0。 按源端分区投递到对应的Partition:源端消息在第n个分区,则投递到目的端的第n个分区,该策略可以保证消息顺序。 按轮询模式投递到不同的Partition:采用Kafka粘性分区策略均匀的投递到目的端主题的所有分区,该策略无法保证消息顺序。 新建Topic的Partition数量 设定目的端Kafka无对应Topic时,Migration自动建Topic的分区数量,默认为3。 Kafka目标端属性配置 支持设置Kafka的配置项,需要增加 properties. 前缀,作业将自动移除前缀并传入底层Kafka客户端,具体参数可参考Apache Kafka官方文档中的配置说明。 刷新源表和目标表映射,检查源端Topic和目的端Topic映射关系是否正确,支持用户根据实际需求修改映射后的目的端Topic名称,可以配置为一对一、多对一的映射关系。 图6 源表与目标表映射 配置任务属性。 表5 任务配置参数说明 参数 说明 默认值 执行内存 作业执行分配内存,跟随处理器核数变化而自动变化。 8GB 处理器核数 范围:2-32。 每增加1处理核数,则自动增加4G执行内存和1并发数。 2 并发数 作业执行支持并发数。该参数无需配置,跟随处理器核数变化而自动变化。 1 自动重试 作业失败时是否开启自动重试。 否 最大重试次数 “自动重试”为是时显示该参数。 1 重试间隔时间 “自动重试”为是时显示该参数。 120秒 是否写入脏数据 选择是否记录脏数据,默认不记录脏数据,当脏数据过多时,会影响同步任务的整体同步速度。 链路是否支持写入脏数据,以实际界面为准。 否:默认为否,不记录脏数据。 表示不允许脏数据存在。如果同步过程中产生脏数据,任务将失败退出。 是:允许脏数据,即任务产生脏数据时不影响任务执行。 允许脏数据并设置其阈值时: 若产生的脏数据在阈值范围内,同步任务将忽略脏数据(即不会写入目标端),并正常执行。 若产生的脏数据超出阈值范围,同步任务将失败退出。 说明: 脏数据认定标准:脏数据是对业务没有意义,格式非法或者同步过程中出现问题的数据;单条数据写入目标数据源过程中发生了异常,则此条数据为脏数据。 因此只要是写入失败的数据均被归类于脏数据。 例如,源端是VARCHAR类型的数据写到INT类型的目标列中,则会因为转换不合理导致脏数据不会成功写入目的端。用户可以在同步任务配置时,配置同步过程中是否写入脏数据,配置脏数据条数(单个分片的最大错误记录数)保证任务运行,即当脏数据超过指定条数时,任务失败退出。 否 脏数据策略 “是否写入脏数据”为是时显示该参数,当前支持以下策略: 不归档:不对脏数据进行存储,仅记录到任务日志中。 归档到OBS:将脏数据存储到OBS中,并打印到任务日志中。 不归档 脏数据写入连接 “脏数据策略”选择归档到OBS时显示该参数。 脏数据要写入的连接,目前只支持写入到OBS连接。 - 脏数据目录 脏数据写入的OBS目录。 - 脏数据阈值 是否写入脏数据为是时显示该参数。 用户根据实际设置脏数据阈值。 说明: 脏数据阈值仅针对每个并发生效。比如阈值为100,并发为3,则该作业可容忍的脏数据条数最多为300。 输入-1表示不限制脏数据条数 100 添加自定义属性 支持通过自定义属性修改部分作业参数及开启部分高级功能,详情可参见任务性能调优章节。 - 提交并运行任务。 作业配置完毕后,单击作业开发页面左上角“提交”,完成作业提交。 图7 提交作业 提交成功后,单击作业开发页面左上角“启动”按钮,在弹出的启动配置对话框按照实际情况配置同步位点参数,单击“确定”启动作业。 图8 启动配置 表6 启动配置参数 参数 说明 同步模式 最早:从Kafka Topic最早偏移量开始消费数据。 最新:从Kafka Topic最新偏移量开始消费数据。 起止时间:根据时间获取Kafka Topic对应的偏移量,并从该偏移量开始消费数据。 时间 起止时间需要设置该参数,指示同步起始的时间位点。 说明: 配置的位点时间早于Kafka消息最早偏移量时,默认会从最早偏移量开始消费。 监控作业。 通过单击作业开发页面导航栏的“前往监控”按钮,可前往作业监控页面查看运行情况、监控日志等信息,并配置对应的告警规则,详情请参见实时集成任务运维。 图9 前往监控
  • 注意事项 除了数据源版本、连接账号权限及同步对象范围外,您还需要注意的事项请参见下表。 表4 注意事项 类型名称 使用和操作限制 数据库限制 支持开启/未开启Keberos认证的MRS集群Kafka实例。 不支持开启SASL_SSL的Kafka实例。 使用限制 通用: 实时同步过程中,不支持IP、端口、账号、密码修改。 增量同步阶段: 整库场景下需要根据同步的Topic分区数对应增加作业并发数,否则可能导致任务内存溢出。 常见故障排查: 在任务创建、启动、全量同步、增量同步、结束等过程中,如有遇到问题,可先参考常见问题章节进行排查。 其他限制 -
  • 数据库账号权限要求 在使用Migration进行同步时,源端和目的端所使用的数据库账号需要满足以下权限要求,才能启动实时同步任务。不同类型的同步任务,需要的账号权限也不同,详细可参考表2进行赋权。 表2 数据库账号权限 类型名称 权限要求 源数据库连接账号 需要具备如下最小权限:SELECT、SHOW DATABASES、REPLICATION SLAVE、REPLICATION CLIENT,即执行SQL: GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO '用户名'@'%'; 目标数据库连接账号 目标数据库的每张表必须具有如下权限:INSERT、SELECT、UPDATE、DELETE、CONNECT、CREATE。
共100000条