You need to enable JavaScript to run this app.
文档中心
大数据研发治理套件(私有化)

大数据研发治理套件(私有化)

复制全文
指标服务
Thrift协议
复制全文
Thrift协议

Server

include "../../../base.thrift"
include "common.thrift"
include "abase_service_idl.thrift"
 
namespace py data.dp.metric_service
namespace go data.dp.metric_service
namespace java com.bytedance.nuwa.data.dp.metric_service
 
// 取数时间区间 Fetching time interval
struct TimeRange {
    1: required i64              startTime         // 开始时间, 时间戳
    2: required i64              endTime           // 结束时间, 时间戳
    3: optional common.DateType  dateType          // 日期类型
    4: optional bool             returnLatestDate  // 返回最新有数分区数据,strartTime与endTime为0的情况生效
    5: optional string           timePeriodEn      // 时间周期En,业务指标与应用指标取数需要,因为目前无法做到dateType统一,后续统一可以删除
    6: optional i32              recentDays        // 在底表就绪时间往前偏移N天,自动填充startTime 和 endTime。 strartTime与endTime为0的情况生效
    7: optional string           startTimeStr      // 开始时间, 格式为"2006-01-02 15:04:05",startTime为空生效,主要for国际化场景
    8: optional string           endTimeStr        // 结束时间,格式为"2006-01-02 15:04:05",endTime为空生效,主要for国际化场景
}
 
// 返回结构体算子结果定义 Return structure operator result definition
struct BasicOpValueParam {
    1: required string                  opCode      // 算子的Code
    2: required string                  opName      // 算子的名字
    3: optional string                  value       // 数值
    4: required common.PreDataTypeEnum  dataType    // 数值类型, 具体参见文档:通用取数平台-枚举值
    5: optional MetricUnit              metricUnit  // 指标单位
}
 
 
// 指标信息 Indicator information
struct MetricParam {
    1: required string                 code                                            // 指标code
    2: optional common.MetricTypeEnum  metricType = common.MetricTypeEnum.TECH_METRIC 
    50: optional list<string>          operatorList                                   
    51: optional i64                   modelId                                         // 指定指标绑定的模型modelId, 该字段只对技术指标生效(metricType = 1)
    52: optional i64                   topicId                                         // 专题ID,替换GetMetricDataRequest.topicIds
    70: optional map<string, string>   operator2AliasMap                               // 算子对应别名的映射,别名由用户定义
    71: optional map<string, string>   placeHolderValues                               // sql模型占位符的实际值
}
 
// 模型信息 model info
struct ModelInfo {
    1: string  modelId    // 模型ID
    2: string  modelName  // 模型名称
}
 
 
// 维度信息 Dimension information
struct DimensionParam {
    1: required string                    dimensionCode    // 维度code
    // 50: optional list<MultiFilter>     filter           // 当前维度取值时需要的过滤条件
    // 51: optional bool                  isAll            // 暂时不支持、待讨论,字段解释:是否取整体数据(true: dimensionCode='整体', false: dimensionCode!='整体')【与dimensionValues二选一】
    // 52: optional list<DimensionParam>  drillDimensions  // 暂时不支持、待讨论,字段解释:下钻的维度目前(仅在下钻表格接口/下钻表格下载接口中被用到,下钻维度可以有其单独的过滤条件)
}
 
 
// 指标服务过滤结构体
struct MultiFilter {
    1: string                                fieldName        // 过滤字段名(维度过滤传维度名称, 指标过滤传[指标名.算子名])
    2: string                                value            // 值, 会根据值类型解析出相应的数据类型, 只支持简单维度, 列表类型
    3: common.FilterOpEnum                   op               // 支持简单的操作符: =,>,<,>=,<=,!=,in
    4: list<MultiFilter>                     multiFilterList  // 嵌套过滤
    5: common.LogicOperator                  logicOperator    // 逻辑操作符
    50: optional common.ValueTypeEnum        valueType        // 值类型,如果不传的话,默认是string、list<string> 服务内部根据维度的信息自动补全
    // 50: optional common.FilterSearchType  searchType = 0   // 暂时不支持,待讨论,字段解释:过滤类型, 默认参与取数(暂时不支持,待讨论)
}
 
struct NuwaExtraInfo {
    1: optional list<abase_service_idl.AbaseServiceModelMeta>            modelExtraInfos       // 模型元信息
    2: optional list<abase_service_idl.AbaseServiceMetricQueryCodeMeta>  queryCodeExtraInfos   // queryCode元信息
    3: optional map<string, abase_service_idl.MetricModelBasicInfo>      techCodeToModelInfos  // 技术指标对应的基础模型信息
    4: optional list<abase_service_idl.AbaseServiceAutoModelMeta>        autoModelExtraInfos   // 自动建模模型元信息
    5: optional list<abase_service_idl.AbaseServiceThemeMeta>            themeExtraInfos       // 专题的元信息
}
 
