会话属性管理器

    添加具有如下内容的文件使内置管理器可以读取JSON配置文件:

    此配置文件由匹配规则列表和默认情况下应应用的会话属性列表组成,每条匹配规则指定查询必须满足的条件列表。所有匹配规则都有助于构造会话属性列表。规则按指定的顺序应用。文件中较晚指定的规则将重写以前遇到的属性的值。

    • user(可选):用于匹配用户名的正则表达式。
    • source(可选):用于匹配源字符串的正则表达式。
    • queryType(可选):用于匹配提交的查询类型的字符串:
    • DATA_DEFINITION:更改/创建/删除模式/表/视图的元数据,以及管理预备语句、权限、会话和事务的查询。
      • DELETEDELETE查询。
    • DESCRIBEDESCRIBEDESCRIBE INPUTDESCRIBE OUTPUT以及SHOW查询。
      • EXPLAINEXPLAIN查询。
      • INSERT:和CREATE TABLE AS查询。
      • SELECTSELECT查询。
    • clientTags(可选):标签列表。要匹配,此列表中的每个标记都必须在客户端提供的与查询关联的标记列表中。
    • sessionProperties:与字符串键和值的映射。每个条目是系统或目录属性名和相应的值。值必须指定为字符串,而不管实际的数据类型是什么。

    示例

    • global资源组下运行的所有查询的执行时间限制必须为8小时。
    • 所有交互查询都路由到global.interactive组下的子组,并且执行时间限制为1小时(比对global的约束更严格)。
    • 所有ETL查询(标记为‘etl’)都被路由到global.pipeline组下的子组,并且必须用某些属性配置以控制编写器行为。

    这些要求可以用以下规则来表达:

    1. [
    2. {
    3. "group": "global.*",
    4. "sessionProperties": {
    5. "query_max_execution_time": "8h",
    6. },
    7. {
    8. "sessionProperties": {
    9. "query_max_execution_time": "1h"
    10. }
    11. },
    12. {
    13. "group": "global.pipeline.*",
    14. "clientTags": ["etl"],
    15. "sessionProperties": {
    16. "scale_writers": "true",
    17. "writer_min_size": "1GB"
    18. }
    19. }