华为云用户手册

  • 语法格式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 CREATE TABLE [ IF NOT EXISTS ] table_name ({ column_name data_type [ kv_type ] | LIKE source_table [like_option [...] ] } } [, ... ]) [ WITH ( {storage_parameter = value} [, ... ] ) ] [ TABLESPACE tablespace_name ] [ DISTRIBUTE BY HASH ( column_name [,...])] [ TO { GROUP groupname | NODE ( nodename [, ... ] ) } ] [ PARTITION BY { {RANGE (partition_key) ( partition_less_than_item [, ... ] )} } [ { ENABLE | DISABLE } ROW MOVEMENT ] ]; 其中like选项like_option为: { INCLUDING | EXCLUDING } { DEFAULTS | CONSTRAINTS | INDEXES | STORAGE | COMMENTS | PARTITION | RELOPTIONS | DISTRIBUTION | ALL }
  • 功能描述 在当前数据库中创建一个新的空白时序表,该表由命令执行者所有。 IoT数仓提供创建时序表DDL语句。创建时序表DDL需要提供时序表基于Key Value存储所需的维度属性(tstag)、指标属性(tsfield)以及时间(tstime)属性的相关信息。同时作为 时序数据库 ,允许指明数据的生命周期TTL(Time To Live)以及分区创建时间周期(Period)来提供自动分区创建和自动分区删除的能力。创建时序表需要将orientation属性设置为timeseries。
  • 注意事项 创建时序表的用户需要有schema cstore的USAGE权限。 时序表的所有属性除时间属性必须指明是维度(TSTAG)还是指标(TSFIELD)。 如果显式地指定partition by分区键,只允许使用时间列作为分区键。 drop column包含索引列时,会使用剩余的索引列重建索引。如果索引列都被剔除,则会使用前10列tag列重建索引。 时序表不支持:update,upsert,主键,pck。 每一个时序表绑定一张tag表,tag表的oid和index oid分别记录在pg_class中reltoastrelid和reltoastidxid字段。 tag表默认使用前10列tag列创建索引。 tag表不允许在CN查询,查询表大小的时候会包含tag表。 非时序表建表语句设置列kvtype不生效。
  • 参数说明 UNIQUE 创建唯一性索引,每次添加数据时检测表中是否有重复值。如果插入或更新的值会引起重复的记录时,将导致一个错误。 目前只有行存表B-tree索引和列存表的B-tree索引支持唯一索引。 schema_name 要创建的索引所在的模式名。指定的模式名需与表所在的模式相同。 index_name 要创建的索引名,索引的模式与表相同。 取值范围:字符串,要符合标识符的命名规范。 table_name 需要为其创建索引的表的名字,可以用模式修饰。 取值范围:已存在的表名。 USING method 指定创建索引的方法。 取值范围: btree:B-tree索引使用一种类似于B+树的结构来存储数据的键值,通过这种结构能够快速的查找索引。btree适合支持比较查询以及查询范围。 gin:GIN索引是倒排索引,可以处理包含多个键的值(比如数组)。 gist:Gist索引适用于几何和地理等多维数据类型和集合数据类型。 Psort:Psort索引。针对列存表进行局部排序索引。 行存表支持的索引类型:btree(行存表缺省值)、gin、gist。列存表支持的索引类型:Psort(列存表缺省值)、btree、gin。 column_name 表中需要创建索引的列的名字(字段名)。 如果索引方式支持多字段索引,可以声明多个字段。最多可以声明32个字段。 expression 创建一个基于该表的一个或多个字段的表达式索引,通常必须写在圆括弧中。如果表达式有函数调用的形式,圆括弧可以省略。 表达式索引可用于获取对基本数据的某种变形的快速访问。比如,一个在upper(col)上的函数索引将允许WHERE upper(col) = 'JIM'子句使用索引。 在创建表达式索引时,如果表达式中包含IS NULL子句,则这种索引是无效的。此时,建议用户尝试创建一个部分索引。 COLLATE collation COLLATE子句指定列的排序规则(该列必须是可排列的数据类型)。如果没有指定,则使用默认的排序规则。 opclass 操作符类的名字。对于索引的每一列可以指定一个操作符类,操作符类标识了索引那一列的使用的操作符。例如一个B-tree索引在一个四字节整数上可以使用int4_ops;这个操作符类包括四字节整数的比较函数。实际上对于列上的数据类型默认的操作符类是足够用的。操作符类主要用于一些有多种排序的数据。例如,用户想按照绝对值或者实数部分排序一个复数,可通过定义两个操作符类,当建立索引时选择合适的类。 ASC 指定按升序排序 (默认)。本选项仅行存支持。 DESC 指定按降序排序。本选项仅行存支持。 NULLS FIRST 指定空值在排序中排在非空值之前,当指定DESC排序时,本选项为默认的。 NULLS LAST 指定空值在排序中排在非空值之后,未指定DESC排序时,本选项为默认的。 WITH ( {storage_parameter = value} [, ... ] ) 指定索引方法的存储参数。 取值范围: 只有GIN索引支持FASTUPDATE,GIN_PENDING_LIST_LIMIT参数。GIN和Psort之外的索引都支持FILLFACTOR参数。 FILLFACTOR 一个索引的填充因子(fillfactor)是一个介于10和100之间的百分数。 取值范围:10~100 FASTUPDATE GIN索引是否使用快速更新。 取值范围:ON,OFF 默认值:ON GIN_PENDING_LIST_LIMIT 当GIN索引启用fastupdate时,设置该索引pending list容量的最大值。 取值范围:64~INT_MAX,单位KB。 默认值:gin_pending_list_limit的默认取决于GUC中gin_pending_list_limit的值(默认为4MB)。 WHERE predicate 创建一个部分索引。部分索引是一个只包含表的一部分记录的索引,通常是该表中比其他部分数据更有用的部分。例如,有一个表,表里包含已记账和未记账的定单,未记账的定单只占表的一小部分而且这部分是最常用的部分,此时就可以通过只在未记账部分创建一个索引来改善性能。另外一个可能的用途是使用带有UNIQUE的WHERE强制一个表的某个子集的唯一性。 取值范围:predicate表达式只能引用表的字段,它可以使用所有字段,而不仅是被索引的字段。目前,子查询和聚集表达式不能出现在WHERE子句里。 PARTITION index_partition_name 索引分区的名称。 取值范围:字符串,要符合标识符的命名规范。
  • 功能描述 在指定的表上创建索引。 索引可以用来提高数据库查询性能,但是不恰当的使用将导致数据库性能下降。建议仅在匹配如下某条原则时创建索引: 经常执行查询的字段。 在连接条件上创建索引,对于存在多字段连接的查询,建议在这些字段上建立组合索引。例如,select * from t1 join t2 on t1.a=t2.a and t1.b=t2.b,可以在t1表上的a,b字段上建立组合索引。 where子句的过滤条件字段上(尤其是范围条件)。 在经常出现在order by、group by和distinct后的字段。 在分区表上创建索引与在普通表上创建索引的语法不太一样,使用时请注意,如分区表上不支持并行创建索引、不支持创建部分索引、不支持NULL FIRST特性。
  • 注意事项 索引自身也占用存储空间、消耗计算资源,创建过多的索引将对数据库性能造成负面影响(尤其影响数据导入的性能,建议在数据导入后再建索引)。因此,仅在必要时创建索引。 索引定义里的所有函数和操作符都必须是immutable类型的,即它们的结果必须只能依赖于它们的输入参数,而不受任何外部的影响(如另外一个表的内容或者当前时间)。这个限制可以确保该索引的行为是定义良好的。要在一个索引上或WHERE中使用用户定义函数,请把它标记为immutable类型函数。 在分区表上创建唯一索引时,索引项中必须包含分布列和所有分区键。 列存表和HDFS表支持B-tree索引,不支持创建表达式索引、部分索引。 列存表支持通过B-tree索引建立唯一索引。 列存表和HDFS表支持的PSORT索引不支持创建表达式索引、部分索引和唯一索引。 列存表支持的GIN索引支持创建表达式索引,但表达式不能包含空分词、空列和多列,不支持创建部分索引和唯一索引。 时序表中仅支持在tag列上创建索引,针对时序表创建的任何索引类型,都会转化成tag表上的双索引(btree和gin索引),这两个索引的索引列为指定创建的索引列。默认情况下使用tag表的前三列为默认的索引列。
  • 语法格式 在表上创建索引。 1 2 3 4 5 CREATE [ UNIQUE ] INDEX [ [ schema_name. ] index_name ] ON table_name [ USING method ] ({ { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] }[, ...] ) [ WITH ( {storage_parameter = value} [, ... ] ) ] [ TABLESPACE tablespace_name ] [ WHERE predicate ]; 在分区表上创建索引。 1 2 3 4 5 CREATE [ UNIQUE ] INDEX [ [ schema_name. ] index_name ] ON table_name [ USING method ] ( {{ column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS LAST ] }[, ...] ) LOCAL [ ( { PARTITION index_partition_name [ TABLESPACE index_partition_tablespace ] } [, ...] ) ] [ WITH ( { storage_parameter = value } [, ...] ) ] [ TABLESPACE tablespace_name ];
  • 技术特点 海量数据写入能力 在自动驾驶汽车监测的数据每秒只采集5种测量数据(速度、温度、发动机功率、方向、坐标),1000W辆汽车每秒中将会有5000W的TPS。 写入平稳、持续 不同于传统业务场景,时序数据的产生通常以一个固定的时间频率进行采集,不受其他因素的制约,其数据生成的速度是相对平稳。 写多读少 与应用场景相关,时序数据90%左右的操作都是写操作。例如在监控场景下每天需要存储很多数据,但是读取的数据比较少,通常只会关注几个特定关键指标在一定时间范围内的数据。 高压缩率 高压缩率能够带来两方面的收益。一方面能够节省大量的硬件存储成本,节省硬盘的开销。另一方面压缩后的数据可以更容易存储到内存中,显著提高查询的性能。 实时写入新数据 时序数据的写入是实时的,采集的数据反应客观信息,数据是随着时间推进不断产生,不存在旧数据更新场景。 数据读取概率高 最近时间的数据具有的价值更高,因此被读取的概率高。例如在监控场景下,最近几个小时或者几天的监控数据最可能被访问,而一个季度或者一年前的数据极少访问。 多维分析 时序数据来自不同个体且拥有不同属性。例如在监控场景下,通过对某个集群上每台机器的网络流量监控,可以查询分析某台机器的网络流量,也可以同时查询集群总的网络流量。
  • 应用场景 典型IoT数仓主要服务两类业务场景,应用性能监控(Application Performance Management, APM )和物联网(Internet of Things,IoT),主要体现在以下几个方面: 商业零售:电商系统订单交易金额,支付金额数据,商品库存,物流数据; 金融交易:股票交易系统持续记录股票价格,交易量等; 社会生活:智能电表实时记录每小时的用电量数据等; 工业领域:工业机器数据例如风力发电机,获取实时转速、风速数据、发电量数据等; 系统监控:IT基础设施的负载和资源使用率,DevOps监控数据、移动/Web应用程序事件流等; 环境监测:自然环境(如温度、空气、水文、风力等)的监测,科学测量结果等; 城市管理:城市交通的监测(车辆、人流、道路等); 自动驾驶:自动驾驶汽车持续收集所处环境中的变化数据等。
  • 数据特征 时序数据列可以分为三类: Tag列:将表征数据源来源或者属性信息的列作为Tag列,该列的数值相对稳定,不随时间变化而变化。 Field列:将采样的维度作为数据列,因为该列的数据一般随时间变化而变化,存储各个指标的value。 Time列:表示采样时刻的时间戳。 如图1为典型发电机组数据采样示意图。共有三台发电机组,每个时间点分别采样四种数据:电压、功率、频率和电流相角。随着时间的流逝,每个采样的时间点将采样到的数据源源不断的传输。示意图中每条虚线都可以表示为一条时间线。 如图2所示可以将示意图转化为具体的一张表来存储数据,发电机组的某个指标随时间变化形成一条时间线,通过tag + field + time组合确定一条时间线。 橙色区域的tag列包含发电机、生产厂商、型号、位置、ID,不会随时间的变化而变化; 蓝色区域的field列包含电压、功率、频率、电流相角,这些列是目标采样维度,存储的采样数据会随着时间动态变化; 黄色区域为time列,表示采样的时间点。 图1 发电机组数据采样示意图 图2 存储数据表
  • 与标准数仓的区别 IoT数仓与标准数仓是 GaussDB (DWS)的两种不同类型产品,在使用上也存在一定差异,具体可参考表1进行对比分析。 表1 IoT数仓与标准数仓的差异 数仓类型 标准数仓 IoT数仓 适用场景 融合分析业务,一体化OLAP分析场景。主要应用于金融、政企、电商、能源等领域。 应用性能监控及物联网IoT等实时分析场景。主要应用于环境监测、自动驾驶、系统监控等行业。 产品优势 性价比高,使用场景广泛。 支持冷热数据分析,存储、计算弹性伸缩,无限算力、无限容量等。 高效的时序计算和IoT分析能力。 丰富的时序处理函数,支持实时和历史数据关联,内置时序算子,海量数据写入,高压缩以及多维度分析等能力。并且继承标准数仓的各种优势场景。 功能特点 支持海量数据离线处理和交互查询,数据规模大、复杂数据挖掘具有很好的性能优势。 千万时间线,秒级聚合,典型IoT场景下导入和查询较传统引擎提升数倍。 SQL语法 SQL语法兼容性高,语法通用,易于使用。 兼容标准数仓语法,新增IoT数仓特有DDL语法。 GUC参数 丰富的GUC参数,根据客户业务场景适配最适合客户的数仓环境。 兼容标准数仓GUC参数,新增支持IoT数仓调优等GUC参数。
  • 示例 创建简单的时序表: 1 2 3 4 5 6 7 CREATE TABLE CPU( idle numeric TSField, IO numeric TSField, scope text TSTag, IP text TSTag, time timestamp TSTime ) with (TTL='7 days', PERIOD = '1 day', orientation=TIMESERIES); 时序表增加列: 1 ALTER TABLE CPU ADD COLUMN memory numeric TSField; 时序表删除列: 1 ALTER TABLE CPU DROP COLUMN idle; 时序表修改列名: 1 ALTER TABLE CPU RENAME scope to scope1; 时序表修改TTL,设置分区存活的时间为7天: 1 ALTER TABLE CPU SET (TTL = '7 day'); 时序表修改Period,设置分区创建的周期为1天: 1 ALTER TABLE CPU SET (PERIOD = '1 day'); 时序表修改delta表相关参数: 1 ALTER TABLE CPU SET (enable_delta = false);
  • 语法格式 增加列DDL语法接口: 1 2 ALTER TABLE [ IF EXISTS ] { table_name [*] | ONLY table_name | ONLY ( table_name ) } action [, ... ]; 其中具体表操作action可以是以下子句之一: add column用于给时序表新增列: 1 ADD COLUMN column_name data_type [ kv_type ] [ compress_mode ] 其中时序表仅只能有一个TSTIME列,如果新增TSTIME列则会报错。 drop_column用于给时序表删除列: 1 |DROP COLUMN [ IF EXISTS ] column_name [RESTRICT | CASCADE ] drop column包含索引列时,会使用剩余的索引列重建索引。如果索引列都被剔除,则会使用前10列tag列重建索引。 修改时序表存储参数: 1 |SET ( { storage_parameter = value } [, ...] ) 重命名表中指定的列: 1 RENAME [ COLUMN ] column_name to new_column_name; 将时序表的属主改变成指定的用户: 1 OWNER TO new_owner 此语法主要针对时序表扩容时使用,一般不建议使用: 1 ADD NODE ( nodename [, ...] ) 给时序表添加分区: 1 ADD PARTITION part_new_name partition_less_than_item 删除分区表中的指定分区: 1 DROP PARTITION { partition_name } 清空时序表指定分区: 1 TRUNCATE PARTITION { partition_name }
  • 注意事项 只有时序表的所有者有权限执行ALTER TABLE命令,系统管理员默认拥有此权限。 不能修改分区表的tablespace,但可以修改分区的tablespace。 不支持修改存储参数ORIENTATION。 SET SCHEMA操作不支持修改为系统内部模式,当前仅支持用户模式之间的修改。 修改时序表存储参数enable_delta时,不能与其他ALTER操作同时进行。 Storage_parameter存储参数中的orientation和sub_partition_count不支持修改。 增加列必须有kvtype属性,且只能是tstag或者tsfiled两者之一。 删除的列不能是tstime类型,因为是分区列。 将delta表开关打开,将会创建delta表及自动写回任务;将delta表开关关闭,将会触发delta表强制delta表数据写入CU。
  • 步骤五:准备DWS对接Flink工具dws-connector-flink dws-connector-flink是一款基于DWS JDBC接口实现对接Flink的一个工具。在配置 DLI 作业阶段,将该工具及依赖放入Flink类加载目录,提升Flink作业入库DWS的能力。 浏览器访问https://mvnrepository.com/artifact/com.huaweicloud.dws。 在软件列表中选择最新版本的DWS Connectors Flink,本实践选择DWS Connector Flink 2 12 1 12。 单击“1.0.4”分支,实际请以官网发布的新分支为准。 单击“View ALL”。 单击dws-connector-flink_2.12_1.12-1.0.4-jar-with-dependencies.jar,下载到本地。 创建OBS桶,本实践桶名设置为obs-flink-dws,并将此文件上传到OBS桶下,注意桶也保持与DLI在一个区域下,本实践为“ 华北-北京四”。 图15 上传jar包到OBS桶
  • 更多操作 边缘节点注册完成后,您可以执行如表4的操作。 表4 相关操作 操作 说明 删除边缘节点 删除节点会同步在边缘创建的节点下部署的应用、模块、函数、证书。删除操作无法恢复,请谨慎操作。 如果确认删除,请确保您已完成节点删除前的以下必要步骤: 卸载节点上的边缘软件。卸载前请先做好备份工作。 以root用户登录边缘节点,执行如下命令删除已纳管的边缘节点上的软件和配置文件。 sh /opt/IoTEdge-Installer/uninstall.sh 在连接列表中,单击“操作”列的“删除”。
  • 安装边缘节点 在边缘节点列表,选择您需要安装的节点,在“操作”列单击“安装”,弹出如图1所示的提示信息。 图1 安装提示 安装命令30分钟内有效,如果超出时间,请重新获取安装命令。 选择边缘节点设备类型,并设置安装目录,然后单击复制安装命令。 请选择支持架构,输入安装目录,并复制安装命令,然后到边缘节点设备上执行命令,完成边缘软件部署。 使用SSH工具以root用户登录边缘节点服务器的shell控制台,执行安装命令。 图2 执行安装 图3 安装命令执行成功 单击“我知道了”,等待边缘节点的状态变为在线(安装完成后约等待半分钟),表示该节点已安装并连接成功。
  • 内置函数 开天 集成工作台 除了支持用户创建自定义函数,同时也内置了八种函数供用户在流编排时使用。内置函数的介绍如表1所示。 表1 内置函数介绍 类型 名称 说明 示例 数学函数 add 返回两个及以上数字相加的结果。 使用示例:add(1, 1.5) 结果示例:2.5 使用示例:add(1, 1) 结果示例:2 subtract 返回第一个数字减去第二个数字得到的结果。 使用示例:subtract(1.5, 1) 结果示例:0.5 使用示例:subtract(2, 1) 结果示例:1 multiply 返回将两个数字相乘得到的乘积。 使用示例:multiply(1.5, 1) 结果示例:1.5 使用示例:multiply(1.5, 2) 结果示例:3 division 返回第一个数字除以第二个数字的结果。 使用示例:division(10, 5) 结果示例:2 使用示例:division(11, 5) 结果示例:2.2 mod 返回第一个数字除以第二个数字的余数。 使用示例:mod(1, 3) 结果示例:1 使用梳理:mod(4, 2) 结果示例:0 roundingToNearest 按照指定的小数位数四舍五入。 使用示例:roundingToNearest(2.54,1) 结果示例:2.5 使用示例:roundingToNearest(2.55,1) 结果示例:2.6 roundingUp 按照指定的小数位数进位。 使用示例:roundingUp(2.54,1) 结果示例:2.6 使用示例:roundingUp(2.54,0) 结果示例:3 roundingDown 按照指定的小数位数舍弃。 使用示例:roundingDown(2.59,1) 结果示例:2.5 使用示例:roundingDown(2.599,2) 结果示例:2.59 操作函数 addProperty 将属性及其值添加到JSON对象,并返回更新的对象。将color属性添加到JSON对象,可通过jsonToBean ()函数将其从字符串转换为JSON。当前对象已包含brand、quantity两个属性。该函数将指定的值复制给指定的新属性,并返回更新后的对象。 使用示例:addProperty(jsonToBean({"brand":"huawei","quantity":"1000"}), color, red) 结果示例: { “brand”: “huawei”, “quantity”: “1000”, “color”: “red” } getProperty 获取Map对象属性值。 获取quantity属性对应的值,可通过jsonToBean ()函数将其从字符串转换为JSON。当前对象已包含brand、quantity两个属性。该函数返回指定属性对应的值,如果不存在,则返回指定的默认值。 使用示例:addProperty(jsonToBean({"brand":"huawei","quantity":"1000"}), ‘quantity, ‘500’) 结果示例:1000 对象函数 isEmpty 判断对象是否为空。 object代表一个JSON对象。 使用示例:isEmpty(object) 结果示例:false/true jsonQuery JSON对象查找。 object代表一个JSON对象。 使用示例:jsonQuery(object,/ItemCode) 结果示例:A0001 jsonToBean JSON字符串转对象。 使用示例:jsonToBean(jsonstring) 结果示例:object 字符串函数 beanToJson 对象转JSON字符串。 使用示例:beanToJson(object) jsonQueryToText JSON对象查找,返回String,查找对象中的ItemCode属性的值。 使用示例:jsonQuery(object,/ItemCode) 结果示例:A0001 length 返回字符串长度或数组中的项数。 使用示例:length("abcdef") 结果示例:6 日期函数 formatDateTime 以日期格式返回字符串。 使用示例:formatDateTime(1234,yyyy-MM-dd HH:mm:ss,GMT+8) 结果示例:1970-01-01 08:00:01 getSystemTime 获取当前系统时间。 使用示例:getSystemTime(yyyy-MM-dd HH:mm:ss,0) 结果示例:2023-11-03 15:12:48 getSystemTimestamp 获取当前系统时间戳。 使用示例:getSystemTimestamp(0) 结果示例:1.69900E+12 系统函数 getDomainId 获取当前登录用户的租户ID。 使用示例:getDomainId() 结果示例:d562d0bdc8************0048ad6702 getDomainName 获取当前登录用户的租户名称。 使用示例:getDomainName() 结果示例:zhangsan getProjectId 获取当前登录用户的项目ID。 使用示例:getProjectId() 结果示例:5d73148959************7ed5d88f1b 转换函数 parseInt 将String类型的参数转换为Int类型的数字。 使用示例:parseInt(12) 结果示例:12 parseBoolean 将字符串类型的参数转换为Boolean类型。 使用示例:parseBoolean(safdaf) 结果示例:FALSE SQL语句校验函数 sqlFormat 将SQL语句校验并格式化之后,输出原始SQL语句。 使用示例:sqlFormat(sql) 结果示例:sql sqlFormatToUppercase 将SQL语句校验并格式化之后,可以输出原始SQL语句,也可以输出关键字全大写语句。 使用示例:sqlFormat(sql,true) 结果示例:sql 父主题: 函数
  • 语音合成 将文本转换成逼真语音的服务。用户通过实时访问和调用API获取语音合成结果,将用户输入的文字合成为音频。通过音色选择、自定义音量、语速,为企业和个人提供个性化的发音服务。该接口的使用限制请参见约束与限制,详细使用指导请参见SIS服务使用简介章节。是一种将文本转换成逼真语音的服务。用户通过实时访问和调用API获取语音合成结果,将用户输入的文字合成为音频。通过音色选择、自定义音量、语速,为企业和个人提供个性化的发音服务。该接口的使用限制请参见约束与限制,详细使用指导请参见SIS服务使用简介章节。
  • 获取录音文件识别结果 该接口用于获取录音文件识别结果及识别状态 输入参数 用户配置获取录音文件识别结果执行动作,相关参数说明如表15所示。 表15 获取录音文件识别结果输入参数说明 参数 必填 说明 录音文件识别任务ID 是 录音文件识别任务标识符。 输出参数 用户可以在之后的执行动作中调用该输出参数,输出参数说明请参考表16。 表16 提交录音文件识别任务输出参数说明 参数 说明 当前识别状态 当前识别状态。 任务创建时间 所使用的模型特征串,有下拉框和输入框模式。默认为“采样率8k的中文普通话 语音识别 ”。 开始识别时间 存放录音文件地址,推荐使用OBS地址。 识别完成时间 是否在识别结果中添加标点,有下拉框和输入框模式。默认为“是”。 segments 识别结果。 起始时间戳 起始时间戳,ms。 结束时间戳 结束时间戳,ms。 识别结果文本 文本显示识别后的结果信息。 word_info 分词信息列表。 起始时间 识别动作的起始时间。 结束时间 识别动作的结束时间。 分词 显示文本分词。 角色类型 角色类型,目前仅支持。 情绪类型 情绪类型,目前仅支持NOMAL(正常),ANGRY(愤怒),UNKNOWN(未知)。 语速类型 语速信息单位是每秒字数。
  • 提交录音文件识别任务 录音文件识别接口,用于识别长录音文件,录音文件放在华为云OBS( 对象存储服务 )上,由于录音文件识别通常会需要较长的时间,因此识别是异步的,也即接口分为创建识别任务和查询任务状态两个接口,创建识别任务接口创建任务完成后返回,然后用户通过调用查询任务状态接口来获得转写状态和结果。 该接口用于提交录音文件识别任务,其中录音文件保存在用户的OBS桶中。用户开通 录音识别 服务时,需授权录音文件引擎读取用户OBS桶权限。录音时长不超过5小时,文件大小不超过300M,识别结果保存72小时(从识别完成的时间算起),72小时后如果再访问,将会返回错误 。当前仅支持识别中文普通话的录音文件。 输入参数 用户配置提交录音文件识别任务执行动作,相关参数说明如表13所示。 表13 提交录音文件识别任务输入参数说明 参数 必填 说明 选择语音格式 否 支持的语音格式。有下拉框和输入框模式,默认为自动判断。 选择语种_采样率_领域 否 所使用的模型特征串,有下拉框和输入框模式。默认为“采样率8k的中文普通话语音识别”。 录音文件地址 否 存放录音文件地址,推荐使用OBS地址。 识别结果使用标点 否 是否在识别结果中添加标点,有下拉框和输入框模式。默认为“是”。 是否输出分词结果信息 否 是否输出分词结果信息,有下拉框和输入框模式,默认为“是”。
  • 一句话识别 用于短语音的同步识别。一次性上传1min以内音频,能快速返回识别结果。该接口的使用限制请参见约束与限制,详细使用指导请参见SIS服务使用简介章节。 接口功能及调用方法请参考一句话识别。 输入参数 用户配置一句话识别执行动作,相关参数说明如表2所示。 表2 一句话识别输入参数说明 参数 必填 说明 选择语音格式 是 支持语音的格式,有下拉框和输入框模式。有多种语音格式供选择。 选择语种_采样率_领域 否 所使用的模型特征串,有下拉框和输入框模式,提供多种语言类型选择。 识别结果允许使用标点 否 是否在识别结果中添加标点,有下拉框和输入框模式,默认为“是”。 识别结果输出分词 否 是否在识别结果中输出分词结果信息,有下拉框和输入框模式,默认为“是”。 语音数据 否 语音数据Base64编码字符串。 输出参数 用户可以在之后的执行动作中调用该输出参数,输出参数说明请参考表3。 表3 一句话识别输出参数说明 参数 说明 内容 内容。 置信度 置信度。 word_info 分词信息列表。 起始时间 识别动作的起始时间。 结束时间 识别动作的结束时间。 分词 显示文本分词。
  • 高级查询概述 配置审计 服务提供高级查询能力,通过使用ResourceQL自定义查询用户当前的单个或多个区域的资源配置状态。 高级查询支持用户自定义查询和浏览云服务资源,用户可以通过ResourceQL在查询编辑器中编辑和查询。 ResourceQL是结构化的查询语言(SQL)SELECT语法的一部分,它可以对当前资源数据执行基于属性的查询和聚合。查询的复杂程度不同,既可以是简单的标签或资源标识符匹配,也可以是更复杂的查询,例如查看指定具体OS版本的云服务器。 您可以使用高级查询来实现: 库存管理。例如检索特定规格的云服务器实例的列表。 安全合规检查。例如检索已启用或禁用特定配置属性(公网IP,加密磁盘)的资源的列表。 成本优化。例如检索未挂载到任何云服务器实例的云磁盘的列表,避免产生不必要的费用。 高级查询仅支持用户自定义查询、浏览、导出云服务资源,如果要对资源进行修改、删除等管理类的操作,请前往资源所属的服务页面进行操作。 父主题: 高级查询
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。 Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxx" } } } } 获取Token 后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 1 2 3 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json X-Auth-Token: ABCDEFJ....
  • 请求消息体 请求消息体通常以结构化格式发出,与请求消息头中Content-type对应,传递除请求消息头之外的内容。若请求消息体中参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的账号名称,********为用户登录密码,xxxxxxxxxxxxxxxxxx为project的ID,获取方法请参见获取项目ID。 scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可以设置Token作用域为某个账号下所有资源或账号的某个project下的资源,详细定义请参见获取用户Token。 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 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "id": "xxxxxxxxxxxxxxxxxx" } } } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求URI 请求URI由如下部分组成。 {URI-scheme} :// {Endpoint} / {resource-path} ? {query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 URI-scheme: 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint: 指定承载REST服务端点的服务器 域名 或IP,不同服务不同区域的Endpoint不同,您可以从表1 地区和终端节点获取。 例如:可信存证服务tde在“华北-北京四”区域的Endpoint为“tde.cn-north-4.myhuaweicloud.com”。 resource-path: 资源路径,也即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string: 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“limit=10”,表示查询不超过10条数据。 例如您需要获取 IAM 在“华北-北京一”区域的Token,则需使用“华北-北京一”区域的Endpoint(iam.cn-north-1.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 1 https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务你正在请求什么类型的操作。 GET:请求服务器返回指定资源。 PUT:请求服务器更新指定资源。 POST:请求服务器新增资源或执行特殊操作。 DELETE:请求服务器删除指定资源,如删除对象等。 HEAD:请求服务器资源头部。 PATCH:请求服务器更新资源的部分内容。当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: 1 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 如下公共消息头需要添加到请求中。 Content-Type:消息体的类型(格式),必选,默认取值为“application/json”,有其他取值时会在具体接口中专门说明。 X-Auth-Token:用户Token,可选,当使用Token方式认证时,必须填充该字段。用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 1 2 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
  • 响应消息体 响应消息体通常以结构化格式(如JSON或XML)返回,与响应消息头中Content-Type对应,传递除响应消息头之外的内容。 对于获取用户Token接口,返回如下消息体。为篇幅起见,这里只展示部分内容。 1 2 3 4 5 6 7 8 9 10 11 12 { "token": { "expires_at": "2019-02-13T06:52:13.855000Z", "methods": [ "password" ], "catalog": [ { "endpoints": [ { "region_id": "az-01", ...... 当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所示。 { "error_code": "AS.0001" "error_msg": "The format of message is error", } 其中,error_code表示错误码,error_msg表示错误描述信息。
  • 操作步骤 登录DAC管理控制台。 在左侧导航栏单击“套餐包管理”,进入“套餐包管理”页面。 单击打开右上角 功能按钮,确定即可开启连续按需功能。 开通此按需功能后,优先扣除已购买的套餐包内次数,套餐包到期或者次数用完后的调用将按需计费,费用为3元/次,按需使用产生的费用后续无法通过购买套餐包抵扣。当账号欠费时,无法正常调用,请保证余额充足以保障业务连续性。 该功能会在“开通成功”提示框出现后大约3分钟左右生效,生效后,再去触发相关业务。
共100000条