分析ビュー関数
Adp.Analyticsクラスは、Data Studioツール・スイートの分析ビュー・ツールに対するアプリケーション・プログラミング・インタフェースのクラス、メソッド、属性およびパラメータの構文と説明を提供します。要求された分析ビューが存在しない場合(作成を除く)、すべての関数は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 : ディメンション表名のリスト。ディメンション表にファクト表のキーとの結合がない場合、エラーがスローされます。
- measures: このフィールドは、集計に使用されるファクト表の列のリストを指定します。
- av_name: このフィールドは、分析ビューの名前です。このパラメータがない場合、ファクト表の名前に基づくデフォルトの分析ビュー名"<fact_table>_AV"が使用されます。
- owner: このフィールドは、分析ビューの所有者を示します。このフィールドがない場合、現在のスキーマ所有者が使用されます。
例
この例では、4つのディメンションと2つのメジャーに基づいて分析ビューを作成できます:
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の場合、ファクト表の列がディメンションとして選択されます。デフォルト値はFalseです。
- owner: このフィールドは、分析ビューの所有者を示します。このフィールドがない場合、現在のスキーマ所有者が使用されます。
例
Analytics.create_auto('COSTS', False) // Output success
分析ビューの削除プロシージャ
指定された名前の分析ビューを削除します
構文
Analytics.drop(model_name, delete_objects)
パラメータ:
- model_name: 分析ビューの名前。
- delete_objects: フィールド値がTrueの場合、すべての関連オブジェクト(ディメンションおよびメジャー)が削除されます。デフォルト値はFalseです。
例
この例では、分析ビューを削除できます:
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: このフィールドは、分析ビューの所有者を示します。このフィールドがない場合、現在のスキーマ所有者が使用されます。
所有者のスキーマ(ない場合またはNoneに設定されている場合は、現在のスキーマが使用されます)内の分析ビューの詳細メタデータを返します。
例
この例では、分析ビューのメタデータを取得できます:
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)
パラメータ:
- levels: 分析ビューのレベル。
- column_names: 列の配列。
- entity_name: 分析ビューの名前。
- hierarchies: 選択した階層の配列。
- measures: メジャーの配列。
- 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)
パラメータ:
- levels: 分析ビューのレベル。
- column_names: 列の配列。
- entity_name: 分析ビューの名前。
- hierarchies: 選択した階層の配列。
- measures: メジャーの配列。
- 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')
)
)