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)中。