{ ref: line.invoiceLineId, name: 'queryId', alias: 'resultId', caption: '明细 ID' }
| 配置 | 合同 |
|---|---|
| ref | 绑定来源列、表实例和维度角色,不因重命名改变 SQL 表达式 |
| name | QM 查询标识,columns、slice、groupBy、orderBy 使用此名称 |
| alias | SELECT 输出别名和结果对象键;已选列 orderBy 也可使用输出别名 |
| caption | 展示标题 |
上例选择 columns: ['queryId'],结果键为 resultId。name 与 alias 可以不同。
未提供 name 或 alias 的值各自沿用既有 ref 派生规则;仅改 name 不会自动改 alias。
alias 不自动成为 columns/slice/groupBy 的通用同义词;显式 condition 定义的既有解析保持不变。
SQL WHERE 不直接引用 SELECT alias,而是由引擎解析为条件绑定的源表达式。
具体维度列也适用上述合同:
{ ref: line.track.album.artist$id, name: 'albumArtistId', alias: 'albumArtistId' },
{ ref: line.track.album.artist$caption, name: 'albumArtistName', alias: 'artistLabel' }
查询使用 albumArtistId / albumArtistName,结果使用 albumArtistId / artistLabel。 具体 caption 命名投影按其来源 caption 进行筛选;既有默认路径和显式 condition 配置仍沿用原规则。
AS 是请求级投影;两者也不改变 QM 列 name 合同。fieldName 是查询标识;字段信息内既有的 name 仍是展示名称,
不与 QM 配置项 name 混为一谈。
仍可查询的旧维度兼容入口可以同时出现;已不能选择的普通属性原名称不再被当作公开字段推荐。
同时声明原属性与改名投影时,两者都保留。多模型 JSON 中不同模型的输出别名以
fields[fieldName].models[modelName].outputName 为准。QM_DIMENSION_NAME_OVERRIDE_IGNORED 警告。请分别配置具体 ID/caption 项。模型名称/输出配置改变后须按既有流程刷新模型;部署新引擎时,对受影响模型按现有运维流程 失效旧结果缓存,避免继续读取此前忽略 alias 时的返回键。
formula 项也遵守 name / alias 合同;省略 alias 时输出 name。请求中的
calc AS result 仅覆盖该次投影,不修改模型定义。不同的已选字段不能使用同一输出键。partitionBy、windowOrderBy 及传递计算字段。查询权限、物理列映射和
元数据可见性使用同一规则;窗口依赖不因未直接返回而免于权限检查。schema.columns[].name 对应实际 items 键;不同时附加 queryName。
模型元数据 fieldName 仍是查询标识,outputName 是输出键。部署兼容性:此前显式配置但被忽略的 formula alias 将生效,相关调用方应按 alias 读取结果; 此前可间接使用未授权窗口依赖的查询将被拒绝。部署时刷新模型并失效受影响的结果缓存。
使用封闭 JSON schema 的客户端需允许结果列上的可选 queryName;默认 name 与 alias 相同时不返回该属性。