华为云用户手册

  • MySQL To GaussDB数据类型转换说明 源数据库数据类型 转换后数据类型(GaussDB 8.0以前版本) 转换后数据类型(GaussDB 8.0及其以后版本) 相关的转换配置 CHAR CHAR CHAR 字符集长度转换 选择配置项的值为“扩展字符数据类型长度”,可与DRS转换后在GaussDB 存储等价。 VARCHAR VARCHAR VARCHAR 字符集长度转换 选择配置项的值为“扩展字符数据类型长度。”,可与DRS转换后在GaussDB 存储等价。 BINARY BYTEA BYTEA - VARBINARY BYTEA BYTEA - TINYBLOB BYTEA TINYBLOB - BLOB BLOB BLOB BLOB类型转换 选择配置项的值为“BLOB类型保持不变”,可与DRS转换后在GaussDB 存储等价。 MEDIUMBLOB BYTEA MEDIUMBLOB - LONGBLOB BYTEA LONGBLOB LONGBLOB类型转换 选择配置项的值为“迁移脚本,将LONGBLOB类型转换为BYTEA类型。”,可与DRS转换后在GaussDB 存储等价。 TINYTEXT TEXT TINYTEXT - TEXT TEXT TEXT TEXT数据类型转换 选择配置项的值为“不转换,保留TEXT数据类型,并注释长度”,可与DRS转换后在GaussDB 存储等价。 MEDIUMTEXT TEXT MEDIUMTEXT - LONGTEXT CLOB LONGTEXT LONGTEXT类型转换 选择配置项的值为“迁移脚本,将LONGTEXT类型转换为CLOB类型。”,可与DRS转换后在GaussDB 存储等价。 ENUM VARCHAR VARCHAR - SET SET SET - TINYINT SMALLINT TINYINT TINYINT类型转换 选择配置项的值为“转换TINYINT类型。”,可与DRS转换后在GaussDB 存储等价。 类型转换后是否添加CHECK约束 选择配置项的值为“不添加CHECK约束。”,可与DRS转换后在GaussDB 存储等价。 SMALLINT SMALLINT SMALLINT 无符号整数类型转换 选择配置项的值为“类型保持不变,不做转换”,可与DRS转换后在GaussDB 存储等价。 类型转换后是否添加CHECK约束 选择配置项的值为“不添加CHECK约束。”,可与DRS转换后在GaussDB 存储等价。 MEDIUMINT INTEGER MEDIUMINT 有符号整数类型转换 选择配置项的值为“类型保持不变,不做转换”,可与DRS转换后在GaussDB 存储等价。 无符号整数类型转换 选择配置项的值为“类型保持不变,不做转换”,可与DRS转换后在GaussDB 存储等价。 类型转换后是否添加CHECK约束 选择配置项的值为“不添加CHECK约束。”,可与DRS转换后在GaussDB 存储等价。 INT INT INT - BIGINT BIGINT BIGINT - FLOAT FLOAT4 FLOAT FLOAT类型转换 选择配置项的值为“类型转换为DOUBLE PRECISION,注释掉精度和标度,注释掉符号和填充关键字(UNSIGNED、SIGNED、ZEROFILL)”,可与DRS转换后在GaussDB 存储等价。 类型转换后是否添加CHECK约束 选择配置项的值为“不添加CHECK约束。”,可与DRS转换后在GaussDB 存储等价。 DOUBLE DOUBLE PRECISION DOUBLE DOUBLE类型转换 选择配置项的值为“类型转换为DOUBLE PRECISION,注释掉精度和标度,注释掉符号和填充关键字(UNSIGNED、SIGNED、ZEROFILL)”,可与DRS转换后在GaussDB 存储等价。 类型转换后是否添加CHECK约束 选择配置项的值为“不添加CHECK约束。”,可与DRS转换后在GaussDB 存储等价。 DATE DATE DATE - DATETIME TIMESTAMP DATETIME - TIMESTAMP TIMESTAMP WITH TIME ZONE TIMESTAMP - TIME TIME TIME - BIT BIT BIT - JSON JSON JSON - YEAR SMALLINT SMALLINT 类型转换后是否添加CHECK约束 选择配置项的值为“不添加CHECK约束。”,可与DRS转换后在GaussDB 存储等价。 DECIMAL DECIMAL DECIMAL - NUMERIC NUMERIC NUMERIC - 配置项说明可参考MySQL To GaussDB配置项使用说明。 父主题: 数据类型转换说明
  • 日期时间函数转换说明 在使用UGO进行语法转换时,如果所选目标库为GaussDB 3.2或3.2以下的版本,由于GaussDB部分时间函数与事务相关详情可参见表1。这些函数返回的都是事务的开始时间,而在源库中获取的为当前时间,在长事务的场景下,源库和目标库GaussDB得到的时间不一致。因此在UGO转换后,如果转换后的语句中存在上述函数,则用户需要自行分析上述函数是否存在长事务中并确认影响,如有影响需手工修改保证最终的准确性。 表1 与事务相关的时间函数说明 序号 函数名称 1 CURRENT_DATE 2 CURRENT_TIME 3 CURRENT_TIME(precision) 4 CURRENT_TIMESTAMP(precision) 5 LOCALTIME 6 LOCALTIMESTAMP 7 LOCALTIME(precision) 8 LOCALTIMESTAMP(precision) 父主题: 语法转换说明
  • MySQL to GaussDB 主备版(M兼容)-8.100企业版配置项使用说明 问题描述 配置建议 建议值 GaussDB 不支持某些MySQL的系统权限,系统权限授予失败。 建议配置“系统权限”解决该类问题。 注释整个SQL脚本。 影响:此配置将注释整个SQL,不会授予任何系统权限。 MySQL中索引名和约束名以表为单位,不同表的约束和索引可以同名,而GaussDB以schema为单位,保留原始名称迁移后重名的索引和约束会产生冲突。 建议配置“索引/约束名称防止冲突映射策略”解决该类问题。 将表名与索引/约束名称拼接防止命名冲突,当拼接后的名称超过63字节时使用SHA-1进行散列。 影响:解决命名冲突问题,但是当名称较长时丧失名称的可读性,且在后续的DROP、RENAME等维护过程中,也需要使用UGO转换SQL才能正确执行。 GaussDB不支持ZEROFILL关键字。 建议配置“ZEROFILL关键字转换”。 注释ZEROFILL关键字,且如果原来没有UNSIGNED则添加UNSIGNED关键字。 影响:在MySQL中ZEROFILL一般和UNSIGNED一起配合使用,即使只使用ZEROFILL也表示是无符号类型。此配置将注释掉ZEROFILL关键字,并添加UNSIGNED关键字,需要注意显示宽度不影响数据存储但可能影响业务使用。 GaussDB不支持视图的SECURITY子句。 建议配置 “SQL SECURITY子句” 解决该类问题。 迁移SECURITY子句。 GaussDB不支持数据库对象中使用Definer。 建议配置“对象定义者”解决该类问题。 如果创建对象时指定用户,将转换为ALTER OWNER。 影响:DEFINER将迁移成ALTER OWNER语句,需要保证目标库中相应的对象存储,否则该对象将迁移失败。 GaussDB不支持视图的CHECK OPTION子句。 建议配置 “视图检查选项” 解决该类问题。 迁移CHECK OPTION。 GaussDB分区表不支持多个分区键。 建议配置“分区表多列分区键”解决该类问题。 使用主键或唯一键的第一列作为分区键。 GaussDB不支持某些MySQL的字符集。 建议配置 “字符集” 解决该类问题。 如果目标库不支持CHARSET,注释CHARSET。 GaussDB不支持某些MySQL的排序规则。 建议配置 “排序规则” 解决该类问题。 如果目标库不支持COLLATE,注释COLLATE。 GaussDB不支持set数据类型。 建议配置 “set数据类型转换” 解决该类问题。 转为VARCHAR。 GaussDB不支持enum数据类型。 建议配置 “enum数据类型转换” 解决该类问题。 转为VARCHAR。 父主题: 配置说明
  • GoldenDB To GaussDB配置项使用说明 问题描述 配置建议 建议值 GaussDB 3.2 企业版开始支持指定表的字符集。 建议配置“字符集”解决该类问题。 如果目标库不支持CHARSET,注释CHARSET。 GaussDB 3.2 企业版开始支持指定表的排序规则。 建议配置“排序规则”解决该类问题。 如果目标库不支持COLLATE,注释COLLATE。 GaussDB不支持视图的SECURITY子句。 建议配置“SQL SECURITY子句”解决该类问题。 迁移SECURITY子句。 GaussDB不支持视图的CHECK OPTION子句。 建议配置“视图检查选项”解决该类问题。 迁移CHECK OPTION。 GaussDB列定义不支持on update选项。 建议配置“迁移脚本,使用触发器实现on update”解决该类问题。 迁移脚本,使用触发器实现on update。 GaussDB分布式不支持生成列。 建议配置“表生成列”解决该类问题。 说明: 仅GaussDB分布式有此特性。 注释生成列表达式,生成列变成普通列。并通过触发器给该列设置值。 GaussDB不支持分区键不支持多个键。 建议配置“分区表多列分区键”解决该类问题。 使用主键或唯一键的第一列作为分区键。 GaussDB不支持分区键和子分区键相同。 建议配置“子分区和父分区分区键相同”解决该类问题。 注释子分区。 GaussDB临时表不支持自增列。 建议配置“临时表自增列”解决该类问题。 注释自增选项。 GaussDB分布式不支持外键约束。 建议配置“外键约束”解决该类问题。 说明: 仅GaussDB分布式有此特性。 注释外键约束。 GaussDB不支持数据库对象中使用Definer。 建议配置“对象定义者”解决该类问题。 如果创建对象时指定用户,将转换为ALTER OWNER。 部分数据类型经UGO转换后范围变大。 建议配置“数据类型check约束”解决该类问题。 添加check约束。 GaussDB 不支持某些MySQL的系统权限,系统权限授予失败。 建议配置“系统权限”解决该类问题。 注释整个SQL脚本。 GaussDB不支持无符号浮点数和定点数。 建议配置“无符号浮点和定点类型转换”。 注释UNSIGNED、ZEROFILL属性。 GaussDB不支持ZEROFILL关键字。 建议配置“ZEROFILL关键字转换”。 注释ZEROFILL关键字,且如果原来没有UNSIGNED则添加UNSIGNED关键字。 增加MySQL到GaussDB存储过程和函数转化后语句的扩展性。 建议配置“存储过程或者函数添加‘or replace’”。 创建函数或者存储过程create关键字后不添加“or replace”关键字。 GaussDB中主键或唯一键必须是分布键的超集。 建议配置“Range/List分布转换”解决该类问题。 说明: 仅GaussDB分布式有此特性。 转换Range/List分布子句,并将分布键添加到主键中。 GaussDB建表语句不支持LONGBLOB数据类型 建议配置 “LONGBLOB类型转换” 解决该类问题 迁移脚本,将LONGBLOB类型转换为BYTEA类型。 创建索引过程不阻塞DML操作 建议配置:“CREATE INDEX的CONCURRENTLY子句”解决该类问题 建议值:如果业务非常需要这个功能,建议选择添加CONCURRENTLY关键字选项。 影响:创建这类索引时候,容易造成死锁,同时对Astore的表索引的创建比正常更长。 GaussDB 不允许未被双引号引用的保留关键字作为对象名称。 建议配置”含有保留关键字符的对象名称大小写转换“解决该类问题。 说明: 优先级高于配置“对象名称大小写转换”。 如果对象名称中含有保留关键字,将该名称转换为大写字母。 GaussDB索引及约束命名唯一性范围与MySQL不同,当发生冲突时,可根据需求设置此配置项完成名称映射配置,以保证唯一性。 建议配置:“索引/约束名称防止重名”解决该类问题。 建议值: 将表名与索引/约束名称拼接防止命名冲突,当拼接后的名称超过63字节时使用SHA-1进行散列。 影响:同时解决命名冲突问题和超长问题,但是当拼接名称超长时将丧失名称的可读性。 父主题: 配置说明
  • Microsoft SQL Server To MySQL配置项使用说明 问题描述 配置建议 建议值 SQL Server与MySQL数据库结构存在差异,将会导致迁移失败。 建议配置“数据库名转换”解决该类问题。 建议值:保留数据库名称。 影响:SQL Server与MySQL数据库结构存在差异,该配置项将保留对象数据库名称,不进行任何转换。 SQL Server与MySQL排序规则存在差异,将会导致迁移失败。 建议配置“排序规则转换”解决该类问题。 建议值:注释排序规则。 影响:SQL Server与MySQL排序规则存在差异,该配置项将注释排序规则。 SQL Server与MySQL语法存在差异,该配置项将控制DROP_EXISTING转换。 建议配置“DROP_EXISTING转换”解决该类问题。 建议值:保留DROP_EXISTING。 影响:SQL Server与MySQL语法存在差异,该配置项将保留DROP_EXISTING。 SQL Server与MySQL语法存在差异,该配置项将控制索引筛选语句转换。 建议配置“索引筛选转换”解决该类问题。 建议值:保留索引筛选条件语句。 影响:SQL Server与MySQL语法存在差异,该配置项将保留索引筛选条件语句。 SQL Server与MySQL语法存在差异,MySQL 不支持表类型变量。 建议配置“表类型变量转换”解决该类问题。 建议值:将表类型变量转换临时表。 影响:SQLServer 中显式表变量不遵循事务的回滚语义,MySQL 中临时表遵循事务回滚语义,需要关注业务语义是否发生变化。不包括多语句表值函数返回表定义。 SQL Server与MySQL语法存在差异,MySQL 不支持 SQL Server 系统函数 @@FETCH_STATUS 的功能。 建议配置“WHILE 循环条件 @@FETCH_STATUS=0 转换”解决该类问题。 建议值:转换为 NOT FOUND HANDLER。 影响:用户需要关注业务语义是否发生变化。 约束条件: 仅支持 "WHILE @@FETCH_STATUS = 0" 和 "WHILE 0 = @@FETCH_STATUS" 语法。 "WHILE @@FETCH_STATUS = 0" 的上一条语句是 FETCH 语句。 WHILE 循环中的最后一句是 FETCH。 两条 FETCH 语句使用同一个游标。 父主题: 配置说明
  • 什么是UGO? UGO全称为数据库和应用迁移 UGO(以下简称为UGO)是专注于异构数据库结构迁移的专业服务。可将源数据库中的DDL、DML和DCL一键自动转换为华为云GaussDB/RDS的SQL语法,通过数据库评估、对象迁移两大核心功能和自动化语法转换,提前识别可能存在的改造工作、提高转化率、最大化降低用户数据库迁移成本。 在异构数据库迁移场景中,UGO实现结构迁移和语法转化,数据复制服务 DRS实现异构数据库数据在线搬迁,可以形成完整的平滑异构数据库端到端搬迁方案,实现主流商用数据库到华为云数据库的自动化迁移,助力用户轻松实现一键上云、一键切换数据库的目的。 对于迁移方案来说,将存储过程、函数较复杂的异构数据库上云,UGO+DRS会是一个完整的闭环方案,建议同时使用。 图1 数据库迁移流程解决方案
  • 操作步骤 完成步骤四后,单击“下一步”,进入语法转换页面。 单击“启动”,进行迁移。页面显示对象类型、总数、转换成功、转换失败等信息以及转换开始时间与结束时间。 图1 语法转换 页面以进度条和百分比显示迁移进度。 单击“下载报告”,选择所需报告单击“下载”,下载至本地供用户分析。 转换错误报告:该报告介绍了无法等价转换为目标库语法的源库对象详情。 匿名化转换错误报告:该报告通过匿名方式介绍了无法等价转换为目标库语法的源库对象。 转换风险报告:该报告介绍了基于用户所选的配置项,冒一定风险转换为目标库语法的源库对象,但转换后存在一定的功能差异。 匿名化转换风险报告:对象信息脱敏后的转换风险报告。该报告通过匿名方式介绍了基于用户所选的配置项,冒一定风险转换为目标库语法的源库对象,但转换后存在一定的功能差异。 转换后的SQL解析失败报告:该报告介绍了无法使用目标库语法解析转换脚本的源库对象。 匿名化转换后的SQL解析失败报告:该报告通过匿名方式介绍了无法使用目标库语法解析转换脚本的源库对象。 单击“详情”,有转换失败的对象可进入对象校正页面查看对象类型的具体信息。 查看迁移历史详情信息,请见查看转换历史详情。 单击“暂停”,流程将被暂停,用户可以到转换历史中去查询之前执行过的迁移任务。 单击“启动”,将会进行一次新的转换流程。单击“恢复”,将继续进行转换流程。 再次单击“启动”,将再次进行语法转换,会覆盖上一次转换的全部转换数据,包含手工修改的对象,请谨慎操作。如确需重新转换,单击“确认”。 单击“下一步”,对象校验页面显示待验证的Schema、对象名称、对象类型等信息。 图2 对象校正 可依据具体对象名称进行搜索,也可依据Schema、转换状态及迁移状态等进行筛选。 仅当源数据库为Oracle、MySQL、PostgreSQL时,若“转换状态”为“失败”,可单击具体失败项的对象名称,查看“对象迁移成功率”。 当“支持迁移”为“否”时,可以使用“应用筛选器”查询同样包含该语法点的其他失败对象。 可对选中的具体对象单击“跳过迁移”,忽略不想验证迁移的对象。 重新转换:可选择需要重新转换的对象类型或对象,进行单独重新转换,不会覆盖其他对象的SQL修改。 单击进入“重新转换”页面,选定对象后单击“重新转换”,可返回步骤2重新启动语法转换。 Mysql为源,table对象转换后结果将会展示转换拆分后的子对象create table和create index;Oracle为源,table对象转换后结果将会展示转换拆分后的子对象create table和foreign_key,两者都可以选择子对象进行单独的迁移或是修改,拆分后的子对象数目不计入转换总对象数量当中。 拆分子对象是为了控制转换后父类对象部分子对象的迁移,所以页面展示的子对象并不是全量子对象,如需查看全量子对象的状态和内容需点击父类对象查看详情。 子对象拆分依赖UGO的转换功能,当出现解析脚本出错和转换脚本时出错的情形时无法进行转换,不会拆分子对象。 父对象与其下所有子对象的状态如下:当父对象转换状态为成功,则子对象转换状态都为成功;当父对象转换状态为失败,则子对象转换状态至少存在一个失败;当父对象转换状态为手工修改,至少有一个子对象转换状态为手工修改;当父对象迁移后若迁移状态为成功,则子对象迁移状态为成功或是忽略;当父对象迁移后迁移状态若为失败,则子对象迁移状态至少存在一个失败;当子对象全被忽略迁移,父对象也将会被忽略迁移。 对于“迁移状态”为“成功”的对象,如果重新进行转换,再次迁移和验证将出现错误“对象已存在于目标数据库上”。为避免这种情况,请手动从目标数据库中删除这些对象。若选择数据库对象类型,将重新转换选中类型下所有对象。 批量语句更新:批量语句更新支持类似问题的批量搜索和修改。如何批量语句更新,请参见批量语句更新。 可对选中的对象进行“修改”或“查看详情”。 单击“查看详情”,可查看对应对象的转换/迁移错误信息和源端、目标端以及比较的信息,也可以复制详细代码。 单击“修改”:可对具体对象进行逐条手工修改。如何修改,请参见修改对象校正。 选择可忽略的对象并单击“跳过迁移”,“迁移状态”变为“忽略”。也可以“撤销跳过”,撤销后对应状态恢复原样。 迁移结果注释了一些特性,可能会有功能影响,可单击“查看详情”查看详细信息。
  • 操作步骤 完成步骤五,单击“下一步”,进入迁移验证页面。 请修正对象校正中所有转换失败项,才能启动迁移验证。 单击“启动”,进行校验。页面以进度条和百分比显示迁移进度。 迁移验证完成后,页面显示读取到的SQL行总数与迁移成功数与失败数。 查看校验历史详细信息,请见查看迁移历史详情。 图1 迁移验证 停止验证后,会出现提示“迁移存在错误/风险,请点击查看”单击后有“警告 : 异常自动暂停”弹框提示。 停止后单击“启动”,可继续进行迁移。 查看空存储过程:可查看失败的对象列表和失败次数。 单击“下载报告”,选择所需报告单击“下载”,下载至本地供用户分析。MySQL为源时,子对象的相关数据不会统计在迁移报告中。 迁移验证报告:该报告简要介绍了迁移和验证对象的状态。 迁移验证错误报告:该报告介绍了对象迁移失败的详情,包括每个对象的状态、迁移语句和错误信息。 匿名化迁移验证错误报告:该报告介绍了对象迁移失败的详情,包括每个对象的状态、迁移语句、错误信息,但源库SQL语句和迁移后的SQL语句均以匿名的形式呈现。 若有迁移失败,可单击对象类型后的“详情”,可返回对象校正页面查看对象类型的具体信息。 迁移验证完成后,若有验证失败项,可返回对象校正页面,进行单独修改或批量语句更新。
  • SQL审核概述 SQL审核功能能够帮助用户在开发阶段发现隐藏在代码中的SQL规范性、设计合理性和性能等问题,内置200+审核规则,涵盖对DML、DDL、PL/SQL等各类对象进行深度审核,且可根据业务需求对规则进行自由组合形成模板,支持GaussDB、MySQL两种数据库,可实现单语句、批量代码文件上传(自动提取SQL)、直连数据库3种审核方式,深度看护代码,避免烂SQL流入生产环境。 父主题: SQL审核
  • 约束限制 审核对象仅支持:Table、View、Sequence、Index、Function、Procedure、Trigger、Package。 一次审核Schema的数量不超过10000。 审核数据库过程中,避免对正在审核的数据库对象进行删除等操作,影响审核结果。 如果使用系统模板进行审核时,新版本升级结束后,再次重试或者同数据源审核,会导致审核结果不一致。为避免此现象发生,建议使用自定义模板。
  • 操作步骤 登录UGO服务。 单击左侧导航栏的“数据源管理”。 在数据源管理页面,单击右上角的“创建数据源”按钮。 进入创建数据源页面,完成基本信息的填写。 基本信息填写完成后,“开始测试”高亮显示。 图1 创建数据源 表1 创建数据源参数说明 参数名称 说明 名称 在数据源管理项目列表中显示的名称。 唯一且长度范围为5到50个字符,只允许包含英文字母、数字、下划线、中划线。以字母开头、数字或字母结束。 数据库类型 下拉选择待创建的数据库类型。当前仅支持管理GaussDB和MySQL数据源信息。 网络类型 公网网络:通过弹性公网IP(Elastic IP,EIP)进行源库连接。 连接方法 仅支持通过服务器名进行连接。 数据库名称 待进行管理的数据库名称。 主机类型 当前仅支持主机IP地址。 主机IP地址 填写具体主机IP地址,IP地址支持IPv4和IPv6。 说明: 支持IPv6数据库如下:MySQL。 主机端口 待进行管理的数据库端口。 用户名 待进行管理的数据库用户名。 由字母、数字、“_”、“-”、“$”、“#”组成,长度为2-128个字符,必须以字母、数字、“.”、“_”、“-”开头且允许使用单引号包裹的用户名 密码 待进行管理的数据库密码。 密码最多支持50个字符长度。 单击“开始测试”,测试通过显示“已连接”,右下角“创建”高亮显示。 当前仅测试连通性,若断连或权限不足,会导致“连接数据库失败”,无法创建数据源。 单击创建。显示“数据源创建成功。”。 单击“关闭”,返回数据源管理页面,用户可以看到最新创建的数据源已在列表中。 可通过数据源ID、名称、数据库名称、数据库类型、IP地址及端口信息进行搜索。 图2 数据源管理
  • 约束限制 规则的嵌套审核仅支持以下四种“select list |from|where |with xx as”,详情可参见表1。 别名不能和实体表重名,且别名之间不能重名。 暂不支持视图中的表审核。 不支持对数据库系统表及视图审核。 不支持语句中含有“#”或“/*”的SQL 审核。涉及点(依赖表结构、语句、阈值等)。 文件审核中和审核完成后,不可点击“重试”按钮。 如果使用系统模板进行审核时,新版本升级结束后,再次重试或者同文件审核,会导致审核结果不一致。为避免此现象发生,建议使用自定义模板。 SQL审核最大可以创建110个审核任务,同一时间段内,最多支持10个审核任务并发执行。
  • 源数据库准备和授权 创建数据库评估任务时,UGO将检查源数据库的权限。您需在创建评估任务前检查数据库权限,并执行以下操作。 Oracle为源库,为了确保 DBMS_METADATA.GET_DDL 方法返回的对象DDL保持统一,建议您对Oracle源库进行如下设置。 不生成排序规则子句(影响对象:USER、TABLE、CLUSTER、VIEW、MATERIALIZED_VIEW、PROCEDURE、FUNCTION、PACKAGE、TYPE、TRIGGER)。 使用sqlplus执行:EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(dbms_metadata.SESSION_TRANSFORM, 'COLLATION_CLAUSE', 'NEVER'); 让表约束、索引将成为CREATE TABLE语句的一部分,而不是单独的ALTER、TABLE语句 使用sqlplus执行:EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(dbms_metadata.SESSION_TRANSFORM, 'CONSTRAINTS_AS_ALTER', false); 用户需拥有创建UGO评估项目的对应权限。具体权限,可参见权限管理进行设置。 各源库分别需要具备以下权限,需成功测试连接到源数据库并通过所有预检查项。 Oracle源数据库连接用户需要具有待迁移数据库的DBMS_METADATA、动态视图和Schema对象数量检查的权限。 MySQL为源库时需要具有MySQL系统库的查询权限、PROCESS权限和待迁移数据库的所有权限。从MySQL-8.0版本开始,针对存储过程和存储函数,还需要SHOW_ROUTINE权限。 GoldenDB为源库时需要具有GoldenDB系统库的查询权限、PROCESS权限和待迁移数据库的所有权限。针对存储过程和存储函数,还需要SHOW_ROUTINE权限。 Microsoft SQL Server为源库时需要具有VIEW DEFINITION权限。 以MySQL 和 GoldenDB为源,如果给用户赋予了全局的SELECT权限,SHOW_ROUTINE权限也能通过,无需再单独授予。 父主题: 创建评估项目
  • 规则约束 所有涉及update、delete规则项,均不支持多表操作审核。 update、delete多表操作仅支持规则项:“不应用单条update、delete语句对多个表实现更新、删除操作”。 对于这两个规则,“在PL/pgSQL中,关键字建议大写,非关键字小写”、“sql语句中,关键字建议大写,非关键字小写”,不要在以对象名作为非保留关键字的语句中使用,存在审核不准确情况,比如:SELECT id FROM name,name是非保留关键字。 “查询系统视图时,如果使用对象名作为筛选条件,对象名应使用小写”支持的系统视图参见表2。 “谨慎删除数据库对象及清理数据”,其中阈值中支持审核SQL语法见表表3 表2 视图审核 视图名 所属schema 表示对象名的列 adm_arguments pg_catalog、sys owner、object_name、package_name、argument_name adm_audit_object pg_catalog、sys username、owner、obj_name、action_name adm_audit_session pg_catalog、sys username、action_name adm_audit_statement pg_catalog、sys username、obj_name、action_name adm_col_comments pg_catalog、sys owner、table_name、column_name、schema adm_col_privs pg_catalog、sys grantor、owner、grantee、table_schema、table_name、column_name、privilege adm_coll_types pg_catalog、sys owner、type_name、elem_type_mod、elem_type_owner、elem_type_name adm_constraints pg_catalog、sys owner、constraint_name、table_name、index_owner、index_name adm_indexes pg_catalog、sys owner、index_name、table_name、table_owner、tablespace_name adm_ind_columns pg_catalog、sys index_owner、index_name、table_name、table_owner、column_name adm_objects pg_catalog、sys owner、object_name、subobject_name adm_procedures pg_catalog、sys owner、object_name、procedure_name、impltypeowner、impltypename adm_role_privs pg_catalog、sys grantee、granted_role adm_tab_col_statistics pg_catalog、sys owner、table_name、column_name、schema adm_roles pg_catalog、sys role adm_source pg_catalog、sys owner、name adm_sys_privs pg_catalog、sys grantee、privilege adm_tab_cols pg_catalog、sys owner、table_name、column_name、data_type_owner、schema、qualified_col_name adm_tab_privs pg_catalog、sys grantee、owner、table_name、grantor、privilege adm_tables pg_catalog、sys owner、table_name、tablespace_name adm_tab_columns pg_catalog、sys owner、table_name、column_name、data_type_owner、schema adm_tab_comments pg_catalog、sys owner、table_name、column_name、schema adm_tab_statistics pg_catalog、sys owner、table_name adm_triggers pg_catalog、sys owner、trigger_name、table_owner、table_name adm_type_attrs pg_catalog、sys type_name、attr_name、attr_type_name、character_set_name adm_types pg_catalog、sys owner、type_name adm_users pg_catalog、sys username、default_tablespace、temporary_tablespace、default_collation adm_views pg_catalog、sys owner、view_name db_all_tables pg_catalog、sys owner、table_name、tablespace_name db_arguments pg_catalog、sys owner、object_name、package_name、argument_name db_col_comments pg_catalog、sys owner、table_name、column_name、schema db_col_privs pg_catalog、sys grantor、owner、grantee、table_schema、table_name、column_name、privilege db_coll_types pg_catalog、sys owner、type_name、elem_type_mod、elem_type_owner、elem_type_name db_constraints pg_catalog、sys owner、constraint_name、table_name、index_owner、index_name db_indexes pg_catalog、sys owner、index_name、table_name、table_owner、tablespace_name db_ind_columns pg_catalog、sys index_owner、index_name、table_name、table_owner、column_name db_objects pg_catalog、sys owner、object_name、subobject_name db_procedures pg_catalog、sys owner、object_name db_tab_col_statistics pg_catalog、sys owner、table_name、column_name、schema db_source pg_catalog、sys owner、name db_tab_columns pg_catalog、sys owner、table_name、column_name、data_type_owner、schema db_tab_comments pg_catalog、sys owner、table_name、schema db_tables pg_catalog、sys owner、table_name、tablespace_name db_triggers pg_catalog、sys trigger_name、table_owner、table_name db_types pg_catalog、sys owner、type_name db_users pg_catalog、sys username db_views pg_catalog、sys owner、view_name dict pg_catalog、sys table_name dictionary pg_catalog、sys table_name my_col_comments pg_catalog、sys owner、table_name、column_name、schema my_col_privs pg_catalog、sys grantor、owner、grantee、table_schema、table_name、column_name、privilege my_coll_types pg_catalog、sys owner、type_name、elem_type_mod、elem_type_owner、elem_type_name my_constraints pg_catalog、sys owner、constraint_name、table_name、index_owner、index_name my_indexes pg_catalog、sys owner、index_name、table_name、table_owner、tablespace_name my_ind_columns pg_catalog、sys index_owner、index_name、table_name、table_owner、column_name my_objects pg_catalog、sys object_name、subobject_name my_procedures pg_catalog、sys owner、object_name、procedure_name、impltypeowner、impltypename my_role_privs pg_catalog、sys grantee、granted_role my_tab_col_statistics pg_catalog、sys table_name、column_name、schema my_source pg_catalog、sys owner、name my_tab_columns pg_catalog、sys owner、table_name、column_name、data_type_owner、schema my_tab_comments pg_catalog、sys owner、table_name、column_name、schema my_tab_statistics pg_catalog、sys table_name my_tables pg_catalog、sys owner、table_name、tablespace_name my_triggers pg_catalog、sys owner、trigger_name、table_owner、table_name my_type_attrs pg_catalog、sys type_name、attr_name、attr_type_name、character_set_name my_types pg_catalog、sys type_name my_views pg_catalog、sys owner、view_name pg_indexes pg_catalog、sys schemaname、tablename、indexname、tablespace pg_roles pg_catalog、sys rolename pg_tables pg_catalog、sys schemaname、tablename、tableowner、tablespace、tablecreator pg_user pg_catalog、sys username、nodegroup pg_views pg_catalog、sys schemaname、viewname、viewowner column_privileges information_schema、sys grantor、grantee、table_catalog、table_schema、table_name、column_name columns information_schema、sys table_catalog、table_schema、table_name、column_name constraint_column_usage information_schema、sys table_catalog、table_schema、table_name、column_name、constraint_catalog、constraint_schema、constraint_name constraint_table_usage information_schema、sys table_catalog、table_schema、table_name、constraint_catalog、constraint_schema、constraint_name enabled_roles information_schema、sys role_name schemata information_schema、sys catalog_name、schema_name、schema_owner、default_character_set_catalog、default_character_set_schema、default_character_set_name table_constraints information_schema、sys constraint_catalog、constraint_schema、constraint_name、table_catalog、table_schema、table_name table_privileges information_schema、sys grantor、grantee、table_catalog、table_schema、table_name tables information_schema、sys table_catalog、table_schema、table_name、self_referencing_column_name、user_defined_type_catalog、user_defined_type_schema、user_defined_type_name triggers information_schema、sys trigger_catalog、trigger_schema、trigger_name、event_object_catalog、event_object_schema、event_object_table、action_reference_old_table、action_reference_new_table usage_privileges information_schema、sys grantor、grantee、object_catalog、object_schema、object_name views information_schema、sys table_catalog、table_schema、table_name 表3 支持审核的SQL语法 DDL类型 SQL语法 DROP DROP TABLE, DROP TABLESPACE, DROP AGGREGATE, DROP AUDIT POLICY, DROP CAST, DROP DATABASE, DROP DATA SOURCE, DROP DIRECTORY, DROP EVENT, DROP FOREIGN TABLE, DROP GLOBAL CONFIGURATION, DROP GROUP, DROP MASKING POLICY, DROP MATERIALIZED VIEW, DROP MODEL, DROP OPERATOR, DROP OWNED, DROP PACKAGE, DROP PACKAGE BODY, DROP PROCEDURE, DROP RESOURCE LABEL, DROP RESOURCE POOL, DROP ROLE, DROP ROW LEVEL SECURITY POLICY, DROP RULE, DROP PUBLICATION, DROP SCHEMA, DROP SEQUENCE, DROP FUNCTION, DROP SERVER, DROP SUBSCRIPTION, DROP SYNONYM, DROP TEXT SEARCH CONFIGURATION, DROP TEXT SEARCH DICTIONARY, DROP TRIGGER, DROP TYPE, DROP USER, DROP USER MAPPING, DROP VIEW, DROP WEAK PASSWORD DICTIONARY ALTER ALTER DROP PARTITION, ALTER TRUNCATE PARTITION, ALTER DROP COLUMN, ALTER DROP CONSTRAINT, ALTER DROP FOREIGN TABLE, ALTER DROP AUDIT POLICY, ALTER DROP MASKING POLICY, ALTER DROP SERVER, ALTER DROP TEXT SEARCH CONFIGURATION, ALTER DROP USER MAPPING, ALTER DROP DATA SOURCE TRUNCATE TRUNCATE
  • 约束限制 规则的嵌套审核仅支持四种详情可参见表1。 With as只考虑SELECT语句。 别名不能和实体表重名,且别名之间不能重名。 暂不支持视图中的表审核。 不支持对数据库系统表及视图审核。 不支持输入的语句, 语句中涉及的表结构,阈值中含有“#”或“/*”的SQL 审核。 表1 支持的嵌套审核语句 SQL语句 select id, (select 子查询) as name from table; select id from table where id in (select 子查询); select * from table1,(select 子查询); with e as (select 子查询) select * from e;
  • 使用简介 视频接入服务(Video Ingestion Service,简称VIS)是华为云提供的实时视频数据接入服务,提供了摄像头视频数据采集、实时数据分发和视频数据转储等能力。借助视频接入服务,您可以与华为云视频分析服务集成,快速构建基于实时视频数据的智能分析应用。 图1 VIS工作示意图 您可以在视频接入服务(Video Ingestion Service,简称VIS)的管理控制台上使用VIS,VIS的控制台界面如图2所示。 图2 视频接入服务管理控制台 本文档按照视频数据接入类型,分别介绍在VIS控制台上的使用方法,目前支持以下类型视频数据接入: GB/T28181摄像设备:指符合国家GB/T28181-2011、GB/T28181-2016协议标准的网络摄像头(IP Camera,简称IPC)和网络硬盘录像机(Network Video Recorder,简称NVR),支持视频的编码格式为H264或H265。 HTTP-FLV 视频流:指使用 HTTP-FLV 协议传输数据的视频流,支持编码格式为H264。 RTMP 接入功能已下线,若有RTMP视频流接入需求建议您使用视频直播服务,如有问题,请提交工单咨询。 表1 接入流程 接入类型 接入流程 说明 GB/T28181摄像设备 1.创建GB/T28181密码 GB/T28181设备注册到VIS时,需要通过用户名和密码进行认证。因此,您在注册设备到VIS之前,需要先在VIS控制台上创建GB/T28181用户和密码。 2.GB/T28181设备注册到VIS GB/T28181摄像设备注册到VIS,分2步操作: VIS端新增设备:在VIS的控制台操作。 设备端注册到VIS:在设备(IPC或者NVR)自己的配置管理页面上操作。 3.视频邀约 GB/T28181设备注册成功后,需要对设备通道进行视频邀约,视频邀约成功后,设备的视频会持续接入到VIS中,直到取消邀约。 4.视频转储 如果需要对实时视频流的数据进行保存,供后续分析或查看,可以对视频流进行转储。 5.(可选)定时接入 该操作可选,VIS支持用户对已上线的国标摄像头设置定时接入策略。用户可以设置摄像头在一天中指定的时间范围内,进行随机或连续时间片接入。 HTTP-FLV视频流 1.创建HTTP-FLV视频流 VIS支持HTTP-FLV视频流接入,只需要获取HTTP-FLV视频流的拉流地址,在VIS控制台创建视频流即可。 2.视频转储 如果需要对实时视频流的数据进行保存,供后续分析或查看,可以对视频流进行转储。 RTMP视频流(已下线) 1.(可选)创建访问密钥 这里创建的访问密钥仅用于RTMP视频流的推流鉴权,具体参见推流鉴权规则。如果不需要对推流进行鉴权,可跳过该操作。 2.创建RTMP视频流 此功能已下线,若有RTMP视频流接入需求建议您使用视频直播服务,如有问题,请提交工单咨询。 3.视频转储 如果需要对实时视频流的数据进行保存,供后续分析或查看,可以对视频流进行转储。 如在使用VIS过程中,您有进一步疑问和建议,欢迎您移步到官方论坛"视频接入服务"进行交流反馈。
  • 推流鉴权规则 如果创建RTMP视频流时设置了访问密钥,创建完成后,在使用客户端进行推流时,需在RTMP视频流的原始推流地址的基础上拼接相关鉴权参数(Expires、AccessKeyId、Token),参数规则请参见表2。 RTMP视频流的原始推流地址查看方法:在VIS管理控制台选择“视频流管理”,单击RTMP视频流名称进入视频预览界面,查看推流地址,例如“rtmp://10.4.55.180:14201/vis/stream_name”或者 “rtmp://10.4.55.180:14201/vis/stream_name?project_id=c5648d9ee6b14xxxxxxxe6fc594e55df”,或者 需要鉴权的推流地址样例: 获取的推流地址不带有参数的,通过 ? 来拼接: rtmp://xxx.xxx.xxx.xxx:xxxx/vis/stream_name?Expires=1472201595&AccessKeyId=J7UFQDxxxxxxNUV5LQK3CN&Token=bjKraxxxxxx%2FlM%3D 获取的推流地址带有参数的,通过 & 来拼接: rtmp://xxx.xxx.xxx.xxx:xxxx/vis/stream_name?project_id=c5648d9ee6b14xxxxxxxe6fc594e55df&Expires=1472201595&AccessKeyId=J7UFQDxxxxxxNUV5LQK3CN&Token=bjKraxxxxxx%2FlM%3D 表2 RTMP推流鉴权查询参数说明 参数 说明 取值样例 Expires RTMP视频流的过期时间戳,采用Unix时间戳。 1472201595 AccessKeyId 访问密钥的AK值。 J7UFQDDxxxxxxLQK3CN Token 通过验证计算得到的token,计算规则: Token=Base64(hmac-sha1(SecretKey, Tcurl + Expires)) 该计算规则固定采用hmac-sha1加密算法和Base64编码方式,其中的参数说明如下: SecretKey为访问密钥的SK值,作为加密算法密钥。 Tcurl + Expires由Tcurl和Expires进行字符串拼接得到,为加密算法消息数据。 Tcurl为VIS控制台视频预览界面上原始推流地址(不包含参数部分),例如: rtmp://xxx.xxx.xxx.xxx:xxxx/vis/stream_name Expires同查询参数Expires,取值相同。 KH48kBm6Bp0xxxxxx6rl904rq
  • 响应示例 状态码: 200 通道列表 { "total" : "2", "channels" : [ { "device_id" : "952352DJNR***", "device_name": "TESTNVR", "channel_id" : "0", "channel_name" : "龙岗通道1", "channel_state" : "ONLINE", "create_time" : "2020-06-26 20:42:16.0", "update_time" : "2020-06-26 20:42:16.0", "model" : "L", "access_protocol" : "HOLO", "channel_system_state" : "NORMAL", "channel_resource_state" : [ "MANAGEMENT_GRANT", "EVENT_RECORD_CLOSED", "FULL_RECORD_CLOSED" ], "channel_ability": [ "ptz" ], "channel_firmware": null, "config_state": null, "device_org_name": "组织名称123123123123", "channel_type": "IPC", "resolution": null }, { "device_id" : "952352DJNR***", "device_name": "TESTNVR", "channel_id" : "1", "channel_name" : "龙岗通道2", "channel_state" : "ONLINE", "create_time" : "2020-06-26 20:42:16.0", "update_time" : "2020-06-26 20:42:16.0", "model" : "L", "access_protocol" : "HOLO", "channel_system_state" : "NORMAL", "channel_resource_state" : [ "MANAGEMENT_GRANT", "EVENT_RECORD_CLOSED", "FULL_RECORD_CLOSED" ], "channel_ability": [ "ptz" ], "channel_firmware": null, "config_state": null, "device_org_name": "组织名称123123123123", "channel_type": "IPC", "resolution": null } ] }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 total Integer 总数 channels Channel object 通道列表 表5 Channel 参数 参数类型 描述 device_id String 设备ID,设备唯一标识 device_name String 设备名称 channel_id String 通道ID channel_name String 通道名称 channel_state String 通道状态 枚举值: OFFLINE 离线 ONLINE 在线 UNALLOCATED 未注册 model String 通道的设备型号 access_protocol String 接入协议 枚举值: HOLO 好望协议 GB28181 国标协议 create_time String 通道创建时间 update_time String 通道更新时间 channel_system_state String 通道系统状态 枚举值: NORMAL 正常 UNAVAILABLE_FROZEN 冻结 channel_resource_state Array of strings 通道资源 枚举值: MANAGEMENT_GRANT 管理套餐开通 MANAGEMENT_ARREAR 管理套餐欠费 MANAGEMENT_CLOSED 管理套餐未开通 EVENT_RECORD_GRANT 动检套餐开通 EVENT_RECORD_ARREAR 动检套餐欠费 EVENT_RECORD_CLOSED 动检套餐关闭 FULL_RECORD_GRANT 全量套餐开通 FULL_RECORD_ARREAR 全量套餐欠费 FULL_RECORD_CLOSED 全量套餐关闭 INDUSTRY_DATA_GRANT 行业数据流套餐开通 INDUSTRY_DATA_ARREAR 行业数据流套餐欠费 INDUSTRY_DATA_CLOSED 行业数据流套餐关闭 CUSTOMER_GROUP_GRANT 客流客群服务开通 CUSTOMER_GROUP_ARREAR 客流客群服务欠费 CUSTOMER_GROUP_CLOSED 客流客群服务未开通 channel_ability Array of strings 通道能力集:枚举类型,参考附录设备能力集,多个能力集用逗号分隔 channel_firmware String 通道的设备固件版本号,如:SDC 10.0.0 config_state String 批量远程配置状态,枚举类型 枚举值: TRUE 可配置 FALSE 不可配置 device_org_name String 设备组织名称 channel_type String 通道类型 枚举值: IPC 通用相机 IPC-BULLET 枪机 IPC-BOX 筒机 IPC-CONCH 半球/海螺 IPDOME 球机 resolution String 分辨率
  • URI GET /v1/{user_id}/channels 表1 路径参数 参数 是否必选 参数类型 描述 user_id 是 String 用户ID:由数字组成,长度范围[15,25],获取方式参考获取user ID与下载AK/SK章节 表2 Query参数 参数 是否必选 参数类型 描述 access_protocol 否 String 接入协议:枚举类型,多个查询使用逗号分隔 枚举值: HOLO 好望协议 GB28181 国标协议 channel_name 否 String 通道名称:支持英文、中文(一个汉字算两个字符)、数字、特殊字符(_-空格),长度范围[1,128] channel_resource_state 否 String 通道资源状态:枚举类型,多个查询使用逗号分隔 枚举值: MANAGEMENT_GRANT 管理套餐开通 MANAGEMENT_ARREAR 管理套餐欠费 MANAGEMENT_CLOSED 管理套餐未开通 EVENT_RECORD_GRANT 动检套餐开通 EVENT_RECORD_ARREAR 动检套餐欠费 EVENT_RECORD_CLOSED 动检套餐关闭 FULL_RECORD_GRANT 全量套餐开通 FULL_RECORD_ARREAR 全量套餐欠费 FULL_RECORD_CLOSED 全量套餐关闭 INDUSTRY_DATA_GRANT 行业数据流套餐开通 INDUSTRY_DATA_ARREAR 行业数据流套餐欠费 INDUSTRY_DATA_CLOSED 行业数据流套餐关闭 CUSTOMER_GROUP_GRANT 客流客群服务开通 CUSTOMER_GROUP_ARREAR 客流客群服务欠费 CUSTOMER_GROUP_CLOSED 客流客群服务未开通 channel_state 否 String 通道状态:枚举类型,仅支持单个通道状态查询 枚举值: OFFLINE 离线 ONLINE 在线 UNALLOCATED 未注册 channel_system_state 否 String 系统状态:枚举类型,仅支持单个系统状态查询 枚举值: NORMAL 正常 UNAVAILABLE_FROZEN 冻结 device_id 否 String 设备ID: 好望设备:大小写字母、数字组成,长度范围[8,32],可在设备外壳或者设备web页面上获取 国标设备:由数字组成,长度为20个字符长度,由客户自行设置,其中第11-13位,必须是以下之一132(IPC)、111(DVR)、118(NVR),用来区分设备类型 direction 否 String 排序方向:枚举类型,默认升序,不区分大小写 枚举值: ASC 升序 DESC 降序 limit 否 Integer 限制条数:取值范围[1,1000],不填写时默认值为10 offset 否 Integer 偏移量:0表示从第1个匹配的数据开始查询,取值范围[0,2147483646],不填写时默认为0 sort_by 否 String 排序字段:枚举类型,默认按创建时间create_time排序 枚举值: create_time 创建时间 update_time 更新时间
  • 快照方式制作镜像 如果后续镜像没有变化,可通过快照方式制作镜像。 快照方式制作镜像示例: 本示例中使用华为云弹性云服务器服务(ECS)创建一台云服务器,并使用快照方式制作bwa镜像。 购买弹性云服务器。 云服务器创建成功后,在云服务器列表页,选中待登录的弹性云服务器。单击“远程登录”,输入ECS初始账号,登录ECS。 图1 云服务器列表 安装容器引擎。 例如,在Linux操作系统下,可以使用如下命令快速安装容器引擎。 curl -fsSL get.docker.com -o get-docker.sh sh get-docker.sh 启动一个空白的基础容器,并进入容器。 例如,启动一个CentOS容器。 docker run -it centos 安装依赖包。 yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm yum -y install git yum -y install gcc automake autoconf libtool make yum install -y zlib zlib-devel 安装bwa软件,在github上下载bwa的源代码,并使用make编译。 yum install bwa git clone https://github.com/lh3/bwa.git cd bwa;make 请预先安装好Git,并检查本机是否有ssh key设置。 输入exit退出容器。 查询容器id。 docker ps -a 制作快照。 docker commit -m "xx" -a "tsj" container-id tsj/image:tag 例如:docker commit -m "test" -a "username" adb1127979a1 bwa:v0.7 -a:提交的镜像作者,例如tsj。 container-id:容器id。 -m:提交时的说明文字,例如xx。 tsj/image:tag:仓库名/镜像名:TAG名,名称可自定义。 执行docker images查看制作完成的Docker镜像。
  • 操作步骤 登录华为云管理控制台,鼠标指向页面右上角的用户名,在下拉列表中单击“我的凭证”。 图1 我的凭证入口 在“我的凭证”页面中选择“访问密钥”页签。单击“新增访问密钥”,按操作指引获取认证账账号的AK/SK,请妥善保管AK/SK信息。 图2 访问密钥 每个用户仅允许新增两个访问密钥。 为保证访问密钥的安全,访问密钥仅在初次生成时自动下载,后续不可再次通过管理控制台页面获取。请在生成后妥善保管。
  • 实名认证类型介绍 表1 实名认证详细介绍 账号类型 认证类型(任选一种类型) 详细操作指导 个人账号 推荐扫码认证(即时完成认证) 请参见如何进行扫码认证。 银行卡认证(即时完成认证) 请参见如何进行银行卡认证。 证件认证(1-3个工作日) 请参见如何进行证件认证。 企业账号 推荐银行对公账户认证(最快30分钟) 请参见如何进行企业银行对公账户打款认证。 企业证件认证(0-3个工作日) 请参见如何进行企业证件认证。
  • 方式二:在组件的事件代码中,直接调用服务 除了将服务编排、脚本和API封装成模型调用外,还可以在组件的事件代码中,直接调用服务。 在代码编辑页面左侧,单击“服务类”下的“服务编排”按钮,获取调用服务编排的代码。通过简单的修改,如服务编排的名称,版本号,即可初始化并得到服务编排对象。 系统提供了多种内置API,用来操作服务编排对象。例如,run方法用来一次性执行完服务编排,也可以调用start、next、back、finish、resume、terminate等方法,实现在服务编排特定阶段执行回调方法。 图8 服务编排快捷代码 在代码编辑界面左侧,单击“服务类”下的“脚本编排”按钮,获取调用脚本编排的代码。通过简单的修改,如脚本编排的名称,即可初始化并得到脚本编排对象。调用平台内置run方法,来执行脚本。 图9 脚本编排快捷代码 在代码编辑界面左侧,单击“服务类”下的“服务请求”按钮,获取调用API请求的代码。通过将样例代码中的url替换成真实业务url,配置请求参数,请求方法和请求头信息,调用平台内置run方法即可请求API。 图10 服务请求快捷代码 对象、服务编排和脚本编排也可以配置成API,通过API的方式进行调用,更多内容请参见10 API接口。
  • 什么是执行后台逻辑 在标准页面执行后台逻辑,即在标准页面组件的事件中,调用其他服务补充和实现当前事件的行为。 例如,在员工信息录入页面中,在信息“提交”按钮的“点击”事件中,调用API,将表单中的员工信息发送到数据库进行保存。或者调用在标准页面中的服务编排或脚本,并对需要保存的信息进行预处理。 标准页面执行后台逻辑一般是通过调用标准页面服务和调用第三方接口两种方式实现。本章节主要介绍调用标准页面服务,关于标准页面调用第三方接口的内容请参见如何调用第三方接口。 标准页面的服务主要分为服务编排(Flow)、脚本(Script)和公共接口(API)三种,对应的页面模型为“服务”。 图1 页面模型(服务)
  • 方式二:在组件的事件代码中,直接调用服务 除了将服务编排、脚本和API封装成模型调用外,还可以在组件的事件代码中,直接调用服务。 在代码编辑页面左侧,单击“服务类”下的“服务编排”按钮,获取调用服务编排的代码。通过简单的修改,如服务编排的名称,版本号,即可初始化并得到服务编排对象。 系统提供了多种内置API,用来操作服务编排对象。例如,run方法用来一次性执行完服务编排,也可以调用start、next、back、finish、resume、terminate等方法,实现在服务编排特定阶段执行回调方法。 图7 服务编排快捷代码 在代码编辑界面左侧,单击“服务类”下的“脚本编排”按钮,获取调用脚本编排的代码。通过简单的修改,如脚本编排的名称,即可初始化并得到脚本编排对象。调用平台内置run方法,来执行脚本。 图8 脚本编排快捷代码 在代码编辑界面左侧,单击“服务类”下的“服务请求”按钮,获取调用API请求的代码。通过将样例代码中的url替换成真实业务url,配置请求参数,请求方法和请求头信息,调用平台内置run方法即可请求API。 图9 服务请求快捷代码 对象、服务编排和脚本编排也可以配置成API,通过API的方式进行调用,更多内容请参见API接口。
  • 什么是执行后台逻辑 在标准页面执行后台逻辑,即在标准页面组件的事件中,调用其他服务补充和实现当前事件的行为。 例如,在员工信息录入页面中,在信息“提交”按钮的“点击”事件中,调用API,将表单中的员工信息发送到数据库进行保存。或者调用在标准页面中的服务编排或脚本,并对需要保存的信息进行预处理。 标准页面执行后台逻辑一般是通过调用标准页面服务和调用第三方接口两种方式实现。本章节主要介绍调用标准页面服务,关于标准页面调用第三方接口的内容请参见如何调用第三方接口。 标准页面的服务主要分为服务编排(Flow)、脚本(Script)和公共接口(API)三种,对应的页面模型为“服务”。 图1 页面模型(服务)
  • 什么是应用包 轻应用或行业应用开发完成后,应用需要编译打包,这种编译后的压缩包即应用包。 应用包类型 在AstroZero中,编译打包的应用包类型有以下两种: 源码包:该类型包中的所有组件,都不受保护和限制。在其他环境安装后可编辑包中组件,即在原有基础上可进行再开发。若后续其他用户在开发环境安装后,会显示在开发环境首页的“项目”页签下。 资产包:该类型支持设置包中的组件,是否受保护。打包时不做编译设置,默认打出的包都是资产包,包中组件都为只读保护模式,将包安装到其他环境时,只能运行和预览,不可编辑包中组件。若后续其他用户在其他开发环境安装资产包后,应用会显示在开发环境首页的“库”页签下。 应用包类型的详细介绍,请参见源码包与资产包对比。 软件包环境 图1 环境介绍 AstroZero分为开发环境,沙箱环境和运行环境三个部分,更多介绍请参见基本概念。 开发者在开发环境开发应用和BO,开发完成后生成对应的软件包。 发布软件包到沙箱环境中进行测试。 测试通过后,发布安装到生产环境实际运行和维护。 仅专业收费版本支持沙箱环境和运行环境,免费版本无沙箱环境和运行环境权限。 软件包制作 应用或BO创建完成后,平台会同步创建同名的软件包。 对应用和BO内的组件,进行增删查改都会同步反映到软件包中。 开发者也可以在编译设置中,对软件包和其中组件的属性进行修改。
  • 源码包与资产包对比 源码包和资产包都是应用发布类型,大部分的功能都是一致的,例如都分为全量和组件两种形式,都是按“编译-发布”的流程进行。目前来说,主要有以下几点不同之处: 不同的保护模式设置。 源码包中的所有组件都不受保护和限制,其保护模式也无法进行设置修改,这些组件在安装后可以被自定义编辑修改。而资产包的大部分组件默认在安装后是不允许被修改的,甚至可以设置某些组件不可见,如服务编排,脚本等,可防止泄露源代码,保护知识产权。其保护模式可以在编译设置中,进行修改。 二次开发与发布模式不同。 源码包在开发环境中安装后允许再次进行打包发布,而资产包安装后无法二次打包发布。另外,源码包只能发布到“我的仓库”,而资产包主要用于发布到应用市场。
  • 背景信息 文字识别(Optical Character Recognition,简称OCR)以开放API的方式提供给用户,用户使用Python、Java等编程语言调用OCR服务API将图片识别成文字,帮助用户自动采集关键数据,打造智能化业务系统,提升业务效率。 在AstroZero中,通过应用与华为OCR(Optical Character Recognition)对接,可实现图片或扫描件中文字识别功能。
共100000条