分析视图函数
类 Adp.Analytics 为 Data Studio Suite 工具的 Analytic Views 工具提供了应用程序编程接口的类、方法、属性和参数的语法和说明。如果请求的分析视图不存在(创建除外),则所有函数都将返回消息 Analytic view does not exist。
返回分析视图名称的列表。
Analytics.get_list(owner)参数:
- owner(所有者):此字段显示数据库链接的所有者。如果缺少此字段,该工具将使用当前模式所有者。
示例
在此示例中,可以列出分析视图:
Analytics.get_list()
{
"nodes": [
{
"label": "ANALYTIC_VIEW1",
"type": "ANALYTIC_VIEW",
"id": "\"ADMIN\".\"DB\".\"ANALYTIC_VIEW1\"",
"data": {
"name": "ANALYTIC_VIEW1",
"namespace": "DB",
"path": "\"DB\".\"ANALYTIC_VIEW1\"",
"schema": "ADMIN",
"classifications": {
"CAPTION": "Analytic View1",
"DESCRIPTION": "Analytic View1"
},
"application": "DATABASE",
"created": "2021-06-09T14:19:06Z",
"updated": "2021-06-15T10:23:07Z"
}
},...
]
}创建分析视图的过程根据维表列表和度量列表创建分析视图。
语法
Analytics.create(fact_table, dimensions, measures, av_name,
owner)参数:
- fact_table :事实表的名称。
- dimensions 是维表名的列表。如果维表没有与事实表中的任何关键字的联接,则会引发错误。
- 度量:此字段指定将用于聚合的事实表列的列表。
- av_name :此字段是分析视图名称,如果缺少此参数,则根据事实表的名称使用默认分析视图名称:"<fact_table>_AV"。
- owner(所有者):此字段显示分析视图的所有者。如果缺少此字段,该工具将使用当前模式所有者。
示例
在此示例中,您可以基于四个维和两个度量创建分析视图:
tables = ["CHANNELS","PRODUCTS","PROMOTIONS","TIMES"]
measures = [ 'UNIT_COST', 'UNIT_PRICE']
adp.Analytics.create('COSTS', tables, measures)
// Output
success自动创建分析视图的过程
基于事实表创建分析视图。系统会根据事实表的列自动选择度量。维是从合适的维表中选择的。
该函数根据事实表的名称使用默认分析视图名称:"<fact_table>_AV"。
语法
Analytics.create_auto(fact_table, skip_dimensions,
owner)参数:
- fact_table :事实表的名称。
- skip_dimensions :如果字段值为 True,则将事实表的列选为维。默认值为假。
- owner(所有者):此字段显示分析视图的所有者。如果缺少此字段,该工具将使用当前模式所有者。
示例
Analytics.create_auto('COSTS', False) // Output success删除分析视图的过程
删除具有指定名称的分析视图
语法
Analytics.drop(model_name, delete_objects)参数:
- model_name :分析视图的名称。
- delete_objects :如果字段值为 True,则将删除所有相关对象(维和度量)。默认值为假。
示例
在此示例中,可以删除分析视图:
adp.Analytics.drop('COSTS_AV', True)编译分析视图过程
编译分析视图。它优化查询,以便有效地从事实表中检索数据。
Analytics.compile(av_name, owner)参数:
- av_name :分析视图的名称。
- owner(所有者):此字段显示分析视图的所有者。如果缺少此字段,该工具将使用当前模式所有者。
示例
在此示例中,可以编译分析视图:
adp.Analytics.compile('COSTS_AV')获取度量列表过程
从指定的分析视图获取度量列表。
语法
Analytics.get_measures_list(av_name, owner)参数:
- av_name :分析视图的名称。
- owner(所有者):此字段显示分析视图的所有者。如果缺少此字段,该工具将使用当前模式所有者。
示例
在此示例中,您可以获取分析视图的度量列表:
adp.Analytics.get_measures_list('COSTS_AV')
// Output
{
"nodes": [
{
"label": "UNIT_COST",
"type": "MEASURE",
"id": "\"ADMIN\".\"DB\".\"COSTS_AV\".\"MEASURE\".\"UNIT_COST\"",
"data": {
"name": "UNIT_COST",
"namespace": "MEASURE",
"path": "\"DB\".\"COSTS_AV\".\"MEASURE\".\"UNIT_COST\"",
"schema": "ADMIN",
"application": "DATABASE",
"created": "2022-08-16T17:04:08Z",
"updated": "2022-08-16T17:04:08Z"
}
},...
]
}获取预览过程
返回分析视图(层次(名称和标题)和度量)、聚合数据和 SQL 查询的元数据,以便从分析视图中选择数据。
语法
Analytics.get_data_preview(entity_name, owner)参数:
- entity_name :分析视图的名称。
- owner(所有者):此字段显示分析视图的所有者。如果缺少此字段,该工具将使用当前模式所有者。
示例
在此示例中,可以获取分析视图的预览数据:
adp.Analytics.get_data_preview('COSTS_AV')
// Output
{
"av": "COSTS_AV",
"caption": null,
"description": null,
"metadata": {
"hierarchies": [
{
"name": "CHANNEL_ID",
"caption": "CHANNEL_ID"
},
{
"name": "PROD_ID",
"caption": "PROD_ID"
}
],
"measures": [
{
"name": "UNIT_COST",
"caption": "UNIT_COST"
},
{
"name": "UNIT_PRICE",
"caption": "UNIT_PRICE"
}
]
},
"data": [...],
"SQL": "..."
}获取元数据过程
返回分析视图的详细元数据。
语法
Analytics.get_metadata(av_name, owner)参数:
- av_name :分析视图的名称。
- owner(所有者):此字段显示分析视图的所有者。如果缺少此字段,该工具将使用当前模式所有者。
返回所有者模式中分析视图的详细元数据(如果缺失或设置为“无”,则使用当前模式)。
示例
在此示例中,可以获取分析视图的元数据:
adp.Analytics.get_metadata('COSTS_AV')维名称过程
返回分析视图的维名称数组
语法
Analytics.get_dimension_names(av_name)参数:
- av_name :分析视图的名称。
示例
在此示例中,可以获取分析视图的维名称:
adp.Analytics.get_dimension_names('COSTS_AV')事实表名过程
返回分析视图的事实表的名称。
Analytics.get_fact_table_name(av_name)参数:
- av_name :分析视图的名称。
示例
在此示例中,您可以获取分析视图的事实表的名称:
adp.Analytics.get_fact_table_name('COSTS_AV')从维获取错误类过程
在分析分析视图期间返回有关指定维中错误的信息。此方法用于检查分析视图的维是否没有错误。如果出错,则 ERROR_COUNT 不是 0,errorData 不为空,并且包含 ERROR_MESSAGE(错误的文本表示),ERROR_NUMBER(Oracle 错误代码)。
语法
Analytics.get_error_classes_from_dim(av_name,
dimension)参数:
- av_name :分析视图的名称。
- dimension(维):维名称。
示例
在此示例中,可以获取分析视图维的错误类名称:
adp.Analytics.get_error_classes_from_dim('COSTS_AV', 'CHANNELS')从事实表获取错误分类的过程
在分析分析视图期间返回有关指定事实表中错误的信息。此方法用于检查分析视图的事实表是否没有错误。如果出现错误,ERROR_COUNT 不是 0,errorData 不为空,并且包含 ERROR_MESSAGE(错误的文本表示)和 ERROR_NUMBER(Oracle 错误代码)。
语法
Analytics.get_error_classes_from_fact_tab(av_name,
fact_tab)参数:
- av_name :分析视图的名称。
- fact_table :事实表的名称。
示例
adp.Analytics.get_error_classes_from_fact_tab('COSTS_AV', 'COSTS')在分析分析视图期间返回有关指定事实表中错误的信息。此方法用于检查分析视图的事实表是否没有错误。如果出错,则 ERROR_COUNT 不是 0,errorData 不为空,并且包含 ERROR_MESSAGE(错误的文本表示)和 ERROR_NUMBER(Oracle 错误代码)。
质量报告过程
返回有关 av_name 指定的分析视图中错误的信息。此方法检查分析视图的事实表和维。如果出现错误,则错误文本表示将包括在报告中。
语法
Analytics.quality_report(av_name)参数:
- av_name :分析视图的名称。
示例
在此示例中,您可以获取分析视图的质量报告:
adp.Analytics.quality_report('COSTS_AV')
// Output
[
"Fact table COSTS has no errors",
"Dimension COSTS_AV_CHANNELS_AD has no errors",
"Dimension COSTS_AV_PRODUCTS_AD has no errors",
"Dimension COSTS_AV_PROMOTIONS_AD has no errors",
"Dimension COSTS_AV_TIMES_AD has no errors"
]获取数据过程
从分析视图返回聚合数据。返回值是查询结果的列表。
语法
Analytics.get_data(levels, column_names, entity_name, hierarchies,
measures, where_condition, owner)参数:
- 级别:分析视图的级别。
- column_names :列的数组。
- entity_name :分析视图的名称。
- hierarchies :所选层次的数组。
- 度量:度量的数组。
- where_condition :是条件的数组,每个条件有 4 个字段:层次、列、运算符和值。
- owner(所有者):此字段显示分析视图的所有者。如果缺少此字段,该工具将使用当前模式所有者。
示例
在此示例中,您可以获取分析视图的质量报告:
adp.Analytics.get_data(True,
["COSTS_AV_PROD_HIER_PROD_ID_ATTR",
"UNIT_COST",
"COSTS_AV_PROD_HIER_DEPTH"], 'COSTS_AV',
["COSTS_AV_PROD_ID_HIER"],
["UNIT_COST", "UNIT_PRICE"],
[{"hierarchy": "COSTS_AV_PROD_ID_HIER", "column": "LEVEL_NAME", "operator": "=", "value": "ALL:PROD_ID"}])
//Output
[{"UNIT_COST":808685.68},{"UNIT_COST":213170.06},{"UNIT_COST":16778.02},...},SQL 查询过程
返回 get_data 中使用的 SQL 查询。
语法
Analytics.get_sql(levels, column_names, entity_name, hierarchies,
measures, where_condition, owner)参数:
- 级别:分析视图的级别。
- column_names :列的数组。
- entity_name :分析视图的名称。
- hierarchies :所选层次的数组。
- 度量:度量的数组。
- where_condition :是条件的数组,每个条件有 4 个字段:层次、列、运算符和值。
- owner(所有者):此字段显示分析视图的所有者。如果缺少此字段,该工具将使用当前模式所有者。
示例
在此示例中,可以获取分析视图的聚合数据的 SQL:
adp.Analytics.get_sql(True,
["COSTS_AV_PROD_HIER_PROD_ID_ATTR",
"UNIT_COST",
"COSTS_AV_PROD_HIER_DEPTH"], 'COSTS_AV',
["COSTS_AV_PROD_ID_HIER"],
["UNIT_COST", "UNIT_PRICE"],
[{"hierarchy": "COSTS_AV_PROD_ID_HIER", "column": "LEVEL_NAME", "operator": "=", "value": "ALL:PROD_ID"})
//Output
SELECT
"MEASURES"."UNIT_COST" AS "UNIT_COST"
FROM "ADMIN"."COSTS_AV" HIERARCHIES(
"PROD_ID"."PROD_ID")
WHERE
(
(
"PROD_ID"."PROD_ID"."LEVEL_NAME" IN ('ALL', 'PROD_ID')
)
)