命令语法
3.6.2.12 SET/RESET 命令功能命令功能
示例
CLEAN FILES FOR TABLE CarbonDatabase.CarbonTable;
上述命令将从物理上删除所有DELETE SEGMENT命令删除的segment和合并后的旧的 segment。
系统响应
可在driver日志中查看命令运行成功或失败。
3.6.2.12 SET/RESET 命令功能
此命令用于动态Add,Update,Display或Reset CarbonData参数,而无需重新启动 driver。
命令格式
● Add或Update参数值:
SET parameter_name=parameter_value
此命令用于添加或更新“parameter_name”的值。
● Display参数值:
SET parameter_name
此命令用于显示指定的“parameter_name”的值。
● Display会话参数:
SET
此命令显示所有支持的会话参数。
● Display会话参数以及使用细节:
SET -v
此命令显示所有支持的会话参数及其使用细节。
● Reset参数值:
RESET
此命令清除所有会话参数。
参数描述
表3-49 SET 参数描述
参数 描述
parameter_n
ame 其值需要被动态添加(add),更新(update)或显示(display)
的参数名称。
parameter_va
lue 将要设置的“parameter_name”的新值。
注意事项
以下为分别使用SET和RESET命令进行动态设置或清除操作的属性:
表3-50 属性描述
属性 描述
carbon.options.bad.records.logger.enab
le 启用或禁用bad record日志记录。
carbon.options.bad.records.action 指定bad record操作,例如,强制
(force),重定向(redirect),失败
(fail)或忽略(ignore)。有关详细信 息,请参阅•Bad Records处理:
carbon.options.is.empty.data.bad.recor
d 指定空数据是否被视为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):
SET enable.unsafe.sort=true
● 显示(Display)属性值:
SET enable.unsafe.sort
● 显示段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):
RESET
系统响应
● 若运行成功,将记录在driver日志中。
● 若出现故障,将显示在用户界面(UI)中。
ADATA_L OCK
COMPAC TION_L OCK
DROP_TA BLE_LOC K
DELETE_S EGMENT_
LOCK
CLEAN_FI LES_LOC K
ALTER_PA RTITI ON_LOC K
UPDATE_
LOCK
STREAMI NG_LOC K
CONCUR RENT_LO AD_LOCK
SEGME NT_LO CK
CREATE TABLE
- - -
-CREATE TABLE As SELECT
- - - COMPACT ION
- √ - - - - √ - -
-TABLE RENAME
- - -