云服务器内容精选
-
示例 创建表reason_update: 1 2 3 4 5 6 CREATE TABLE reason_update ( TABLE_SK INTEGER , TABLE_ID VARCHAR(20) , TABLE_NA VARCHAR(20) )WITH(ORIENTATION=COLUMN, ENABLE_HSTORE=ON); 向表reason_update中插入数据: 1 INSERT INTO reason_update VALUES (1, 'S01', 'StudentA'),(2, 'T01', 'TeacherA'),(3, 'T02', 'TeacherB'); 对表reason_update执行UPDATE操作: 1 UPDATE reason_update SET TABLE_NA = 'TeacherD' where TABLE_SK = 3;
-
参数说明 plan_hint子句 以/*+ */的形式在关键字后,用于对指定语句块生成的计划进行hint调优,详细用法请参见使用Plan Hint进行调优 table_name 要更新的表名,可以使用模式修饰。 取值范围:已存在的表名称。 alias 目标表的别名。 取值范围:字符串,符合标识符命名规范。 expression 赋给字段的值或表达式。 DEFAULT 用对应字段的缺省值填充该字段。 如果没有缺省值,则为NULL。 from_list 一个表的表达式列表,允许在WHERE条件里使用其他表的字段。与在一个SELECT语句的FROM子句里声明表列表类似。 目标表绝对不能出现在from_list里,除非在使用一个自连接(此时它必须以from_list的别名出现)。 condition 一个返回boolean类型结果的表达式。只有这个表达式返回true的行才会被更新。
-
语法格式 1 2 3 4 UPDATE [/*+ plan_hint */] [ ONLY ] table_name [ * ] [ [ AS ] alias ] SET {column_name = { expression | DEFAULT } |( column_name [, ...] ) = {( { expression | DEFAULT } [, ...] ) |sub_query }}[, ...] [ FROM from_list] [ WHERE condition ];
-
示例 创建简单的HStore表: CREATE TABLE warehouse_t1 ( W_WAREHOUSE_SK INTEGER NOT NULL, W_WAREHOUSE_ID CHAR(16) NOT NULL, W_WAREHOUSE_NAME VARCHAR(20) , W_WAREHOUSE_SQ_FT INTEGER , W_STREET_NUMBER CHAR(10) , W_STREET_NAME VARCHAR(60) , W_STREET_TYPE CHAR(15) , W_SUITE_NUMBER CHAR(10) , W_CITY VARCHAR(60) , W_COUNTY VARCHAR(30) , W_STATE CHAR(2) , W_ZIP CHAR(10) , W_COUNTRY VARCHAR(20) , W_GMT_OFFSET DECIMAL(5,2) )WITH(ORIENTATION=COLUMN, ENABLE_HSTORE=ON); CREATE TABLE warehouse_t2 (LIKE warehouse_t1 INCLUDING ALL);
-
参数说明 IF NOT EXISTS 指定IF NOT EXISTS时,若不存在同名表,则可以成功创建表。若已存在同名表,创建时不会报错,仅会提示该表已存在并跳过创建。 table_name 要创建的表名。 表名长度不超过63个字符,以字母或下划线开头,可包含字母、数字、下划线、$、#。 column_name 新表中要创建的字段名。 字段名长度不超过63个字符,以字母或下划线开头,可包含字母、数字、下划线、$、#。 data_type 字段的数据类型。 LIKE source_table [ like_option ... ] LIKE子句声明一个表,新表自动从这个表中继承所有字段名及其数据类型。 新表与原表之间在创建动作完毕之后是完全无关的。在原表做的任何修改都不会传播到新表中,并且也不可能在扫描原表的时候包含新表的数据。 被复制的列并不使用相同的名字进行融合。如果明确的指定了相同的名字或者在另外一个LIKE子句中,将会报错。 HStore表只能从HStore表中进行继承。 WITH ( { storage_parameter = value } [, ... ] ) 这个子句为表指定一个可选的存储参数。 ORIENTATION 指定表数据的存储方式,即时序方式、行存方式、列存方式,该参数设置成功后就不再支持修改。对于HStore表,应当使用列存方式,同时设置enable_hstore为on。 取值范围: TIMESERIES,表示表的数据将以时序方式存储。 COLUMN,表示表的数据将以列存方式存储。 ROW,表示表的数据将以行方式存储。 默认值:ROW。 COMPRESSION 指定表数据的压缩级别,它决定了表数据的压缩比以及压缩时间。一般来讲,压缩级别越高,压缩比也越大,压缩时间也越长;反之亦然。实际压缩比取决于加载的表数据的分布特征。 取值范围: HStore表和列存表的有效值为YES/NO和/LOW/MIDDLE/HIGH,默认值为LOW。当设置为YES时,压缩级别默认为LOW。 暂不支持行存表压缩功能。 ORC格式迁移到 GaussDB (DWS)列存表,如果使用low级别压缩,单副本大小大约是ORC的1.5~2倍;如果使用high级别压缩,单副本大小基本与ORC持平,在新建GaussDB(DWS)集群规模时,需考虑该转换关系。 列存middle压缩固定使用字典压缩,对于数据特征不适合字典压缩的数据,使用middle压缩的结果可能比low压缩更大。 GaussDB(DWS)内部提供如下压缩算法。 表2 列存压缩算法 COMPRESSION NUMERIC STRING INT LOW delta压缩+RLE压缩 lz4压缩 delta压缩(RLE可选) MIDDLE delta压缩+RLE压缩+lz4压缩 dict压缩或lz4压缩 delta压缩或lz4压缩(RLE可选) HIGH delta压缩+RLE压缩+zlib压缩 dict压缩或zlib压缩 delta压缩或zlib压缩(RLE可选) COMPRESSLEVEL 指定表数据同一压缩级别下的不同压缩水平,它决定了同一压缩级别下表数据的压缩比以及压缩时间。对同一压缩级别进行了更加详细的划分,为用户选择压缩比和压缩时间提供了更多的空间。总体来讲,此值越大,表示同一压缩级别下压缩比越大,压缩时间越长;反之亦然。该参数只对时序表和列存表有效。 取值范围:0~3 默认值:0 MAX_BATCHROW 指定了在数据加载过程中一个存储单元可以容纳记录的最大数目。该参数只对时序表和列存表有效。 取值范围:10000~60000 默认值60000 PARTIAL_CLUSTER_ROWS 指定了在数据加载过程中进行将局部聚簇存储的记录数目。该参数只对时序表和列存表有效。 取值范围:600000~2147483647 enable_delta 指定了在列存表是否开启delta表。对HStore表不能开启该参数。 默认值:off enable_hstore 指定了是否创建为HStore表(基于列存表实现)。该参数只对列存表有效。该参数仅8.2.0.100及以上集群版本支持。 默认值:off 打开该参数时必须设置以下GUC参数用于保证HStore表的清理,推荐值如下: autovacuum=true,autovacuum_max_workers=6,autovacuum_max_workers_hstore=3。 enable_disaster_cstore 指定了列存表是否开启细粒度容灾功能。该参数仅适用于COLVERSION为2.0的列存表,并且不能和enable_hstore同时打开。该参数仅8.2.0.100及以上集群版本支持。 默认值:off 设置该参数为on前需要先设置GUC参数enable_metadata_tracking=on,否则可能开启细粒度容灾功能失败。 SUB_PARTITION_COUNT 指定二级分区的个数。该参数用于设置在导入阶段二级分区个数。在建表时进行设置,建表后不支持修改。不建议用户随意设置该默认值,可能会影响导入和查询的性能。 取值范围:1~1024 默认值:32 DELTAROW_THRESHOLD 指定HStore表导入时小于多少行(SUB_PARTITION_COUNT * DELTAROW_THRESHOLD)的数据进入delta表。 取值范围:0~60000 默认值:60000 COLVERSION 指定存储格式的版本。 HStore表只支持2.0版本。 取值范围: 1.0:列存表的每列以一个单独的文件进行存储,文件名以relfilenode.C1.0、relfilenode.C2.0、relfilenode.C3.0等命名。 2.0:列存表的每列合并存储在一个文件中,文件名以relfilenode.C1.0命名。 默认值:2.0 secondary_part_column 指定列存表二级分区列的列名,仅能指定一列作为二级分区列且只适用于HStore列存表。该参数仅8.3.0及以上集群版本支持。 被指定为二级分区的列不能被删除或者修改。 只能在建表时指定二级分区列,建表后不支持修改。 不建议指定分布列作为二级分区列。 指定二级分区列后,该表将会在DN上按照二级分区列进行逻辑上的HASH分区存储,从而有效提升该列等值查询的性能。 secondary_part_num 指定列存表二级分区的数量,仅适用于HStore列存表。该参数仅8.3.0及以上集群版本支持。 取值范围:1~32 默认值:8 只有secondary_part_column被指定时,该参数才可以指定。 只能在建表时指定二级分区的数量,建表后不支持修改。 不建议用户随意设置该默认值,否则会影响导入和查询的性能。 DISTRIBUTE BY 指定表如何在节点之间分布或者复制。 取值范围: HASH (column_name ) :对指定的列进行Hash,通过映射,把数据分布到指定DN。 TO { GROUP groupname | NODE ( nodename [, ... ] ) } TO GROUP指定创建表所在的Node Group,目前不支持hdfs表使用。TO NODE主要供内部扩容工具使用,一般用户不应该使用。 PARTITION BY 指定HStore表的初始分区。
-
列存表的Delta表差异 表1 HStore表与列存表的辅助Delta表差异 数仓类型 列存的delta表 HStore的delta表 HStore Opt的delta表 表结构 与列存主表的表定义一致。 与主表定义不一致。 不同于主表,与HStore表相同。 功能 用于暂存小批量insert的数据,满阈值后再merge到主表,避免直接insert到主表产生大量小CU。 用于持久化存储update/delete/insert信息。在产生故障后用于恢复内存更新链等管理并发更新的内存结构。 用于持久化存储update/delete/insert信息。在产生故障后用于恢复内存更新链等管理并发更新的内存结构。相比HStore进一步优化。 缺陷 来不及merge导致delta表膨胀,影响查询性能,同时无法解决并发update的锁冲突问题 依赖后台常驻autovacuum来做merge操作。 依赖后台常驻autovacuum来做merge操作。 入库建议 综合入库、查询和空间情况,建议选择hstore_opt表,微批copy无更新入库场景性能要求高的情况下选择hstore表。 HStore/HStore Opt共同点: update入库性能差,建议修改为upsert。 delete入库,确定计划走索引扫描即可,用JDBC batch方式入库最佳。 merge into入库建议在单次入库数据量超过100W/dn,且无并发数据保证无重复的情况下使用。 尽量避免设置 default_orientation,因为存在较高风险。 尽量避免对冷分区的数据进行修改和新增。 HStore的upsert入库建议: 选择流程: 第1步:部分列upsert选择方式二,全列upsert(遇到冲突update所有列到新值且没有表达式)进入第2步判断。 第2步:数据入库是否会并发更新到同一个key,没有冲突时选择方式一,有冲突时进入第3步判断。 第3步:入库的数据可能遇到重复数据,选择方式二,否则进入第4步判断。 第4步:入库的方式是copy攒批临时表时,选择方式三,否则(包括jdbc的batch入库,简单的单行入库)选择方式二。 配置方式选项解释: 方式一:enable_hstore_nonconflict_upsert_optimization开启+enable_hstore_partial_upsert_optimization关闭。 方式二:enable_hstore_nonconflict_upsert_optimization关闭+enable_hstore_partial_upsert_optimization开启。 方式三:enable_hstore_nonconflict_upsert_optimization关闭+enable_hstore_partial_upsert_optimization关闭。 附加说明:攒批小于2000使用batch模式入库,大于2000使用copy临时表模式入库。 HStore Opt的upsert入库建议: 无并发冲突下开启enable_hstore_nonconflict_upsert_optimization参数,其他场景都关闭即可,会自动选择最优路径。 点查建议 综合点查场景,建议使用HStore Opt表。 HStore/HStore Opt共同点: 在等值过滤条件使用最多且distinct值分布相对均匀的一个列上创建二级分区。 HStore的点查建议: 使用主键之外的索引加速不能得到预期效果,不建议开启。 如果数据类型多为numeric或者16字节以内的字符串,建议使用turbo加速。 HStore Opt的点查建议: 除了二级分区之外的等值过滤列,如果过滤条件涉及的列在查询中基本固定,使用cbtree索引,如果不断变化建议使用GIN索引,注意创建索引的列数不要超过5列。 所有涉及等值过滤的字符串列,都可以建表时指定bitmap索引,不限列数,但后续不可修改。 时间范围过滤的列,指定为分区列。 点查返回数据量超过10W/dn的场景,索引扫描的性能提升有限,建议针对这种情况使用guc参数enable_seqscan对比测试,灵活选择。
-
注意事项 创建HStore表的用户需要拥有schema cstore的USAGE权限。 表级参数enable_delta与enable_hstore无法同时开启,因为enable_delta用于控制普通列存表的delta开启,会与enable_hstore冲突。 每一个HStore表绑定一张delta表,delta表的oid记录在pg_class中reldeltaidx字段(reldelta字段被列存表的delta表使用)。
-
语法格式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 CREATE TABLE [ IF NOT EXISTS ] table_name ({ column_name data_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 }
-
参数说明 DISTINCT [ ON ( expression [, ...] ) ] 从SELECT的结果集中删除所有重复的行,使结果集中的每行都是唯一的。 ON ( expression [, ...] ) 只保留那些在给出的表达式上运算出相同结果的行集合中的第一行。 SELECT列表 指定查询表中列名,可以是部分列或者是全部(使用通配符*表示)。 通过使用子句AS output_name可以为输出字段取个别名,这个别名通常用于输出字段的显示。 FROM子句 为SELECT声明一个或者多个源表。 FROM子句涉及的元素如下所示。 WHERE子句 WHERE子句构成一个行选择表达式,用来缩小SELECT查询的范围。condition是返回值为布尔型的任意表达式,任何不满足该条件的行都不会被检索。 WHERE子句中可以通过指定"(+)"操作符的方法将表的连接关系转换为外连接。但是不建议用户使用这种用法,因为这并不是SQL的标准语法,在做平台迁移的时候可能面临语法兼容性的问题。同时,使用"(+)"有很多限制: GROUP BY子句 将查询结果按某一列或多列的值分组,值相等的为一组。 HAVING子句 与GROUP BY子句配合用来选择特殊的组。HAVING子句将组的一些属性与一个常数值比较,只有满足HAVING子句中的逻辑表达式的组才会被提取出来。 ORDER BY子句 对SELECT语句检索得到的数据进行升序或降序排序。对于ORDER BY表达式中包含多列的情况:
-
语法格式 1 2 3 4 5 6 7 8 9 10 [ WITH [ RECURSIVE ] with_query [, ...] ] SELECT [/*+ plan_hint */] [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] { * | {expression [ [ AS ] output_name ]} [, ...] } [ FROM from_item [, ...] ] [ WHERE condition ] [ GROUP BY grouping_element [, ...] ] [ HAVING condition [, ...] ] [ { UNION | INTERSECT | EXCEPT | MINUS } [ ALL | DISTINCT ] select ] [ ORDER BY {expression [ [ ASC | DESC | USING operator ] | nlssort_expression_clause ] [ NULLS { FIRST | LAST } ]} [, ...] ] [ { [ LIMIT { count | ALL } ] [ OFFSET start [ ROW | ROWS ] ] } | { LIMIT start, { count | ALL } } ]
-
注意事项 列存表与HStore表都暂不支持SELECT FOR UPDATE语法。 对HStore表执行SELECT查询时,会扫描列存主表CU上的数据、delta表上的I记录中的数据、内存中每行数据更新信息,并将三种信息合并后返回。 在通过主键索引或唯一索引查询数据的场景中: 对于传统列存表,唯一索引会同时存储行存Delta表上的数据位置信息(blocknum,offset)与列存主表的数据位置信息(cuid,offset),数据MERGE到主表后又会插入新的索引元组,索引会持续膨胀。 对于HStore表,由于实现了全局CUID的统一分配,索引元组中始终只存储(cuid,offset), 数据MERGE后不会产生新的索引元组。
-
参数说明 IF NOT EXISTS 指定IF NOT EXISTS时,若不存在同名表,则可以成功创建表。若已存在同名表,创建时不会报错,仅会提示该表已存在并跳过创建。 table_name 要创建的表名。 表名长度不超过63个字符,以字母或下划线开头,可包含字母、数字、下划线、$、#。 column_name 新表中要创建的字段名。 字段名长度不超过63个字符,以字母或下划线开头,可包含字母、数字、下划线、$、#。 data_type 字段的数据类型。 LIKE source_table [ like_option ... ] LIKE子句声明一个表,新表自动从这个表中继承所有字段名及其数据类型。 新表与原表之间在创建动作完毕之后是完全无关的。在原表做的任何修改都不会传播到新表中,并且也不可能在扫描原表的时候包含新表的数据。 被复制的列并不使用相同的名字进行融合。如果明确的指定了相同的名字或者在另外一个LIKE子句中,将会报错。 HStore表只能从HStore表中进行继承。 WITH ( { storage_parameter = value } [, ... ] ) 这个子句为表指定一个可选的存储参数。 ORIENTATION 指定表数据的存储方式,即时序方式、行存方式、列存方式,该参数设置成功后就不再支持修改。对于HStore表,应当使用列存方式,同时设置enable_hstore为on。 取值范围: TIMESERIES,表示表的数据将以时序方式存储。 COLUMN,表示表的数据将以列存方式存储。 ROW,表示表的数据将以行方式存储。 默认值:ROW。 COMPRESSION 指定表数据的压缩级别,它决定了表数据的压缩比以及压缩时间。一般来讲,压缩级别越高,压缩比越大,压缩时间也越长;反之亦然。实际压缩比取决于加载的表数据的分布特征。 取值范围: HStore表和列存表的有效值为YES/NO和/LOW/MIDDLE/HIGH,默认值为LOW。 行存表的有效值为YES/NO,默认值为NO。 COMPRESSLEVEL 指定表数据同一压缩级别下的不同压缩水平,它决定了同一压缩级别下表数据的压缩比以及压缩时间。对同一压缩级别进行了更加详细的划分,为用户选择压缩比和压缩时间提供了更多的空间。总体来讲,此值越大,表示同一压缩级别下压缩比越大,压缩时间越长;反之亦然。该参数只对时序表和列存表有效。 取值范围:0~3 默认值:0 MAX_BATCHROW 指定了在数据加载过程中一个存储单元可以容纳记录的最大数目。该参数只对时序表和列存表有效。 取值范围:10000~60000 默认值60000 PARTIAL_CLUSTER_ROWS 指定了在数据加载过程中进行将局部聚簇存储的记录数目。该参数只对时序表和列存表有效。 取值范围:600000~2147483647 enable_delta 指定了在列存表是否开启delta表。对HStore表不能开启该参数。 默认值:off enable_hstore 指定了是否创建为HStore表(基于列存表实现)。该参数只对列存表有效。该参数仅8.2.0.100及以上集群版本支持。 默认值:off 打开该参数时必须设置以下GUC参数用于保证HStore表的清理,推荐值如下: autovacuum=true,autovacuum_max_workers=6,autovacuum_max_workers_hstore=3。 enable_disaster_cstore 指定了列存表是否开启细粒度容灾功能。该参数仅适用于COLVERSION为2.0的列存表,并且不能和enable_hstore同时打开。该参数仅8.2.0.100及以上集群版本支持。 默认值:off 设置该参数为on前需要先设置GUC参数enable_metadata_tracking=on,否则可能开启细粒度容灾功能失败。 SUB_PARTITION_COUNT 指定二级分区的个数。该参数用于设置在导入阶段二级分区个数。在建表时进行设置,建表后不支持修改。不建议用户随意设置该默认值,可能会影响导入和查询的性能。 取值范围:1~1024 默认值:32 DELTAROW_THRESHOLD 指定HStore表导入时小于多少行(SUB_PARTITION_COUNT * DELTAROW_THRESHOLD)的数据进入delta表。 取值范围:0~60000 默认值为60000 COLVERSION 指定存储格式的版本。 HStore表只支持2.0版本,enable_hstore_opt表支持2.0和3.0版本。 取值范围: 1.0:列存表的每列以一个单独的文件进行存储,文件名以relfilenode.C1.0、relfilenode.C2.0、relfilenode.C3.0等命名。 2.0:列存表的每列合并存储在一个文件中,文件名以relfilenode.C1.0命名。 默认值:2.0 DISTRIBUTE BY 指定表如何在节点之间分布或者复制。 取值范围: HASH (column_name ) :对指定的列进行Hash,通过映射,把数据分布到指定DN。 TO { GROUP groupname | NODE ( nodename [, ... ] ) } TO GROUP指定创建表所在的Node Group,目前不支持hdfs表使用。TO NODE主要供内部扩容工具使用,一般用户不应该使用。 PARTITION BY 指定HStore表的初始分区。 secondary_part_column 指定列存表二级分区列的列名,仅能指定一列作为二级分区列且只适用于HStore列存表。该参数仅8.3.0及以上集群版本支持,其中v3表不支持该参数,会走hashbucket剪枝。 被指定为二级分区的列不能被删除或者修改。 只能在建表时指定二级分区列,建表后不支持修改。 不建议指定分布列作为二级分区列。 指定二级分区列后,该表将会在DN上按照二级分区列进行逻辑上的HASH分区存储,从而有效提升该列等值查询的性能。 secondary_part_num 指定列存表二级分区的数量,仅适用于HStore列存表。该参数仅8.3.0及以上集群版本支持,v3表不支持该参数,会走hashbucket剪枝。 取值范围:1~32 默认值:8 只有secondary_part_column被指定时,该参数才可以指定。 只能在建表时指定二级分区的数量,建表后不支持修改。 不建议用户随意设置该默认值,否则会影响导入和查询的性能。
-
示例 创建简单的HStore表: CREATE TABLE warehouse_t1 ( W_WAREHOUSE_SK INTEGER NOT NULL, W_WAREHOUSE_ID CHAR(16) NOT NULL, W_WAREHOUSE_NAME VARCHAR(20) , W_WAREHOUSE_SQ_FT INTEGER , W_STREET_NUMBER CHAR(10) , W_STREET_NAME VARCHAR(60) , W_STREET_TYPE CHAR(15) , W_SUITE_NUMBER CHAR(10) , W_CITY VARCHAR(60) , W_COUNTY VARCHAR(30) , W_STATE CHAR(2) , W_ZIP CHAR(10) , W_COUNTRY VARCHAR(20) , W_GMT_OFFSET DECIMAL(5,2) )WITH(ORIENTATION=COLUMN, ENABLE_HSTORE=ON); CREATE TABLE warehouse_t2 (LIKE warehouse_t1 INCLUDING ALL);
-
列存表的Delta表差异 表1 HStore表与列存表的辅助Delta表差异 数仓类型 列存的delta表 HStore的delta表 表结构 与列存主表的表定义一致 与主表表定义不一样。 功能 用于暂存小批量insert的数据,满阈值后再merge到主表,避免直接insert到主表产生大量小CU。 用于持久化存储update/delete/insert信息。在故障拉起后用于恢复内存更新链等管理并发更新的内存结构。 缺陷 来不及merge导致delta表膨胀,影响查询性能,同时无法解决并发update的锁冲突问题 依赖后台常驻autovacuum来做merge操作。
-
语法格式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 CREATE TABLE [ IF NOT EXISTS ] table_name ({ column_name data_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 }
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格