分析視觀表函數

Adp.Analytics 類別提供 Data Studio Suite 工具之應用程式設計介面的類別、方法、屬性以及參數的語法和描述。如果要求的分析視觀表不存在 (建立除外),所有函數都會傳回訊息 Analytic view does not exist

分析視觀表名稱清單程序

傳回分析視觀表名稱清單。

Analytics.get_list(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 :事實表格的名稱。
  • 維度是維度表格名稱的清單。如果維度表格沒有與事實表格中任何索引鍵的結合,就會發出錯誤。
  • 計量:此欄位指定將用於聚總的事實表格資料欄清單。
  • av_name :此欄位是「分析視觀表」名稱,如果遺漏此參數,請根據事實表格的名稱使用預設分析視觀表名稱:"<fact_table>_AV"。
  • 所有者:此欄位顯示「分析視觀表」的擁有者。如果沒有這個欄位,工具會使用目前的綱要擁有者。

範例

在此範例中,您可以根據四個維度和兩個計量來建立「分析視觀表」:

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,則會選取事實表格的資料欄作為維度。預設值為偽。
  • 所有者:此欄位顯示「分析視觀表」的擁有者。如果沒有這個欄位,工具會使用目前的綱要擁有者。

範例

在此範例中,您可以建立分析視觀表:
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 :分析視觀表的名稱。
  • 所有者:此欄位顯示「分析視觀表」的擁有者。如果沒有這個欄位,工具會使用目前的綱要擁有者。

範例

在此範例中,您可以編譯分析視觀表:

adp.Analytics.compile('COSTS_AV')

取得評量清單程序

從指定的分析視觀表取得計量清單。

語法

Analytics.get_measures_list(av_name, owner)

參數

  • av_name :分析視觀表的名稱。
  • 所有者:此欄位顯示「分析視觀表」的擁有者。如果沒有這個欄位,工具會使用目前的綱要擁有者。

範例

在此範例中,您可以取得「分析視觀表」的計量清單:

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 :分析視觀表的名稱。
  • 所有者:此欄位顯示「分析視觀表」的擁有者。如果沒有這個欄位,工具會使用目前的綱要擁有者。

範例

在此範例中,您可以取得「分析視觀表」的預覽資料:

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 :分析視觀表的名稱。
  • 所有者:此欄位顯示「分析視觀表」的擁有者。如果沒有這個欄位,工具會使用目前的綱要擁有者。

傳回擁有者綱要中「分析視觀表」的詳細描述資料 (如果遺漏或設為「無」,請使用目前的綱要)。

範例

在此範例中,您可以取得「分析視觀表」的描述資料:

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 (維度) :維度名稱。

範例

在此範例中,您可以取得 Analytic View 維度的錯誤類別名稱:

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 :分析視觀表的名稱。
  • 階層:所選階層的陣列。
  • 計量:計量陣列。
  • where_condition :是條件陣列,每個條件有 4 個欄位:階層運算子
  • 所有者:此欄位顯示「分析視觀表」的擁有者。如果沒有這個欄位,工具會使用目前的綱要擁有者。

範例

在此範例中,您可以取得「分析檢視」的品質報表:

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 :分析視觀表的名稱。
  • 階層:所選階層的陣列。
  • 計量:計量陣列。
  • where_condition :是條件陣列,每個條件有 4 個欄位:階層運算子
  • 所有者:此欄位顯示「分析視觀表」的擁有者。如果沒有這個欄位,工具會使用目前的綱要擁有者。

範例

在此範例中,您可以取得「分析視觀表」聚總資料的 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')
    )
  )