struct AeolusExtraInfo {
    1: optional map<i64, string>  datasetId2ClusterMap  // 数据集ID到集群的映射
}
 
struct ExtraInfo {
    1: optional NuwaExtraInfo    nuwaExtraInfo   
    2: optional AeolusExtraInfo  aeolusExtraInfo 
}
 
struct ExtraProp {
    1: optional bool        printSQL               // 是否打印SQL, 默认值: true, 打印SQL
    2: optional bool        returnZeroIfNull       // 默认值:false,如果数据字段为null,将数据设置为0或者空字符串,默认为false
    3: optional bool        skipCache              // 默认值:false,如果为true的话,默认会跳过各类缓存
    4: optional bool        printModelInfo         // 返回结果是否打印模型信息
    5: optional bool        enableDimReplace       // 默认值:false 启用维度key-value 反查
    6: optional bool        returnDimValue         // 默认值:false 维度最终结果是否转换为value
    7: optional bool        isMetaFromCtx          // 是否是发布前的测试环境的请求,元信息从上下文获取 默认值false
    10: optional bool       returnTotalRows        // 排除原始sql中limit offset等参数,返回sql拿到的数据总行数, 暂时只有调用GetMetricDataV2接口时支持,限制在单模型 value算子场景
    11: optional bool       useMetricDateDivision  // 多指标场景下,指标使用自身底表的时间分区
    50: optional LuopanBiz  luopanBiz              // 罗盘业务场景使用, 其他业务不需要填写参数
    60: optional OSBiz      osBiz                  // One Service业务场景使用, 其他业务不需要填写参数
}
 
struct LuopanBiz {
    1: optional bool  isIncreAbaseTable  // 默认值false, 如果为ture, 则走罗盘Abase增量表查询优化特殊逻辑, 保留字段
    2: optional bool  isLuopanScene      // 默认值false, 如果为true, 走罗盘场景的定制化逻辑
}
 
struct OSBiz {
    1: optional string  hintsForOS  // 增加hint字段,用于支持OS在non-api取数场景下,能够区分sql pattern,暂时用于国际化电商doris取数
}
 
struct MetricDataExtraInfo {
    1: optional string                        extra     // 冗余信息
    2: optional map<string, list<ModelInfo>>  modelMap  // 实际执行的SQL,所关联的模型信息, key: 算子,value: 返回取数相关的模型信息
}
 
struct MetricData {
    1: required list<TableRow>             rows            // 表格的行数据
    2: optional i64                        total           // 总行数, 有分页查询时返回
    3: optional map<string, list<string>>  sqlMap          // 实际执行的SQL, key: 算子,value: sql列表。只在特殊情况下返回
    5: optional map<string, ColumnInfo>    columnInfoList  // 新增字段:指标的基本信息,每一个Column的信息
    10: optional i64                       totalRows       // 分页用 只支持单模型下 value算子数据的总行数
    50: optional MetricDataExtraInfo       extra          
}
 
struct TableRow {
    1: required string                           code      // 行数据的唯一code
    2: required string                           name      // 行数据的展示名
    50: optional string                          value     // value值(比如维度值,用来做排序)
    51: optional string                          dimCode   // 维度字段code(多个维度以连字符串联)
    52: optional map<string, BasicOpValueParam>  values    // 列数据列表,key生成规则:维度code、指标
    // 53: optional list<TableRow>               children  // 暂时不支持,待讨论,字段解释:下钻的行数据
}
 
// 描述返回结构体的行信息 Row information describing the returned structure
struct ColumnInfo {
    1: required string                columnName 
    2: required common.ValueTypeEnum  valueType  
}
 
 
// 指标取数服务请求 Indicator fetch service request
struct GetMetricDataRequest {
    1: required string                  businessId      // Nuwa业务线ID
    2: required TimeRange               currentTime     // 当前时间
    3: required list<MetricParam>       metricList      // 指定指标列表(必须要是注册的指标列表子集, 不传返回所有注册的指标)
    50: optional list<i64>              topicIds        // 禁用,存量迁移后会下线!!!!!Nuwa主题ID,下沉到指标粒度(MetricParam.topicId)
    51: optional TimeRange              compareTime     // 对比时间
    52: optional TimeRange              chartTime       // 指标卡中趋势图的时间范围
    53: optional list<MultiFilter>      filters         // 过滤条件
    54: optional list<DimensionParam>   dimensionList   // 维度配置列表
    55: optional list<common.Sort>      sort            // 排序
    56: optional common.Page            page            // 分页(需要分页再传)
    57: optional list<MultiFilter>      metricFilters   // 指标过滤
    58: optional ExtraProp              extraProp       // 额外属性
    59: optional ExtraInfo              extraInfo       // 新增字段,用于存放通用取数的元信息
    60: optional common.EventTrackInfo  eventTrackInfo  // 埋点信息
    254: optional list<common.Option>   options         // 取数服务支持的各类参数
    255: optional base.Base             base           
}
 
