描述
为便于定制各种不同的应用,在查询语法中引入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。 |
kvpair和配置同时存在的项,以kvpair优先;
多个kvpair之间用 ; 隔开,中间不允许有空格