分析視觀表函數
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')
)
)