// 指标取数返回体 Index fetch return body
struct GetMetricDataResponse {
    1: required i32              code      
    2: required string           msg       
    3: optional string           inner_msg 
    4: optional MetricData       data      
    255: required base.BaseResp  BaseResp  
}
 
// 检测指标是否可路由的request
struct CheckMetricRoutableRequest {
    1: required list<MetricParam>      metricList     // 目前此接口只支持应用支持
    2: required string                 businessId     // Nuwa业务线ID
    50: optional list<DimensionParam>  dimensionList  // 维度配置列表
    51: optional string                timePeriodEn   // 时间周期En,业务指标与应用指标取数需要,因为目前无法做到dateType统一,后续统一可以删除
}
 
struct CheckMetricRoutableData {
    1: MetricParam  metric     
    2: bool         isRoutable 
    3: Model        model      
}
 
struct CheckMetricRoutableResponse {
    1: required i32                            code     
    2: required string                         msg      
    3: required list<CheckMetricRoutableData>  data     
    255: required base.BaseResp                BaseResp 
}
 
struct TimeRangeForOS {
    1: required string           startTime         // 开始时间, 可读时间,时区由数仓确定
    2: required string           endTime           // 结束时间, 可读时间,时区由数仓确定
    3: optional common.DateType  dateType          // 日期类型
    4: optional bool             returnLatestDate  // 返回最新有数分区数据,strartTime与endTime为0的情况生效
    5: optional string           timePeriodEn      // 时间周期En,业务指标与应用指标取数需要,因为目前无法做到dateType统一,后续统一可以删除
}
 
// 指标取数服务请求 One Service专用 Indicator fetch service request, one service use only
struct GetMetricDataRequestForOS {
    1: required string                 businessId     // Nuwa业务线ID
    2: required TimeRangeForOS         currentTime    // 当前时间
    3: required list<MetricParam>      metricList     // 指定指标列表(必须要是注册的指标列表子集, 不传返回所有注册的指标)
    50: optional list<i64>             topicIds       // Nuwa主题ID
    53: optional list<MultiFilter>     filters        // 过滤条件
    54: optional list<DimensionParam>  dimensionList  // 维度配置列表
    55: optional list<common.Sort>     sort           // 排序
    56: optional common.Page           page           // 分页(需要分页再传)
    57: optional list<MultiFilter>     metricFilters  // 指标过滤
    58: optional ExtraProp             extraProp      // 额外属性
    // 59: optional ExtraInfo          extraInfo      // 新增字段,用于存放通用取数的元信息
    255: optional base.Base            base          
}
 
// 路由的req接口
struct GetMetricStoreRequest {
    1: i64                                                   businessId                           // 业务线ID
    2: list<MetricStoreRequestContent>                       metricStoreRequestList               // 路由的指标信息
    3: optional i64                                          themeID                              // 主题ID,内外都填情况,以内部为准
    4: optional list<abase_service_idl.ModelDataSourceType>  modelType                            // 模型信息
    5: optional list<string>                                 clusters                             // 库信息
    6: optional bool                                         latestDataPrefer                     // 最近公共有数一天优先
    7: optional common.ApplicationEnum                       app = common.ApplicationEnum.COMMON  // 区分不同的产品走不同的策略
    8: optional list<ModelEleConstraint>                     modelConstraint                      // 模型元素的约束,多个约束之间为且的关系
    50: optional ExtraInfo                                   extraInfo                            // 新增字段,用于存放路由相关元信息
    51: optional common.EventTrackInfo                       eventTrackInfo                       // 埋点信息
    255: optional base.Base                                  base                                
}
 
// 多个模型元素之间的约束,目前要求必须在同个模型
struct ModelEleConstraint {
    1: list<ModelEle>  modelEleList 
}
 
// 模型元素约束
struct ModelEle {
    1: string               code          // 模型元素标识
    2: common.ModelEleEnum  modelEleType  // 模型元素类型
}
 
