kvpair子句用法

描述

为便于定制各种不同的应用,在查询语法中引入kvpair,即key-value对。

语法格式

kvpair={key}:{value};{key}:{value};....

示例

query=SELECT brand, COUNT(*) FROM phone &&kvpair=trace:INFO;formatType:full_json

支持的kvpair子句列表

参数名

取值范围

默认值

参数说明

trace

DISABLE, FATAL,

ERROR,

WARN,

INFO,

DEBUG, TRACE1, TRACE2, TRACE3, SCHEDULE, NOTSET

DISABLE

在前端输出查询过程中的相关信息

formatType/format

string, json,full_json, flatbuffers

string

返回结果类型

, json建议使用full_json格式,速度快建议为flatbuffers

timeout

ulimit

由sql配置决定

query查询超时限制,单位ms

searchInfo

true, false

false

是否返回search info信息

sqlPlan

true, false

false

是否返回sql plan信息

forbitMergeSearchInfo

true, false

false

qrs不合并各列search返回的searchInfo, 用于查各列的详细信息

resultReadable

true, false

false

在format为json/full_json时,json中会加一些换行增加可读性。

parallel (

Ha3 < 3.8.0适用

)

1-16

1

search上开启多路并行优化。

Ha3 >= 3.8.0版本请使用新的实现

注意:新老实现不兼容,请勿同时启用。

parallelTables (

Ha3 < 3.8.0适用

)

多个table间用'|'分隔,

配合并行使用,表示哪些table可以支持拆分并行,主要用于join场景。

databaseName

指定默认dbName,用于qrs访问对应的search,qrs也可以同时访问多个search,需要在query子句的table前拼上dbName.tableName。

catalogName

default

指定catalog名字,可以于时序catalog名为table名的场景。

lackResultEnable

true, false

false

允许结果缺列,例如一列rpc超时。

iquan.optimizer.debug.enable

true/false

false

是否开启iquan的优化阶段的debug功能。

iquan.optimizer.cte.enable

true/false

false

是否开启CTE算子合并优化,开启后会自动合并相同的算子。

iquan.optimizer.sort.limit.use.together

true/false

true

是否强制要求order by后一定要有limit。

iquan.optimizer.force.limit.enable

true/false

true

是否要求iquan强制添加limit。

iquan.optimizer.force.limit.num

ulimit

100

如果开启了iquan.optimizer.force.limit.enable, iquan将这个选项的值作为limit的大小

iquan.optimizer.join.condition.check

true/false

true

是否强制要求join的字段为hash字段

iquan.optimizer.force.hash.join

true/false

false

是否强制让所有的join节点都变为hash join

iquan.plan.format.version

string

""

用来告知iquan, 当前产出的执行计划的格式版本。目前为plan_version_0.0.1, 用户可以不制定这个值。

iquan.plan.format.type

json

json

iquan产出的执行计划的格式。目前只支持json。

iquan.plan.prepare.level

rel.post.optimize

jni.post.optimize

jni.post.optimize

和cache或者动态参数配合使用。推荐jni.post.optimize.

当用户开启了cache, iquan会将指定阶段的结果放入缓存中;

当用户开启了动态参数, iquan会对指定阶段的结果进行动态参数替换。

rel.post.optimize: 优化后的结果,在Java代码中

jni.post.optimize: JNI调用返回后的结果,在Cpp代码中。

iquan.plan.cache.enable

true / false

false

是否将当前的结果放入cache中。

exec.source.id

""

指定串访问特定行,多exchange时有用,默认按时间生成。

exec.source.spec

""

指定业务方来源,请按照指定格式填写。

TPP推荐场景:tpp-appid-abid-solutionid-ip。

其他场景:产品名-系统名-IP。

dynamic_params

二维数组

填入要替换的具体值。

注意:类型一致

注意:动态参数是一个二维数组;其中每一个一维数组对应一条SQL。

urlencode_data

true / false

false

如果对dynamic_params的内容做了urlencode,需要设置为true。

  1. kvpair和配置同时存在的项,以kvpair优先;

  2. 多个kvpair之间用 ; 隔开,中间不允许有空格