Skip to main content

API管理

针对指标中心里所有开发完成、发布到指标市场中的指标,支持选取相同维度的指标在线组合生成API。

tip

目前仅支持基于落表指标的结果表生成API,不支持指标数据的即席查询、聚合结果的调用

操作流程

API管理: API 1

API配置:

API数据源

API数据源即API查询数据的数据来源,使用不同的计算引擎对应的API数据源会有差异。若使用Trino引擎,则API需调用HBase/Inceptor数据返回结果,其中涉及将Hive结果周期性同步到API数据源的过程;若使用Doris/StarRocks引擎,则API可直接调用Doris/StarRocks数据返回结果,不涉及数据同步任务。

基于上述需要,使用Trino引擎的情况下,在使用API功能生成API之前,我们必须要指定数据落地的API访问数据源,从而使API相关功能正常使用。

tip

使用Trino引擎时,API访问数据源目前支持Hbase(Hbase1.x)和Inceptor两种数据源。

选择数据源:

项目初始化时,在「项目管理」模块中,可以选择对应的API访问数据源。

image-20230626205343207

note

API调用的API访问数据源,需要在「数据源中心」先授权给「指标平台」产品后,才能在产品中看到并且选择。

确认完API数据源后,就可以正式进入API的配置流程了。

设置API信息

1. 基本信息

包括API的名称、中文名称以及描述信息,API名称创建完成后不可修改。

2. 安全信息

包括设置此API的单用户每秒调用次数上线、数据存储的Hive表和HBase表的数据存储生命周期,其中Hive表数据存储默认值9999天,HBase表数据存储默认值30天。根据设置的生命周期时间,系统将会自动删除超出时间范围的数据。

3.调度信息

设置API的自动调度属性,默认开启,API发布后,系统会自动生成对应的周期性调度任务,然后生成周期实例进行任务运行,保证API数据的正常落地使用;如果不选择自动调度,API发布后,系统同样会自动生成调度任务,但是不会进行周期性调度,所以如果您没有另外的手动调度计划,建议还是选择自动执行,API列表中通过运行方式(手动运行、自动运行)来区分这两种情况。

选择指标

设置完指标基本信息后,第二步选择指标,用户选择API中需要包含的指标,支持选择多个指标放在一个API里,方便用户调用API时一次性获取到需要的指标结果信息。

1. 界面分布:

整体分为四部分:

  • 左侧,展示所有已经发布的派生指标、复合指标、自定义指标供选择,按「指标目录」划分
  • 中间上部展示「已选指标」
  • 右侧上方实时判断已选指标的「维度展示」部分
  • 下方展示「可用维度组合」,选取意向组合进行后续的API调用,API调用时,通过调用维度组合对应编号,返回对应维度组合的指标结果。若设为默认,则代表在不指定编号的情况下,默认返回的维度组合结果

2. 选择指标:

支持一次性选择多个,但是需要注意的是,所选指标落的结果表中,存在公共维度组合,对应的公共维度组合将显示在下方以供选择

3. 查看指标:

点击选中指标右下角按钮,可以在线查看对应指标的基本信息

note

配置完所有基本信息后,点击预览,平台会根据上面配置的信息,在线预览展示其中一个调度任务,宽表聚合任务的脚本以及相关的名称,关于调度任务的生成规则以及调度周期的制定逻辑,具体可以查看「API调度」模块中的详细说明。

发布与禁用

API的发布状态包括未发布、已发布、已禁用三种:

API创建完保存后是 未发布 状态,这里我们需要通过操作栏的「发布」操作把API提交至API网关进行发布,发布成功后会生成对应的token和url,用户能够通过token调用API,发布成功后的API为 已发布 状态,发布后如果我们要修改API的信息,或者停止对外提供此API服务,可以通过「禁用」操作将API禁用停止对外提供服务,禁用成功后的API为 已禁用 状态。

note

API发布后才会提交对应的调度任务到「运维中心」中。

API与指标

API中会包括一个或多个指标,API调用的数据均来自指标的计算结果,所以指标信息的变更可能直接导致API的异常,平台通过「指标更新状态」来展示当前API中指标信息的更新情况,平台会实时去获取API中包含指标的最新发布信息去更新API,当更新异常时,为了保证API的正常使用,会自动使用最近一次更新正常的指标信息。

API 6

实际使用过程中,指标往往会存在需要更新信息的情况,不可能因为指标配置了API就不更新了,那么系统是如何判断指标变更对下游API的影响的呢?什么时候会导致API中指标更新异常呢?主要存在以下几种变更场景:

1. 指标基本信息变更:-正常

包括像指标名称、指标描述、指标别名、指标目录等不影响底层数据逻辑的指标基本信息的变更,不会影响到下游API的使用,所以这时候发布指标后,API会自动获取最新的指标信息,且API里「指标更新状态」为正常。

2. 指标维度变更:-异常

指标维度信息的新增、减少、修改,因为会直接影响到落地指标表的表结构,而API本身就是要获取指标表的数据去提供服务,如果表结构都变了,这样原来提供的数据格式势必会和最新的指标信息相悖,这时候为了保证API的正常使用,系统只能先去使用最近一次更新正常的指标信息(即指标的历史版本),且这时候API里「指标更新状态」为异常。

3. 指标过滤条件:-正常

指标过滤条件的新增、减少、修改,会直接影响到指标计算时获取的数据来源,但是对于指标表的落地来说,只是指标计算结果变了,整体的表结构不会受影响,下游的API还是可以正常去获取到指标表,不会受到影响,所以这时候尽管计算sql发生了变化,但是发布指标后,API会正常使用最新的指标信息,「指标更新状态」为正常。

--由上面的分析可以得出,其实系统判断指标变更对API的影响时,其实主要还是根据 指标表表结构 的变化情况来判断的,因为API是需要获取指标表里的维度字段、时间字段以及指标字段的,所以如果表结构不变,原来的字段还在,自然是不会有影响的,反之,如果原来在取的字段如果检索不到了,自然会影响使用。

note

所有的指标更新状态都是实时判断的,如果会有影响,在发布指标的时候平台也会做相应的提醒。

caution

当「指标更新状态」异常时,虽然平台会通过获取最近一次更新正常的指标信息来保证API的正常使用,但是因为这时候指标已经不是用的最新的版本了,而历史版本的数据是不会更新的,所以这时候API虽然还能正常调用,但是数据已经不对了,在实际维护的过程中,如果发现 指标更新状态异常,需要及时去排查解决

tip

平台自始自终都是取的指标最新发布的信息,所以如果您只是编辑保存,并没有发布的话,对原来的使用逻辑并不会有影响。

查看API

针对已经创建完成的API,通过点击列表中API名称,可以在线查看API的所有信息,包括基本属性、接口信息、调度信息

API 7

1. 基本属性:

包括名称描述等基本信息,其中已发布状态的API可以查看到API-TOKEN和调用URL,关联指标信息中会展示API中包含的指标信息,包括当前使用的版本和指标目前的最新发布版本

2. 接口信息:

包括API接口调用的输入参数、输出参数以及请求示例,具体使用调用规则可以查看「API调用」章节的说明

3. 调度信息:

针对Trino引擎,每个API都会对应一个宽表聚合任务(trinosql)和一个数据同步任务(hive到hbase);针对Doris引擎,每个API会对应一个宽表聚合任务(DorisSQL)。

调度信息中会包括任务信息、调度周期信息以及依赖信息

note

API调度任务的具体生成规则可以查看「API调度」章节。