struct MetricStoreRequestContent {
    1: string                                 code                                            // 指标英文名
    2: optional common.MetricTypeEnum         metricType = common.MetricTypeEnum.TECH_METRIC  // 指标类型
    3: optional string                        timePeriod                                      // 指标时间周期英文名,metricType为业务指标时,把时间周期拼接得到技术指标名
    4: optional list<string>                  dimensionList                                   // 维度英文名列表,代表发生聚合(group by)、点查(dim1 = x 或者 dim2 in (x), 且是第一层的连续and)的维度
    5: optional bool                          isAdditive                                      // 是否走累加逻辑, 为true代表会走累加逻辑判读,false代表跳过累加性判断
    6: optional list<common.DimensionFilter>  dimensionFilterList                             // 支持的维度值范围过滤:维度绑定模型时支持的维度值范围必须包含参数内的维度值列表; dimensionFilterList与dimensionList的差集,会作为聚合维度的判断
    7: optional i64                           modelID                                         // 指定模型路由,通过模型ID指定,当ModelID和osLogicalTable都填写的时候,以ModelID为准
    8: optional string                        osLogicalTable                                  // OS逻辑表
    9: optional i64                           themeID                                         // 主题ID,内外都填情况,以内部为准
    10: optional map<string, string>          placeHolderValues                               // sql模型占位符的实际值
    255: optional string                      eleUniqID                                       // 请求唯一标识
}
 
// 检测指标是否可路由的Response
struct GetMetricStoreResponse {
    1: list<MetricModelData>     data      // 指标路由结果
    255: required base.BaseResp  BaseResp 
}
 
struct MetricModelData {
    1: string                  techMetricName    // 技术指标中文名
    2: string                  techMetricNameEN  // 技术指标英文名
    3: string                  bizMetricName     // optional:如果是规范版本 业务指标中文名
    4: string                  bizMetricNameEN   // optional:如果是规范版本 业务指标英文名
    5: common.MetricLogicType  metricLogicType   // optional:如果是规范版本 DERIVED or COMPOSITE,如果是DERIVED,只需要看OSLogicTable和MetricStoreInfo就行了,如果是COMPOSITE,需要看CompositeLogic、CompositeLogicEN和构成元素的BizMetricStoreInfoList
    6: MetricStoreData         metricData        // 指标与模型的绑定信息
    7: Model                   model             // 模型元信息
    8: string                  compositeLogic    // optional:如果是规范版本 复合指标的构建逻辑
    9: string                  compositeLogicEN  // optional:如果是规范版本 复合指标的构建逻辑英文
    10: list<MetricModelData>  metricStoreData   // optional:如果是规范版本 复合指标组成元素的绑定信息
    30: string                 eleUniqID         // 查询元素唯一标识
    31: i64                    eleRequestStatus  // 查询元素状态
    32: string                 eleRequestInfo    // 查询元素结果
    33: string                 code              // 与入参保持一致
    34: string                 timePeriod        // 与入参保持一致
}
 
struct MetricStoreData {
    1: string                                expression       // 指标表达式
    2: DataType                              dataType         // 指标数据类型
    3: string                                queryCode        // 指标QueryCode
    4: abase_service_idl.MetricTimeDelay     metricTimeDelay  // 指标时延
    5: abase_service_idl.MetricUnit          metricUnit       // 指标单位
    6: abase_service_idl.ModelTimeFieldMeta  businessTime     // 指标的业务时间
    7: string                                filterCondition  // 指标的过滤条件
    8: list<MultiFilter>                     metricStdFilter  // 将指标过滤条件,转换为标准的结构体
    9: list<abase_service_idl.PropertyMeta>  properties       // 指标的高级属性,透传
    10: optional i64                         aeolusFieldId    // 风神的字段id
}
 
struct MetricUnit {
    // 指标单位,待补充
    1: string  unitType 
    2: string  unit     
}
 
struct Model {
    1: string                                          modelID               // 模型ID
    2: optional string                                 oSLogicTableId        // OS逻辑表ID
    3: optional string                                 oSLogicTableName      // OS逻辑表名
    4: abase_service_idl.ModelEngineMeta               engine                // 引擎相关配置信息
    9: optional list<SupportDimension>                 supportDimensionList  // 支持维度
    10: optional bool                                  isSql                 // 是否走view
    11: optional string                                sql                   // 具体拼接的SQL View 主要for风神场景
    13: optional string                                readyTime             // 就绪时间
    14: optional list<abase_service_idl.PropertyMeta>  properties            // 模型高级属性
    15: optional string                                modelQueryFilter      // 模型查询约束
    16: list<MultiFilter>                              modelQueryStdFilter   // 将指标过滤条件,转换为标准的结构体
    17: optional list<DimCubeValue>                    cubeConfig            // cube模型的cube配置信息
}
 
