SET/RESET
命令功能
此命令用于动态Add,Update,Display或Reset CarbonData参数,而无需重新启动driver。
命令格式
参数描述
| 
        参数  | 
      
        描述  | 
     
|---|---|
| 
        parameter_name  | 
      
        其值需要被动态添加(add),更新(update)或显示(display)的参数名称。  | 
     
| 
        parameter_value  | 
      
        将要设置的“parameter_name”的新值。  | 
     
注意事项
以下为分别使用SET和RESET命令进行动态设置或清除操作的属性:
| 
        属性  | 
      
        描述  | 
     
|---|---|
| 
        carbon.options.bad.records.logger.enable  | 
      
        启用或禁用bad record日志记录。  | 
     
| 
        carbon.options.bad.records.action  | 
      
        指定bad record操作,例如,强制(force),重定向(redirect),失败(fail)或忽略(ignore)。有关详细信息,请参阅•Bad Records处理:  | 
     
| 
        carbon.options.is.empty.data.bad.record  | 
      
        指定空数据是否被视为bad record。有关详细信息,请参阅 Bad Records处理:  | 
     
| 
        carbon.options.sort.scope  | 
      
        指定数据加载期间排序的范围。  | 
     
| 
        carbon.options.bad.record.path  | 
      
        指定需要存储bad record的HDFS路径。  | 
     
| 
        carbon.custom.block.distribution  | 
      
        指定是否使用Spark或CarbonData的块分布功能。  | 
     
| 
        enable.unsafe.sort  | 
      
        指定在数据加载期间是否使用不安全的排序。不安全的排序可减少数据加载操作期间的垃圾回收,从而实现更好的性能。  | 
     
| 
        carbon.si.lookup.partialstring  | 
      
        当参数设置为TRUE时,二级索引采用starts-with、ends-with、contains和LIKE分区条件字符串。 当参数设置为FALSE时,二级索引只采用starts-with分区条件字符串。  | 
     
| 
        carbon.input.segments  | 
      
        指定要查询的段ID。 此属性允许您查询指定表的指定段。CarbonScan将仅从指定的段ID读取数据。 语法: “carbon.input.segments. <database_name>. <table_name> = < list of segment ids >” 如果用户想在多线程模式下查询指定段,可使用CarbonSession.threadSet代替SET语句。 语法: “CarbonSession.threadSet ("carbon.input.segments. <database_name>. <table_name>","< list of segment ids >");” 
         说明: 
         不建议在carbon.properties文件中设置该属性,因为所有会话都包含段列表,除非发生会话级或线程级覆盖。  | 
     
示例
- 添加(Add)或更新(Update):
 - 显示(Display)属性值:
 - 显示段ID列表,段状态和其他所需详细信息的示例,然后指定要读取的段列表:
    
SHOW SEGMENTS FOR TABLE carbontable1;
SET carbon.input.segments.db.carbontable1 = 1, 3, 9;
 - 多线程模式查询指定段示例如下:
    
CarbonSession.threadSet ("carbon.input.segments.default.carbon_table_MulTI_THread", "1,3");
 - 在多线程环境中使用CarbonSession.threadSet查询段示例如下(以Scala代码为例):
    
def main(args: Array[String]) { Future { CarbonSession.threadSet("carbon.input.segments.default.carbon_table_MulTI_THread", "1") spark.sql("select count(empno) from carbon_table_MulTI_THread").show() } } - 重置(Reset):
 
系统响应
- 若运行成功,将记录在driver日志中。
 - 若出现故障,将显示在用户界面(UI)中。