分析视图函数

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')
    )
  )