struct SupportDimension {
    1: string             id                // 维度ID
    2: string             name              // 维度英文名
    3: string             nameEN            // 维度Code
    4: string             expression        // 维度在底表的表达式
    5: optional i64       dimId             // 关联维度id
    6: optional DataType  dataType          // 维度的实际类型
    7: optional i64       aeolusFieldId;    // 风神字段id
    8: optional string    aeolusFieldName;  // 风神字段名
}
 
struct DimTable {
    1: i64      DimID            
    2: string   DimNameEN        
    3: string   OSLogicTableId   
    4: string   OSLogicTableName 
    5: string   Cluster          
    6: string   DBname           
    7: string   Table            
    8: string   TableType         // 目前只能是Clickhouse
    10: string  KeyDimNameEN     
    20: bool    Over1000Rows     
    21: string  KeyField         
    22: string  ValueField       
    30: string  DateField         // 时间分区字段
    31: string  DateFieldType     // 时间分区字段格式
    50: string  ReadyTime         // 就绪时间
}
 
struct DimCubeValue {
    1: string               DimensionName 
    2: common.FilterOpEnum  Op            
    3: string               CubeValue     
}
 
struct CheckModelConfigResponse {
    1: required i32                code             
    2: required string             msg              
    3: optional CheckResult        modelCheckResult 
    4: optional list<CheckResult>  checkResult      
    255: required base.BaseResp    BaseResp         
}
 
struct CheckResult {
    1: required string                   code               // 检查的code(指标/维度)
    2: required bool                     checkPass          // 检查是否通过
    3: optional list<CheckFailedDetail>  checkFailedDetail  // 检查不通过详情
    4: optional list<string>             useFields          // code使用到的字段
}
 
struct CheckFailedDetail {
    1: required CheckFailedType  checkFailedType   // 检查不通过类型
    2: optional string           checkFailedField  // 检查失败的字段
    3: optional string           checkFailedMsg    // 检查失败详情(sql语法异常)
}
 
enum CheckFailedType {
    SQL_SYNTAX_EXCEPTION    = 1    // sql语法异常,详情见checkFailedMsg
    FIELD_NOT_FOUND         = 2    // 字段不存在, 字段见checkFailedField
    FIELD_INVALID_DATA_TYPE = 3    // 字段数据类型不正确,字段见checkFailedField
}
 
struct CheckModelConfigRequest {
    1: optional string           modelFilterCondition  // 模型过滤条件
    2: optional list<CheckItem>  checkItemList         // 检查项
    3: required ModelTableData   modelTableData        // 底表信息
}
 
struct CheckItem {
    1: required string  code             // 检查code
    2: required string  expression       // code对应的表达式
    3: optional string  filterCondition  // code过滤表达式
}
 
struct ModelTableData {
    1: required string                                 tableName            // 底表名
    2: required abase_service_idl.ModelDataSourceType  dataSourceType       // 底表类型
    3: optional list<TableField>                       tableFields          // 字段详情
    4: optional string                                 osPhysicalTableType  // os逻辑表底表类型
}
 
enum DataType {
    INT,
    DOUBLE,
    VARCHAR,
    DATE,
    DATETIME,
    TIMESTAMP,
    BOOLEAN
}
 
struct TableField {
    1: required string    fieldName  // 字段名
    2: required DataType  dataType   // 字段类型
}
 
struct GetMetricReadyTimeResponse {
    1: required i32                       code         
    2: required string                    msg          
    3: optional i64                       readyTime     // 输入的所有指标的就绪时间, 该值为所有指标路由模型的最小就绪时间(保证该日期所有指标都有数)
    4: optional string                    readyTimeStr  // 输入的所有指标的就绪时间, 该值为所有指标路由模型的最小就绪时间(保证该日期所有指标都有数),格式为"2006-01-02 15:04:05"
    5: optional list<QueryReadyTimeData>  data          // 各个指标的就绪时间
    255: required base.BaseResp           BaseResp     
}
 
struct GetMetricReadyTimeRequest {
    1: required string                 businessId     // Nuwa业务线ID
    2: required TimeRange              currentTime    // 当前时间
    3: required list<MetricParam>      metricList     // 指定指标列表(必须要是注册的指标列表子集, 不传返回所有注册的指标)
    50: optional list<MultiFilter>     filters        // 过滤条件
    51: optional list<DimensionParam>  dimensionList  // 维度配置列表
    52: optional i64                   topicId       
    255: optional base.Base            base          
}
 
