11.1.3 インサイト関数
クラスAdp.Insight
は、インサイトの操作に使用されます。
インサイトの生成はバックグラウンドで実行され、完了を確認する必要があります。
Insight.generate(av_name, measure,job_owner=None,source_owner=None)
これにより、分析ビューのメジャーのインサイトが生成されます。
次に、フィールドとその説明を示します:
av_name
: このフィールドは分析ビューの名前です。
measure
: これは、分析ビューのメジャーの名前です。
job_owner
: ジョブのスキーマ名です。
object_owner
: オブジェクトのスキーマ名です。1つまたは2つの所有者としてのNoneは、現在のスキーマが使用されることを意味します。
Insight.get_job_status(request_name,owner=None)
前述の関数は、インサイト・リクエストのステータス・リストを返します。owner
はインサイトのスキーマ名です(Noneは、現在のスキーマが使用されることを意味します)。フィールドinsight_job_status
がCOMPLETEDになると、インサイトの生成が終了します。
Insight.drop(request_name)
前述の関数は、インサイトの削除リクエストです。
Insight.get_request_list(owner=None)
前述の関数は、リクエスト名とそのパラメータのjsonリストを返します。owner
はリクエストのスキーマ名です。Noneは、現在のスキーマが使用されることを意味します。
Insight.get_insights_list(requestName)
前述の関数は、インサイトのjsonリストを返します。各インサイトには次のフィールドがあります:
insight_name
、visualization_id
、insight_column
、insight_value
、insight_dimension
およびdimension
。
Insight.get_graph_details(name, id, count=0, query_manipulation=None, owner=None)
前述の関数は、プロットされたデータのJSONデータ・ディクショナリを返します。
次に、パラメータとその説明を示します:
name
: これはインサイト名です。
id
: これはビジュアライゼーションIDです。
query_manipulation
がNoneでない場合、問合せのadd cursor type
およびgrand totals
フィールド。
owner
: これはインサイトのスキーマ名です(Noneは、現在のスキーマが使用されることを意味します)。
item
にはインサイトの全体的な情報(description、XAXIS、measure、insight_type_label、visualization_condition、source_object)が含まれます。
query
には、プロットに関する情報が含まれ、labels、actualsおよびestimatesの3つのリストがあります。
インサイトの例
この項では、インサイトAPIの使用を開始する際に役立つ次の例を提供します:
- インサイトの生成
- インサイトの削除
- インサイト・リクエストのリスト
- インサイトのリスト
- インサイトの完了の確認
- ビジュアライゼーション・ビューからのデータの取得
これらの例を使用する前に、ADPインスタンスを作成してAutonomous Databaseに接続する必要があります:
import adp
adp_instance = adp.login('<protocol://host:port>', 'schema_name', 'schema_password')
インサイトの生成
adp_instance.Insight.generate('SALES_AV', 'AMOUNT_SOLD')
Output:
{
"object_owner": "ADPTEST",
"request_name": "REQUEST_INSIGHT_1",
"max_insight_count": 20,
"source_object": "SALES_AV",
"source_owner": "SALES_AV",
"request_metadata": "{\"targets\":[\"AMOUNT_SOLD\"],\"appName\":\"INSIGHTS\"}",
"default_job_settings": "{\"insightTypes\":[\"FITTED_SHARE_COMPARISON\"]}",
"new_request": "true"
}
インサイトの削除
adp_instance.Insight.drop('REQUEST_INSIGHT_1')
インサイト・リクエストのリスト
adp_instance.Insight.get_request_list()
Output:
[
...
{
"owner": "ADMIN",
"request_name": "REQUEST_INSIGHT_1",
"request_type": "TABLE_INSIGHT",
"source_object": "SALES",
"source_owner": "ADMIN",
"request_metadata": "{\"targets\":[\"ACTUAL\"],\"appName\":\"INSIGHTS\"}",
"created": "2022-10-31T08:03:26.634Z",
"updated": "2022-10-31T08:03:26.634Z",
"request_job_setting": "{\"EXTRACTION\":{\"selectionRule\":{\"value\":\"MAX_DIFFERENCE\"},\"fittedShareConvergence\":{\"value\":\"LAX\"},\"maxNumExtractionDims\":{\"value\":10000},\"insightValueType\":{\"value\":\"MEMBER\"},\"excludeZero\":{\"value\":\"YES\"},\"minXAxisCount\":{\"value\":2}},\"sessionId\":null,\"applicationName\":\"INSIGHTS\",\"insightTypes\":[\"FITTED_SHARE_COMPARISON\"]}",
"max_num_insights": 20
},
...
]
adp_instance.Insight.get_insights_list('REQUEST_INSIGHT_1')
Output:
[
{
"insight_name": "INSIGHT_62",
"visualization_id": 199,
"insight_column": "ACTUAL",
"insight_value": "COUNTRY.2",
"insight_dimension": "COUNTRY",
"dimension": "FORECST"
},..
]
インサイトの完了の確認
adp_instance.Insight.get_job_status('REQUEST_INSIGHT_1')
Output:
{
"insight_job_status": "COMPLETED",
"progress_msg": " ",
"error_msg": null
}
ビジュアライゼーション・ビューからのデータの取得
adp_instance.Insight.get_graph_details("INSIGHT_62", 199, 5, True)
Output:
{
"items": {
"description": "COUNTRY.2",
"XAXIS": "FORECST",
"measure": "ACTUAL",
"insight_type_label": "Expected",
"visualization_condition": "COUNTRY.2",
"source_object": "C0"
},
"query": {
"labels": [
"01:[66.7-1590]",
"02:[829-2350]",
"04:[2350-3870]",
"06:[3870-5390]",
"07:[4630-6150]"
],
"actuals": [
2200,
6200,
24600,
26600,
14200
],
"estimates": [
2671.105013588167,
4830.820533674098,
7135.506976989193,
24772.963909661587,
22121.48462234561
]
}
}