跳转至

查询外挂方案参考脚本

接口描述

本接口用于获取外挂物化方案的 完整参考脚本(SQL)

  • create table(建物化表)

  • add partition(按分区增量创建)

  • drop table(删除表)

  • insert overwrite(按分区补数)

接口 URL

GET /anymetrics/api/v1/accelerate/plan/queryReferenceScript

请求参数

公共请求参数(HEADERS)

参数 类型 是否必选 最大长度 描述
tenant-id String 32 租户 ID
auth-type String 32 UID / TOKEN
auth-value String 32 与 auth-type 对应的认证值

公共参数获取方式

可在 Aloudata CAN 顶部导航「指标应用」→「API 集成」中获取。

image.png

请求参数

字段 类型 是否必选 描述
uuid String 物化方案的唯一 ID

请求示例

GET /anymetrics/api/v1/accelerate/plan/queryReferenceScript?uuid=ecfc2a9539a04ef49897a9b4e3d65e7f

响应参数说明

字段 类型 描述
referenceSchedule Object 外挂方案的调度参考配置(仅展示)
sqlScripts Object 按表名组织的 SQL 脚本(DDL + DML)

referenceSchedule 字段

字段 描述
cron 调度 cron 表达式
granularity 粒度(如 DAY)
updateUpperInterval 上界偏移量
updateLowerInterval 下界偏移量
isFullRefresh 是否全量

sqlScripts 字段结构

{
  "{tableName}": {
    "ddl": {
      "create_table": [{ "sql": "..." }],
      "add_partition": [{ "sql": "..." }],
      "drop_table": [{ "sql": "..." }]
    },
    "dml": {
      "insert_overwrite": [{ "sql": "..." }]
    }
  }
}

响应示例

{
  "data": {
    "referenceSchedule": {
      "cron": "0 0 0 * * ?",
      "granularity": "DAY",
      "updateUpperInterval": -1,
      "updateLowerInterval": -5,
      "isFullRefresh": true
    },
    "sqlScripts": {
      "table_name_demo": {
        "ddl": {
          "create_table": [
            {
              "sql": "CREATE TABLE `default_catalog`.`aloudatacan`.`table_name_demo` (`metric_time` DATE COMMENT '指标日期', `sum_order_amount` DECIMAL(38, 10) COMMENT 'order_amount求和', `dim` STRING COMMENT 'dim') ENGINE=OLAP PARTITION BY RANGE(`metric_time`)(PARTITION default1 VALUES LESS THAN (\"1970-01-01\")) DISTRIBUTED BY RANDOM;"
            }
          ],
          "add_partition": [
            {
              "sql": "ALTER TABLE `default_catalog`.`aloudatacan`.`table_name_demo` ADD PARTITION IF NOT EXISTS ${partition_name} VALUES [(${start_time}), (${end_time})) "
            }
          ],
          "drop_table": [
            {
              "sql": "drop table `default_catalog`.`aloudatacan`.`table_name_demo`"
            }
          ]
        },
        "dml": {
          "insert_overwrite": [
            {
              "sql": "SELECT `t7`.`day_col` AS `metric_time`, `t7`.`f2` AS `sum_order_amount`, `t7`.`username` AS `dim` FROM (...) ORDER BY (`t7`.`day_col`) DESC"
            }
          ]
        }
      }
    }
  }
}