struct GetMetricReadyTimeRequestForOS {
    1: required string                 businessId     // Nuwa业务线ID
    2: required TimeRangeForOS         currentTime    // 当前时间
    3: required list<MetricParam>      metricList     // 指定指标列表(必须要是注册的指标列表子集, 不传返回所有注册的指标)
    50: optional list<MultiFilter>     filters        // 过滤条件
    51: optional list<DimensionParam>  dimensionList  // 维度配置列表
    52: optional i64                   topicId       
    255: optional base.Base            base          
}
 
struct MetricBindModelInfoRequest {
    1: required i64                                          TopicID                              // 自定义主题ID
    2: optional list<abase_service_idl.ModelDataSourceType>  ModelTypes                           // 要求的模型类型
    3: optional common.ApplicationEnum                       App = common.ApplicationEnum.COMMON  // 区分不同的产品走不同的策略
    255: optional base.Base                                  Base                                
}
 
 
struct MetricBindModelInfoResponse {
    1: list<MetricBindModelInfo>  MetricBindModelInfos  // 指标绑定的模型信息
    255: required base.BaseResp   BaseResp             
}
 
struct MetricBindModelInfo {
    1: Metric       Metric     // 概念指标
    2: list<Model>  ModelList  // 指标绑定模型列表
}
 
struct Metric {
    1: common.MetricLogicType                       MetricType        // 指标类型
    2: i64                                          MetricId          // 指标id
    3: string                                       Name              // 指标名称
    4: string                                       NameEN            // 指标英文名
    5: string                                       Alias             // 别名
    6: string                                       Desc              // 指标业务定义
    7: list<string>                                 Tags              // 标签
    8: string                                       AliasEN           // 英文别名
    // 9: optional bool                             AllModelAdditive  // 所有模型都可累加(仅技术指标存在)
    // 10: optional list<Metric>                    TechMetrics       // 技术指标列表(仅百宝箱搜索会返回)
    11: optional string                             TimePeriodNameEN  // 时间周期(仅技术指标存在)
    // 12: optional list<BizMetricAPPRegisterInfo>  AppRegisterInfos  // 应用登记信息 无DimensionInfoList(仅数据管家会返回)
    // 13: optional list<SupportDimension>          DimensionInfos    // 支持维度信息(仅数据管家会返回)
}
 
// 通过取数的元素获取就绪时间
struct GetQueryReadyTimeByEleReq {
    1: required i64                            businessId     // Nuwa业务线ID
    2: optional list<MetricParam>              metricList     // 指定指标列表(必须要是注册的指标列表子集, 不传返回所有注册的指标)
    50: optional list<common.DimensionFilter>  dimensionList  // 维度配置列表,无实际请求的in = 的值,直接留空
    51: optional i64                           topicId        // 专题信息,metricList内有专题的优先级大于此配置
}
 
struct QueryReadyTimeData {
    1: i64               index         // 与请求的metricList保持一致
    2: string            code          // 指标code
    50: optional i64     readyTime     // 此指标路由模型的最小就绪时间(保证该日期所有指标都有数)
    51: optional string  readyTimeStr  // 此指标路由模型的最小就绪时间(保证该日期所有指标都有数),格式为"2006-01-02 15:04:05"
}
 
 
struct GetMetricStoreRequestInner {
    1: list<RouterReq>       reqs      
    2: RouterParams          params    
    100: optional ExtraInfo  extraInfo  // 外部传入的信息
    101: optional bool isMetaFromCtx // 是否从ctx中获取元信息
    255: optional base.Base  Base
}
 
struct RouterParams {
    1: required i64                                 nuwaBusinessID   
    2: list<string>                                 clusters         
    3: list<abase_service_idl.ModelDataSourceType>  modelType        
    4: list<ModelEleConstraint>                     modelConstraint  
    5: bool                                         isNeedExtendDim  
    6: bool                                         latestDataPrefer 
}
 
