分析ビュー関数

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