华为云用户手册

  • 语法格式 1 2 3 4 5 6 7 CREATE TABLE [IF NOT EXISTS] [db_name.]table_name [(col_name1 col_type1 [COMMENT col_comment1], ...)] USING file_format [OPTIONS (path 'obs_path', key1=val1, key2=val2, ...)] [PARTITIONED BY (col_name1, col_name2, ...)] [COMMENT table_comment] [AS select_statement]
  • 注意事项 创建表时不会统计大小。 添加数据时会修改大小至0。 如需查看表大小可以通过OBS查看。 CTAS建表语句不能指定表的属性。 OBS目录下包含子目录的场景: 创建表时,若指定路径为OBS上的目录,且该目录下包含子目录(或嵌套子目录),则子目录下的所有文件类型及其内容也是表内容。 用户需要保证所指定的目录及其子目录下所有文件类型和建表语句中指定的存储格式一致,所有文件内容和表中的字段一致,否则查询将报错。 用户可以在建表语句OPTIONS中设置“multiLevelDirEnable”为true以查询子目录下的内容,此参数默认值为false(注意,此配置项为表属性,请谨慎配置。Hive表不支持此配置项)。 关于分区表的使用说明: 创建分区表时,PARTITIONED BY中指定分区列必须是表中的列,且必须在Column列表中指定类型。分区列只支持string, boolean, tinyint, smallint, short, int, bigint, long, decimal, float, double, date, timestamp类型。 创建分区表时,分区字段必须是表字段的最后一个字段或几个字段,且多分区字段的顺序也必须对应。否则将出错。 单表分区数最多允许7000个。 CTAS建表语句不支持创建分区表。
  • DATE DATE类型只能和DATE、TIMESTAMP和STRING进行显式转换(cast),具体如表2所示。 表2 cast函数转换 显式转换 转换结果 cast(date as date) 相同DATE值。 cast(timestamp as date) 根据本地时区从TIMESTAMP得出年/月/日,将其作为DATE值返回。 cast(string as date) 如果字符串的形式是“yyyy-MM-dd”,将对应年/月/日作为DATE值返回。如果字符串不具有这种形式,返回空。 cast(date as timestamp) 根据本地时区生成并返回对应DATE的年/月/日零点的TIMESTAMP值。 cast(date as string) 根据DATE的年/月/日值生成并返回“yyyy-MM-dd”格式的字符串。
  • DECIMAL Decimal(p,s)表示数值中共有p位数,其中整数p-s位,小数s位。p表示可储存的最大十进制数的位数总数,小数点左右两侧都包括在内。有效位数p必须是1至最大有效位数38之间的值。s表示小数点右侧所能储存的最大十进制数的位数。小数位数必须是从0到p的值。只有在指定了有效位数时,才能指定小数位数。因此,0 ≤ s ≤ p。例如:decimal(10,6),表示数值中共有10位数,其中整数占4位,小数占6位。
  • 示例 为了便于理解删除分区语句的使用方法,本节示例为您提供源数据,基于源数据提供删除分区的操作示例。 使用DataSource语法创建一个OBS表分区表。 创建了一个名为student的OBS分区表,表中有学生学号(id),学生姓名(name),学生院系编号(facultyNo)和学生班级编号(classNo),该表使用学生院系编号(facultyNo)和学生班级编号(classNo)进行分区。 1 2 3 4 5 6 7 8 create table if not exists student ( id int, name STRING, facultyNo int, classNo INT) using csv options (path 'obs://bucketName/filePath') partitioned by (faculytNo, classNo); 在表格中插入分区数据。 利用插入数据中的内容,可以插入以下数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 INSERT into student partition (facultyNo = 10, classNo = 101) values (1010101, "student01"), (1010102, "student02"); INSERT into student partition (facultyNo = 10, classNo = 102) values (1010203, "student03"), (1010204, "student04"); INSERT into student partition (facultyNo = 20, classNo = 101) values (2010105, "student05"), (2010106, "student06"); INSERT into student partition (facultyNo = 20, classNo = 102) values (2010207, "student07"), (2010208, "student08"); INSERT into student partition (facultyNo = 20, classNo = 103) values (2010309, "student09"), (2010310, "student10"); INSERT into student partition (facultyNo = 30, classNo = 101) values (3010111, "student11"), (3010112, "student12"); INSERT into student partition (facultyNo = 30, classNo = 102) values (3010213, "student13"), (3010214, "student14"); 查看分区。 利用查看指定表所有分区中的内容,可以查看相关的分区内容。 示例代码如下: SHOW partitions student; 表2 表数据示例 facultyNo classNo facultyNo=10 classNo=101 facultyNo=10 classNo=102 facultyNo=20 classNo=101 facultyNo=20 classNo=102 facultyNo=20 classNo=103 facultyNo=30 classNo=101 facultyNo=30 classNo=102 删除分区。 示例1:指定多个筛选条件删除分区 本示例删除facultyNo为20,classNo为103的分区; 如需按指定筛选条件删除分区请参考指定筛选条件删除分区(只支持OBS表)。 示例代码如下: ALTER TABLE student DROP IF EXISTS PARTITION (facultyNo=20, classNo=103); 重新利用第三步中的方法查看表中的分区,可以看到该分区被删除: SHOW partitions student; 示例2:指定单个筛选条件删除分区 本示例删除facultyNo为30的分区;在插入数据的过程中可以了解到,facultyNo为30的分区有两个。 如需按指定筛选条件删除分区请参考指定筛选条件删除分区(只支持OBS表)。 示例代码如下: ALTER TABLE student DROP IF EXISTS PARTITION (facultyNo = 30); 执行后结果: 表3 表数据示例 facultyNo classNo facultyNo=10 classNo=101 facultyNo=10 classNo=102 facultyNo=20 classNo=101 facultyNo=20 classNo=102 facultyNo=20 classNo=103
  • 参数说明 表1 参数描述 参数 描述 db_name Database名称,由字母、数字和下划线(_)组成。不能是纯数字,且不能以下划线开头。 table_name Database中的表名,由字母、数字和下划线(_)组成。不能是纯数字,且不能以下划线开头。匹配规则为:^(?!_)(?![0-9]+$)[A-Za-z0-9_$]*$。如果特殊字符需要使用单引号('')包围起来。 partition_specs 分区信息,key=value形式,key为分区字段,value为分区值。若分区字段为多个字段,可以不包含所有的字段,会删除匹配上的所有分区。“partition_specs”中的参数默认带有“( )”,例如:PARTITION (facultyNo=20, classNo=103);。
  • 示例 为了便于理解删除分区语句的使用方法,本节示例为您提供源数据,基于源数据提供删除分区的操作示例。 使用DataSource语法创建一个OBS表分区表。 创建了一个名为student的OBS分区表,表中有学生学号(id),学生姓名(name),学生院系编号(facultyNo)和学生班级编号(classNo),该表使用学生院系编号(facultyNo)和学生班级编号(classNo)进行分区。 1 2 3 4 5 6 7 8 create table if not exists student ( id int, name STRING, facultyNo int, classNo INT) using csv options (path 'path 'obs://bucketName/filePath'') partitioned by (faculytNo, classNo); 在表格中插入分区数据。 利用插入数据中的内容,可以插入以下数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 INSERT into student partition (facultyNo = 10, classNo = 101) values (1010101, "student01"), (1010102, "student02"); INSERT into student partition (facultyNo = 10, classNo = 102) values (1010203, "student03"), (1010204, "student04"); INSERT into student partition (facultyNo = 20, classNo = 101) values (2010105, "student05"), (2010106, "student06"); INSERT into student partition (facultyNo = 20, classNo = 102) values (2010207, "student07"), (2010208, "student08"); INSERT into student partition (facultyNo = 20, classNo = 103) values (2010309, "student09"), (2010310, "student10"); INSERT into student partition (facultyNo = 30, classNo = 101) values (3010111, "student11"), (3010112, "student12"); INSERT into student partition (facultyNo = 30, classNo = 102) values (3010213, "student13"), (3010214, "student14"); 查看分区。 利用查看指定表所有分区中的内容,可以查看相关的分区内容。 示例代码如下: SHOW partitions student; 表2 表数据示例 facultyNo classNo facultyNo=10 classNo=101 facultyNo=10 classNo=102 facultyNo=20 classNo=101 facultyNo=20 classNo=102 facultyNo=20 classNo=103 facultyNo=30 classNo=101 facultyNo=30 classNo=102 删除分区。 本节操作介绍按指定筛选条件删除分区。无需指定筛选条件请参考删除分区。 本示例与删除分区不可混合使用。请区分此处关键字“partitions”与删除分区的关键字“partition”。 示例1:按指定筛选条件删除分区(该操作仅适用于OBS表),使用AND语句删除分区数据。 表3 执行前数据 facultyNo classNo facultyNo=10 classNo=101 facultyNo=10 classNo=102 facultyNo=20 classNo=101 facultyNo=20 classNo=102 执行以下语句删除facultyNo = 20且classNo = 102分区: ALTER TABLE student DROP IF EXISTS PARTITIONS (facultyNo = 20 AND classNo = 102); 可以看到该语句会删除同时满足(AND)两个条件的分支的分区。 表4 执行后数据 facultyNo classNo facultyNo=10 classNo=101 facultyNo=10 classNo=102 facultyNo=20 classNo=101 示例2:按指定筛选条件删除分区(该操作仅适用于OBS表),使用OR语句进行删除。 表5 执行前数据 facultyNo classNo facultyNo=10 classNo=101 facultyNo=10 classNo=102 facultyNo=20 classNo=101 facultyNo=20 classNo=102 执行语句删除满足条件facultyNo = 10或classNo = 101的分区: ALTER TABLE student DROP IF EXISTS PARTITIONS (facultyNo = 10), PARTITIONS (classNo = 101); 执行结果: 表6 执行后数据 facultyNo classNo facultyNo=20 classNo=102 在上述删除条件的框选下,分区记录中第一条数据既满足院系编号,又满足班级编号,第二条数据满足了院系编号,第三条数据满足了班级编号。 因此执行删除分区语句后只剩余1行分区。 按照方法一,上述执行语句还可以写成: ALTER TABLE student DROP IF EXISTS PARTITIONS (facultyNo = 10 OR classNo = 101); 示例3:按指定筛选条件删除分区(该操作仅适用于OBS表),使用关系运算符语句删除指定分区。 表7 执行前数据 facultyNo classNo facultyNo=10 classNo=101 facultyNo=10 classNo=102 facultyNo=20 classNo=101 facultyNo=20 classNo=102 facultyNo=20 classNo=103 执行删除分区语句,删除classNo大于100小于102的分区: ALTER TABLE student DROP IF EXISTS PARTITIONS (classNo BETWEEN 100 AND 102); 执行结果: 表8 执行前数据 facultyNo classNo facultyNo=20 classNo=103
  • 概述 在函数从开发、测试、生产过程中,可以发布一个或多个版本,实现对函数代码的管理。对于发布的每个版本的函数、环境变量会另存为相应版本的快照,函数代码发布后,您可以根据实际需要修改版本配置信息。 函数创建以后,默认版本为latest版本,每个函数都有一个latest版本。函数代码发布后,您可以根据实际需要修改版本配置信息。 版本相当于函数服务的快照,可对应代码里的tag,函数版本会对应函数的配置、代码等,新版本默认不绑定触发器。当用户新建版本后,对应版本的配置(如环境变量等)、代码等都无法更新,从而保证版本的稳定性、可追溯性等。
  • 概述 函数工作流提供了按量和预留两种类型的实例。 按量实例是由函数工作流根据用户使用函数的实际情况来创建和释放,当函数工作流收到函数的调用请求时,自动为此请求分配执行环境。 预留实例是将函数实例的创建和释放交由用户管理,当您为某一函数创建了预留实例,函数工作流收到此函数的调用请求时,会优先将请求转发给您的预留实例,当请求的峰值超过预留实例处理能力时,剩余部分的请求将会转发给按量实例,由函数工作流自动为您分配执行环境。 预留实例在创建完成后,会自动加载该函数的代码、依赖包以及执行初始化入口函数,且预留实例会常驻环境,消除冷启动对业务的影响。(注意:不要依赖预留实例本身的初始化函数去执行一次性业务。) 预留实例当前支持配置固定数量的预留实例,也支持配置定时伸缩的预留实例、配置按指标弹性伸缩的预留实例和配置智能推荐的预留实例。 用户默认没有权限使用指标策略和智能推荐策略,如果需要使用该功能,请在工单系统提交工单添加白名单。
  • NAT64防护策略配置需要注意哪些? 防火墙无法防护NAT64转换前的真实源IP,如果您开启了弹性公网IP的IPv6转换功能,NAT64会将源IP转换成198.19.0.0/16的网段进行ACL访问控制。 使用IPv6访问时建议放行预定义地址组中“NAT64转换地址组”,设置后198.19.0.0/16网段中的IP均会被放行,若其中有您需要阻断的IP地址,请使用黑名单或阻断策略。 IPv6转换功能请参见IPv6转换。 NAT64转换地址组请参见NAT64转换地址组。 设置黑名单请参见添加黑/白名单。 设置阻断策略请参见添加防护规则。 父主题: 故障排查类
  • 处理方法 进入编译构建服务首页。 选择对应的构建任务,单击任务所在行的,单击“编辑”。 在“构建步骤”页面编辑“制作镜像并推送到SWR仓库”。 单击“管理IAM账号”。 单击“新建扩展服务点”,选择“IAM账户”。 在弹出的窗口中填写参数信息。 Access Key Id和Secret Access Key获取方式如下: 单击页面左上角“控制台”。 单击页面右上角账号名称,选择“我的凭证”。 单击“访问密钥”。 单击“新增访问密钥”,填写相关描述,单击“确定”。 在弹出的窗口中单击“立即下载”,可将密钥信息下载到本地。 步骤4中的IAM账号选择步骤6中新建的服务扩展点。
  • 问题现象 执行构建任务时,拉取dockerhub镜像超时/次数限制,日志报如下异常信息: Error response from daemon: Get https://registry.docker-cn.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) 或 toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
  • 概述 组织管理是AppStage集成组织成员帐号 OrgID服务的能力,面向企业提供组织管理、企业成员账号管理以及SaaS应用授权管理能力的云服务。OrgID将Huawei ID账号体系延伸到企业用户,提供统一华为云面向生态SaaS服务的组织、账号,面向生态伙伴推出SaaS服务账号集成规范。 本文档主要介绍AppStage使用组织成员帐号 OrgID服务的操作:部门管理、成员管理、查看组织信息。 父主题: 组织管理
  • 操作步骤 在开发中心左侧导航栏,选择“需求管理”。 单击“新增”,选择“Story”。 设置Story(需求)的参数字段。 参数字段可以根据实际需要进行自定义,部分默认的基本字段说明如表1所示。 表1 需求部分基本字段说明 字段名 说明 类型 无需配置,默认为“Story”。 标题 需求的名称。 标签 对需求添加标签,如“文档更新”。 说明: 标签只能在需求所属的本项目(服务)中使用。 需求描述 请根据实际需要按模板对需求进行描述。 状态 需求处理的状态,状态类型可以根据实际需要进行自定义,默认类型如下: 新建 进行中 已解决 测试中 已拒绝 已关闭 新建需求时,需求状态默认为“新建”,不能修改。 处理人 需求处理的负责人。取值范围为该项目(即服务)的创建者或成员。如果负责人设置了昵称,将默认显示用户的昵称。 模块 需求所属模块。 说明: 项目(即服务)的管理员如果需要配置模块,请参见模块设置。 迭代 需求所处的迭代。取值范围为已建立的迭代。 说明: 当选择已有迭代时,可根据需要选择是否将迭代的开始结束日期填充为需求的预计开始日期和预计结束日期。 预计开始日期 需求开始的计划时间。通过时间控件选择。 预计结束日期 需求结束的计划时间。通过时间控件选择。 优先级顺序 需求处理的优先级顺序。 取值范围:1~100 优先级 需求处理的优先级,分别如下: 低 中 高 重要程度 需求的重要程度,请根据需要设置,类型如下: 关键 重要 一般 提示 抄送人 设置需求的抄送人后,抄送人可以收到动态消息。 父工作项 需求所属的父工作项。 说明: Story(需求)可以设置父工作项为Feature类型。 领域 需求所属领域。 说明: 项目(服务)的管理员如果需要配置领域,请参见领域设置。 发布版本号 发布版本名称。 开发人员 开发人员特指开发此需求的人员,从责权对应的角度,每个需求的开发人员通常应该固定。 而需求的处理人是跟随需求的流转而切换。这两个字段可以结合起来使用。 预计工时 需求完成所需的预计工时。 实际工时 需求完成所需的实际工时。 说明: “实际工时”在“工作项详情”页面才显示。 完成度 设置需求的完成情况。取值为0%~100%。 说明: 父工作项(即工作项存在子工作项)的“完成度”不能手动修改,是根据子工作项设置的完成度自动更新。 故事点 对需求工作量的估算,根据时期情况填写。 附件 上传所需的附件。 单击从本项目云端文档关联已有文件,或从本地上传。 说明: 单个附件大小限制为50MB。 参数设置完成后,单击“保存”。 新建完成的需求显示在需求列表中。
  • 操作步骤 在开发中心左侧导航栏,选择“需求管理”。 单击“新增”,选择“Story”。 设置Story(需求)的参数字段。 参数字段可以根据实际需要进行自定义,部分默认的基本字段说明如表1所示。 表1 需求部分基本字段说明 字段名 说明 类型 无需配置,默认为“Story”。 标题 需求的名称。 标签 对需求添加标签,如“文档更新”。 说明: 标签只能在需求所属的本项目(服务)中使用。 需求描述 请根据实际需要按模板对需求进行描述。 状态 需求处理的状态,状态类型可以根据实际需要进行自定义,默认类型如下: 新建 进行中 已解决 测试中 已拒绝 已关闭 新建需求时,需求状态默认为“新建”,不能修改。 处理人 需求处理的负责人。取值范围为该项目(即服务)的创建者或成员。如果负责人设置了昵称,将默认显示用户的昵称。 模块 需求所属模块。 说明: 项目(即服务)的管理员如果需要配置模块,请参见模块设置。 迭代 需求所处的迭代。取值范围为已建立的迭代。 说明: 当选择已有迭代时,可根据需要选择是否将迭代的开始结束日期填充为需求的预计开始日期和预计结束日期。 预计开始日期 需求开始的计划时间。通过时间控件选择。 预计结束日期 需求结束的计划时间。通过时间控件选择。 优先级顺序 需求处理的优先级顺序。 取值范围:1~100 优先级 需求处理的优先级,分别如下: 低 中 高 重要程度 需求的重要程度,请根据需要设置,类型如下: 关键 重要 一般 提示 抄送人 设置需求的抄送人后,抄送人可以收到动态消息。 父工作项 需求所属的父工作项。 说明: Story(需求)可以设置父工作项为Feature类型。 领域 需求所属领域。 说明: 项目(服务)的管理员如果需要配置领域,请参见领域设置。 发布版本号 发布版本名称。 开发人员 开发人员特指开发此需求的人员,从责权对应的角度,每个需求的开发人员通常应该固定。 而需求的处理人是跟随需求的流转而切换。这两个字段可以结合起来使用。 预计工时 需求完成所需的预计工时。 实际工时 需求完成所需的实际工时。 说明: “实际工时”在“工作项详情”页面才显示。 完成度 设置需求的完成情况。取值为0%~100%。 说明: 父工作项(即工作项存在子工作项)的“完成度”不能手动修改,是根据子工作项设置的完成度自动更新。 故事点 对需求工作量的估算,根据时期情况填写。 附件 上传所需的附件。 单击从本项目云端文档关联已有文件,或从本地上传。 说明: 单个附件大小限制为50MB。 参数设置完成后,单击“保存”。 新建完成的需求显示在需求列表中。
  • 区级管理平台与RomaExchange集成对接 图2 区级管理平台与RomaExchange集成对接 华为区级基座-应用中心,应用创建完成首次正式开通后,调用数据中心提供的创建应用的接口将应用信息和开发者信息写入到数据中心; 数据中心调用ROMA 创建应用的接口再将应用信息和开发者信息写入到ROMA ,应用写入ROMA 区分为市应用和区校应用; 数据中心在ROMA创建应用成功之后,将返回的应用在ROMA的ID再返回到应用中心。 配置指导:
  • 区级管理平台与物联中心应用集成对接 Web端(浏览器)应用跳转第三方应用采用OAuth2.0的授权码模式来实现免登。时序图如下: 图5 时序 流程图如下: 图6 流程 整个流程可以分为以下三个步骤: 用户登录学校基座Web门户后,单击第三方应用时,基座判断是否是第三方应用,如果是,会生成免登授权码code,将免登授权码code添加到第三方应用页面地址(即应用上架时的桌面端地址)的后面。 第三方应用可以拿到code参数,调用学校数字基座接口(即调用《2.2.4.1根据code获取accessToken》),交换出accessToken。code有效期3分钟且一次有效,accessToken有效期两个小时。 第三方应用拿到accessToken后调用学校数字基座接口(即调用《2.2.4.2根据accessToken获取用户信息》),就可以交换出用户信息,自此免登流程基本完成。 物联中心与区管平台,做按钮集成展示;再以独立应用上架到WeLink。
  • 解决方案交付KCP点 所有解决方案项目需经过项目准入评审、SRB评审,在评审会议上明确项目具体交付模式,所有评审通过后方可进入项目交付阶段。 对于0-3阶段由华为主导交付的项目,需按照华为云交付项目流程开展DTRB评审、DRB评审,由项目组发起,评审部门为机关生态解决方案部PE及核心团队。 对于3-N阶段由伙伴主导交付的项目,原则上由伙伴在签合同前按照自身的交付流程进行交付可行性评估,华为不开展DTRB评审、DRB评审。在解决方案上市初期,对于一些重大的、高风险的项目,可以在SRB评审过程中具体明确是否由华为支撑伙伴开展DTRB和DRB评审。
  • 功能介绍 当一个事务长时间空闲且不提交,执行回滚操作时,会对数据库的资源和性能造成损耗。如果有大量的空闲事务长期不执行也不提交,在业务高峰期的时候发生回滚,性能损耗会较为严重。GaussDB(for MySQL)支持主动终止空闲事务,可针对不同类型的事务用不同的参数进行控制,当空闲事务超时后会被自动的回滚并断开连接。 内核版本为2.0.39.230300及以后的版本支持该功能。 父主题: 主动终止空闲事务
  • 功能介绍 社区MySQL的的LIMIT(N)/OFFSET(P)的SELECT语句,引擎层返回所有满足WHERE条件的行给SQL层处理,SQL丢弃OFFSET对应的P行,返回N行数据。当查询二级索引需要访问主表列的时候,引擎层还会先返回表获取所有需要的列信息。对于OFFSET的P远大于LIMIT的N的时候,将会导致引擎层反馈大量的数据到SQL层处理。 GaussDB(for MySQL)提供的LIMIT OFFSET下推功能是把LIMIT OFFSET下推到引擎层处理,提升查询效率。 父主题: LIMIT OFFSET下推
  • 新建镜像版本 在左侧菜单栏中,单击“镜像仓库 ”。 在镜像仓库列表,单击操作栏中的“详情”,进入到镜像仓库的详情页。 单击“新建”,填写镜像描述信息。 在镜像版本列表,可查看镜像版本信息。 推送镜像 单击指定镜像版本“操作”栏内的“推送”; 复制登录指令,登录镜像仓库; 在docker客户端,用“docker tag”命令将要推送上库的本地镜像打标签为推送指令“docker push”后的镜像名称。例如: docker tag 本地镜像 odrp-beta.octopus.ias.huawei.com/octopus/11ffec1e 在docker客户端,复制推送指令,将镜像推送至Octopus平台。
  • aksk鉴权 在请求接口时,通过accessKeyId和accessKeySecret对请求进行签名,实现对用户身份的验证。其中accessKeyId是访问密钥ID,accessKeySecret是密钥。使用accessKeyId和accessKeySecret进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 请求时header中会增加如下参数: 名称 样例 说明 Content-Type application/json 方法 x-connector-signature-timestamp 1694145291981 时间戳 x-connector-signature ****** 签名,由下列签名算法计算 x-connector-accesskeyid ****** ak 签名算法如下: /** * 获取aksk签名 * * @param accessKeyId ak * @param accessKeySecret sk * @param timestamp 时间戳 * @param httpMethod GET/POST * @param url 请求url,不带域名端口,不带参数,以/开头不以/结尾 * @return 签名串 */ public static String signByAKSK(String accessKeyId, String accessKeySecret, long timestamp, String httpMethod, String url) { String sign = null; try { Charset charset = StandardCharsets.UTF_8; URI uri = new URI(url); String path = uri.getPath(); if (StringUtils.endsWith(path, "/")) { path = StringUtils.removeEnd(path, "/"); } Mac mac = Mac.getInstance("HmacSHA256"); SecretKeySpec key = new SecretKeySpec(accessKeySecret.getBytes(charset), "HmacSHA256"); mac.init(key); String signStr = accessKeyId + timestamp + httpMethod.toUpperCase(Locale.ENGLISH) + path; sign = Base64.getEncoder().encodeToString(mac.doFinal(signStr.getBytes(charset))); } catch (Exception e) { log.error("signByAKSK fail.", e); } return sign; } 父主题: 鉴权设置
  • 连接器设置 表单连接器设置分为三个步骤: 配置连接器触发条件 新建表单时触发:用户在客户端打开表单的时候就触发连接器 控件发生变化时:用户在更改控件值之后,再触发连接器;目前支持的控件包含:单行输入框、多行输入框、数字输入框、单选框、多选框 表单提交时验证:用户在客户端提交表单的时候,再触发连接器 选择连接器 选择要使用的连接器,以及要使用的连接器执行动作 配置连接器的执行动作 入参设置:设置连接器的入参,把控件的值做为连接器的入参 出参设置:设置连接器的出参,把连接器查询返回的结果填充到控件上 父主题: 表单连接器配置
  • 执行动作 创建执行动作步骤如下: 点击连接器名称,跳转到连接器详情页面,点击“执行动作” 点击“创建执行动作” 输入“执行动作名称”,“接口路径”,并点“下一步”,接口路径目前只支持GET和POST两种方式 根据API入参结构,点击“添加子节点”配置API入参的key值,类型和名称,配置完成后,点“下一步” 根据参数的json层级结构配置入参,如下: 根据API的出参结构,点击“添加子节点”或者“添加兄弟节点”配置API出参的key值,类型和名称 根据出参json结构配置响应体/响应头,如下: 点击“添加配置项”,选择参数进行接口校验。 点击“保存”,执行动作配置成功,跳转到执行动作列表页面。 父主题: 连接器使用指导
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 缺省值:application/json X-Auth-Token 是 String 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。 缺省值:en-us 枚举值: en-us zh-cn
  • 响应示例 状态码: 200 OK { "count": 1, "create_time": "1686038576882", "flow_compare_data": [ { "src_db": "a", "src_tb": "b", "dst_db": "c", "dst_tb": "d", "progress": 10 } ] } 状态码: 400 Bad Request { "error_code": "DRS.M05003", "error_msg": "Task information not found." }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 count Long 总数。 create_time String 数据生成时间。 flow_compare_data Array of objects 对比结果。 详情请参见表5。 表5 flow_compare_data参数说明 参数 参数类型 描述 src_db String 源数据库名称。 src_tb String 源对象名称。 dst_db String 目标数据库名称。 dst_tb String 目标对象名称。 progress Integer 进度。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 最小长度:12 最大长度:12 error_msg String 错误描述。 最小长度:1 最大长度:512
  • URI GET /v5/{project_id}/jobs/{job_id}/progress-data/{type} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 job_id 是 String 任务ID。 type 是 String 迁移对象类型。 table event table_structure procedure view function database trigger table_indexs 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 String 每页显示的条目数量。默认为10,取值范围【1-1000】 最小值:1 最大值:1000 缺省值:10 offset 否 String 偏移量,表示从此偏移量开始查询, offset 大于等于 0。默认为0 缺省值:0
  • 实时灾备任务创建流程 图3 实时灾备任务创建流程图 获取用户token:通过调用IAM服务的API,获取用户的Token。 创建灾备实例:根据需要,创建灾备任务。 查询任务创建进度:查询任务当前具体状态 测试连接:测试与源库和目标库的连接,以便继续进行任务。 更新任务信息:修改任务名称或描述,设置异常通知信息。 灾备设置:灾备任务设置限速。 执行预检查:执行预检查,校验是否可进行迁移。 查询预检查结果:查看预检查结果,预检查通过后可执行下一步。 源库、目标库参数对比:获取源库和目标库的数据库参数。 启动任务:启动实时灾备任务。
  • 迁移任务创建流程 图1 实时迁移任务创建流程 获取用户token:通过调用IAM服务的API,获取用户的Token。 创建迁移实例:根据需要,创建迁移任务。 查询任务创建进度:查询任务当前具体状态 测试连接:测试与源库和目标库的连接,以便继续进行任务。 更新任务信息:修改任务名称或描述,设置异常通知信息。 添加需要迁移的用户信息和库表信息:更新需要迁移的用户、角色信息,选择需要迁移的数据库或者表。 执行预检查:执行预检查,校验是否可进行迁移。 查询预检查结果:查看预检查结果,预检查通过后可执行下一步。 源库、目标库参数对比:获取源库和目标库的数据库参数。 启动任务:启动实时迁移任务。
共100000条