云服务器内容精选

  • 示例 请求样例: { "job_id":"6b29eb77-4c16-4e74-838a-2cf7959e9203"} 成功响应样例: { "is_success":"true", "message": "check upload id success", "mask":[ "mask_str_01", "mask_str_02" ]} 调用API出错后,将不会返回上述结果,而是返回错误码和错误信息,详细介绍请参见错误码。
  • 执行Insert into后数据重复怎么办? 问题现象: 使用Hive和Datasource(除Hudi外)表在执行数据修改类命令(例如insert into,load data)时由于数据源不支持事务性,在系统故障或队列资源重启后,可能会导致数据重复或数据不一致等问题。 原因分析: 在数据的Commit阶段如果出现队列资源重启可能会导致数据已经被修复到正式目录中。如果执行的是Insert into语句,资源重启后触发重试就会有概率导致数据重复写入。 解决方案: 推荐使用具备ACID能力的Hudi类型数据源。 建议尽量使用insert overwrite这样幂等的语法而不是insert into等非幂等语法插入数据。 如果严格需求数据不能重复,建议在insert into后对表数据执行去重操作,防止数据重复。
  • 约束限制 insert overwrite语法不适用于“自读自写”场景,该场景因涉及数据的连续处理和更新,如果使用insert overwrite语法可能存在数据丢失风险。 "自读自写"是指在处理数据时能够读取数据,同时根据读取的数据生成新的数据或对数据进行修改。 使用Hive和Datasource(除Hudi外)表在执行数据修改类命令(例如insert into,load data)时由于数据源不支持事务性,在系统故障或队列资源重启后,可能会导致数据重复或数据不一致等问题。 为了避免这种情况,建议优先选择支持事务性的数据源,如Hudi类型数据源,该类数据源具备ACID(Atomicity、Consistency、Isolation、Durability)能力,有助于确保数据的一致性和准确性。 了解更多:执行Insert into后数据重复怎么办?
  • 语法格式 将SELECT查询结果插入到表中 12 INSERT INTO [TABLE] [db_name.]table_name [PARTITION part_spec] select_statement; 12 INSERT OVERWRITE TABLE [db_name.]table_name [PARTITION part_spec] select_statement; part_spec: : (part_col_name1=val1 [, part_col_name2=val2, ...]) 将某条数据插入到表中 12 INSERT INTO [TABLE] [db_name.]table_name [PARTITION part_spec] VALUES values_row [, values_row ...]; 12 INSERT OVERWRITE TABLE [db_name.]table_name [PARTITION part_spec] VALUES values_row [, values_row ...]; values_row: : (val1 [, val2, ...])
  • 关键字 表1 INSERT关键字说明 参数 描述 db_name 需要执行INSERT命令的表所在数据库的名称。 table_name 需要执行INSERT命令的表的名称。 part_spec 指定详细的分区信息。若分区字段为多个字段,需要包含所有的字段,但是可以不包含对应的值,系统会匹配上对应的分区。单表分区数最多允许100000个。 select_statement 源表上的SELECT查询(支持 DLI 表、OBS表)。 values_row 想要插入到表中的值,列与列之间用逗号分隔。
  • 示例 导入数据前已参考创建OBS表或者创建DLI表中的示例描述创建对应的表。 将SELECT查询结果插入到表中 使用DataSource语法创建一个parquet格式的分区表 CREATE TABLE data_source_tab1 (col1 INT, p1 INT, p2 INT) USING PARQUET PARTITIONED BY (p1, p2); 插入查询结果到分区 (p1 = 3, p2 = 4)中 INSERT INTO data_source_tab1 PARTITION (p1 = 3, p2 = 4) SELECT id FROM RANGE(1, 3); 插入新的查询结果到分区 (p1 = 3, p2 = 4) 中 INSERT OVERWRITE TABLE data_source_tab1 PARTITION (p1 = 3, p2 = 4) SELECT id FROM RANGE(3, 5); 将某条数据插入表中 使用Hive语法创建一个parquet格式的分区表 CREATE TABLE hive_serde_tab1 (col1 INT, p1 INT, p2 INT) USING HIVE OPTIONS(fileFormat 'PARQUET') PARTITIONED BY (p1, p2); 插入两条数据到分区 (p1 = 3, p2 = 4)中 INSERT INTO hive_serde_tab1 PARTITION (p1 = 3, p2 = 4) VALUES (1), (2); 插入新的数据到分区 (p1 = 3, p2 = 4) 中 INSERT OVERWRITE TABLE hive_serde_tab1 PARTITION (p1 = 3, p2 = 4) VALUES (3), (4);
  • 响应 响应样例 {"success": true,"returnData": [{"id": "f16604eed62c49a48229323a53879094","code": "150100","name": "呼和浩特市","parentCode": "150000","level": "city","lasted": "false"},{"id": "e960e313091d4fa997d54a24ea88889a","code": "150200","name": "包头市","parentCode": "150000","level": "city","lasted": "false"},{"id": "90f4ab795e4d457a902b4df84141a9a9","code": "150300","name": "乌海市","parentCode": "150000","level": "city","lasted": "false"}]} 要素说明 参数名 参数类型 备注 success Boolean 请求是否成功。 returnData object 返回值。 id String ID。 code String 编码。 name String 名称。 parentCode String 父编码。 level String 等级参数。 lasted String 是否最后一级。
  • 请求 请求样例 https://console.ulanqab.huawei.com/naiedatacollectsecurity/softcomai/datalake/collection/v1.0/countryCityCode/search{"id": "123","code": "100000","name": "北京","parentCode": "150000","level": "city","lasted": "true"} 参数说明 参数名 是否必选 参数类型 备注 id 否 String ID。 code 否 String 编码。 name 否 String 名称。 parentCode 否 String 父编码。 level 否 String 等级参数。 lasted 否 String 是否最后一级。