struct RouterReq {
    1: required string                 code                
    2: required common.MetricTypeEnum  metricType          
    3: optional string                 timePeriod          
    4: list<string>                    dimensionList       
    5: list<common.DimensionFilter>    dimensionFilterList 
    6: optional i64                    modelID             
    7: optional bool                   isAdditive          
    8: optional bool                   isTimeGroup         
    9: optional i64                    themeID             
    10: string                         eleUniqID           
    11: optional map<string, string>   placeHolderValues    // sql模型占位符的实际值
}
 
 
service DataMetricService {
    // 指标取数接口 indicator access interface
    GetMetricDataResponse GetMetricData(1: GetMetricDataRequest req)(api.post="/nuwa_agw/metric_service/get_metric_data")
    // 检测指标是否可路由
    CheckMetricRoutableResponse CheckMetricRoutable(1: CheckMetricRoutableRequest req)(api.post="/nuwa_agw/metric_service/check_metric_routable")
    // 指标取数接口 indicator access interface
    GetMetricDataResponse GetMetricDataForOS(1: GetMetricDataRequestForOS req)(api.post="/nuwa_agw/metric_service/get_metric_data_for_os")
    // 指标路由接口 根据指标及相关配置,路由至可查询的模型
    GetMetricStoreResponse GetMetricStore(1: GetMetricStoreRequest req)(api.post="/nuwa_agw/metric_service/get_metric_store")
    // 指标路由接口 内部使用,for影响面评估
    GetMetricStoreResponse GetMetricStoreInner(1: GetMetricStoreRequestInner req)(api.post="/nuwa_agw/metric_service/get_metric_store_inner")
    // 模型配置校验接口
    CheckModelConfigResponse CheckModelConfig(1: CheckModelConfigRequest req)(api.post="/nuwa_agw/metric_service/check_model_config")
    // 【详细粒度】获取指标最小就绪时间,通过取数请求的方式获取就绪时间
    GetMetricReadyTimeResponse GetMetricReadyTime(1: GetMetricReadyTimeRequest req)(api.post="/nuwa_agw/metric_service/get_metric_ready_time")
    // 【粗粒度】获取指标最小就绪时间,通过取数的元素获取粗粒度就绪时间
    GetMetricReadyTimeResponse GetQueryReadyTimeByEle(1: GetQueryReadyTimeByEleReq req)(api.post="/nuwa_agw/metric_service/get_ready_time_by_query_ele")
    // 获取主题下的模型、指标信息
    MetricBindModelInfoResponse GetMetricBindModelInfosByDictCat(1: MetricBindModelInfoRequest request)(api.post="/nuwa_agw/metric_service/get_metric_bind_model_Infos_by_dict_cat")
}

common类

namespace java com.bytedance.nuwa.data.dp.metric_service
// 传入指标类型枚举
enum MetricTypeEnum {
    TECH_METRIC             = 1    // 技术指标
    APP_METRIC              = 2    // 应用指标
    BUSINESS_METRIC         = 3    // 业务指标
    TECH_OR_BUSINESS_METRIC = 4    // 技术指标或者业务指标
    QUERY_CODE              = 5    // queryCode
}
// 通用取数常量
enum DateType {
    DAY          = 1       // 一天
    WEEK_1       = 2       // 周一到周日
    WEEK_2       = 3       // 周二到周一
    WEEK_3       = 4       // 周三到周二
    WEEK_4       = 5       // 周四到周三
    WEEK_5       = 6       // 周五到周四
    WEEK_6       = 7       // 周六到周五
    WEEK_7       = 8       // 周日到周六
    MONTH        = 9       // 月
    BIMONTH      = 10      // 双月
    SEVEN_DAY    = 11      // 七天
    THIRTY_DAY   = 12      // 三十天
    SIXTY_DAY    = 13      // 六十天
    FOURTEEN_DAY = 14      // 十四天
    HOUR         = 15      // 小时
    WEEK         = 999     // 自然周
    HALF_YEAR    = 16      // 半年
    YEAR         = 17      // 年
    SEASON       = 18      // 季度
    DAYS_365     = 19      // 365天
    CUSTOM       = 9999    // 用户自定义
}
 
// 排序的字段类型
enum SortTypeEnum {
    DIM_FIELD    = 1    // 维度字段
    METRIC_FIELD = 2    // 指标字段
}
 
// 排序
struct Sort {
    1: required string        field    
    2: required SortTypeEnum  sortType  // 排序的字段类型
    3: required bool          isAsc     // 是否是升序, 默认是倒序
}
 
 
// 分页
struct Page {
    1: required i32  page      // 分页的页数,默认从第一页开始
    2: optional i32  pageSize  // 每页个数,该字段不传默认是20
}
 
// 计算逻辑枚举值
enum LogicOperator {
    AND,   
    OR     
}
 
 
// 过滤操作符号枚举值
enum FilterOpEnum {
    OP_EQUAL            = 1   
    OP_NOT_EQUAL        = 2       // !
    OP_GREATER          = 3       // >
    OP_SMALLER          = 4       // <
    OP_GREATER_OR_EQUAL = 5       // >
    OP_SMALLER_OR_EQUAL = 6       // <
    OP_WITHIN           = 7       // in
    OP_NOT_WITHIN       = 8       // not in
    OP_IS_NULL          = 9       // is null
    OP_IS_NOT_NULL      = 10      // is not null
    OP_LIKE             = 11      // like
    OP_NOT_ALL          = 12      // not all
    OP_HAS              = 13      // has
    OP_HAS_ANY          = 14      // hasAny
    OP_NOT_LIKE         = 15      // not like
    OP_IS_ALL           = 50      // 特殊的OP 支持cube类型的查询维度聚合后数据
    OP_CUSTOM           = 1000    // [仅内部使用,外部禁用]
}
 
// 过滤类型, 默认参与取数
enum FilterSearchType {
    GetData    = 0    // 默认参与取数
    OnlySearch = 1    // 仅查询
}
 
// 实际的值类型
enum ValueTypeEnum {
    UNKNOWN     = 0  
    // 简单数据类型 Simple types
    STRING      = 1      // 字符串
    BIGINT      = 2      // 整数
    FLOAT       = 3      // 浮点数
    TIMESTAMP   = 4      // 时间戳
    // Array数据类型 Array types1xx
    LIST_STRING = 101    // 字符串列表
    LIST_BIGINT = 102    // 整数数列表
    LIST_FLOAT  = 103    // 浮点数列表
    // Map数据类型   MAP   types  2xx
}
 
// 用户展示类型枚举定义,方便用户做展示,后续存在删增的可能性
enum PreDataTypeEnum {
    // 0xx 标准类型
    AMT_STD               = 1      // 数值类型
    RAW                   = 2      // 直接展示
    // 1xx 金额类
    MONEY_STD             = 100    // 标准金额
    MONEY_YUAN            = 101    // 标准金额-元
    // 2xx 百分比/变化率
    PCT                   = 201    // 百分比
    PCT_THREE             = 202    // 百分比保留三位
    PERMILLE              = 210    // 千分比
    PT                    = 251    // pt(变化率)
    // 3xx 趋势图
    CHART                 = 301    // 趋势图
    // 4xx 时间类型
    TIME_INTERVAL_SEC     = 401    // 时长(单位:秒)
    TIME_INTERVAL_MIN     = 402    // 时长(单位:分)
    TIME_INTERVAL_HOUR    = 403    // 时长(单位:小时)
    // 5xx 业务类型
    MONEY_PER_THOUSAND_PV = 501    // 金额/千次PV
    INT_PER_THOUSAND_PV   = 502    // 整数/千次PV
}
 
// 规范版本指标构建类型
enum MetricLogicType {
    DERIVED   = 1    // 衍生指标
    COMPOSITE = 2    // 复合指标
}
 
 
struct DimensionFilter {
    1: required string        dimensionNameEN     // 维度英文名
    2: required list<string>  dimensionValueList  // 维度值列表
}
 
 
enum ApplicationEnum {
    COMMON,        // 通用的应用场景
    AEOLUS,        // 风神应用场景
    BAIBAOXIANG    // 电商百宝箱链路场景
}
// 请求支持的动态参数
enum OptionID {
    TIMEOUT       = 1      // 超时时间
    SKIP_PPE_META = 100    // 走ppe_default集群,是否跳过从ppe获取指标元数据
}
 
// represent for optional configs
struct Option {
    1: OptionID  Id   
    2: i64       Val   // int, bool
    3: string    Val_  // string,json,float
}
 
struct UpdateTime {
    1: string  updateTime 
    2: i64     updateTs   
    3: string  updateUser 
}
 
struct EventTrackInfo {
    1: string                    username    // 实际访问用户名
    2: string                    from        // 调用来源方
    3: string                    pageUK      // 页面唯一键(标记 该来源下 最小粒度实体的唯一键)
    4: string                    pageName    // 页面名称(标记 该来源下 最小粒度实体的名称)
    5: string                    pageUrl     // 页面链接(标记 该来源下 最小粒度实体的跳转链接)
    6: list<string>              pageOwners  // 页面负责人/责任人(标记 该来源下 最小粒度实体的负责人/异常周知人)
    7: list<EventTrackPageInfo>  pageList    // 页面信息(由粗到细粒度)
    200: map<string, string>     customInfo  // 自定义埋点信息(需要透传的额外信息)
}
 
// 模型绑定的类型:指标、维度
enum ModelEleEnum {
    DIM         = 1    // 维度
    TECH_METRIC = 2    // 技术指标
}
 
struct EventTrackPageInfo {
    1: string        pageUK      // 页面唯一键(标记 该来源下 最小粒度实体的唯一键)
    2: string        pageName    // 页面名称(标记 该来源下 最小粒度实体的名称)
    3: string        pageUrl     // 页面链接(标记 该来源下 最小粒度实体的跳转链接)
    4: list<string>  pageOwners  // 页面负责人/责任人(标记 该来源下 最小粒度实体的负责人/异常周知人)1
}
最近更新时间:2025.03.28 14:45:00
这个页面对您有帮助吗?
有用
有用
无用
无用