5 OPG_APISパッケージのサブプログラム
OPG_APISパッケージには、Oracleデータベースのプロパティ・グラフを操作するためのサブプログラム(ファンクションおよびプロシージャ)が含まれています。
この章で説明するサブプログラムを使用する場合は、このマニュアルの前の章の概念および使用方法を理解しておく必要があります。
この章では、サブプログラムに関するリファレンス情報をアルファベット順に説明します。
- OPG_APIS.ANALYZE_PG
- OPG_APIS.CF
- OPG_APIS.CF_CLEANUP
- OPG_APIS.CF_PREP
- OPG_APIS.CLEAR_PG
- OPG_APIS.CLEAR_PG_INDICES
- OPG_APIS.CLONE_GRAPH
- OPG_APIS.COUNT_TRIANGLE
- OPG_APIS.COUNT_TRIANGLE_CLEANUP
- OPG_APIS.COUNT_TRIANGLE_PREP
- OPG_APIS.COUNT_TRIANGLE_RENUM
- OPG_APIS.CREATE_EDGES_TEXT_IDX
- OPG_APIS.CREATE_PG
- OPG_APIS.CREATE_PG_SNAPSHOT_TAB
- OPG_APIS.CREATE_PG_TEXTIDX_TAB
- OPG_APIS.CREATE_STAT_TABLE
- OPG_APIS.CREATE_SUB_GRAPH
- OPG_APIS.CREATE_VERTICES_TEXT_IDX
- OPG_APIS.DROP_EDGES_TEXT_IDX
- OPG_APIS.DROP_PG
- OPG_APIS.DROP_PG_VIEW
- OPG_APIS.DROP_VERTICES_TEXT_IDX
- OPG_APIS.ESTIMATE_TRIANGLE_RENUM
- OPG_APIS.EXP_EDGE_TAB_STATS
- OPG_APIS.EXP_VERTEX_TAB_STATS
- OPG_APIS.FIND_CC_MAPPING_BASED
- OPG_APIS.FIND_CLUSTERS_CLEANUP
- OPG_APIS.FIND_CLUSTERS_PREP
- OPG_APIS.FIND_SP
- OPG_APIS.FIND_SP_CLEANUP
- OPG_APIS.FIND_SP_PREP
- OPG_APIS.GET_BUILD_ID
- OPG_APIS.GET_GEOMETRY_FROM_V_COL
- OPG_APIS.GET_GEOMETRY_FROM_V_T_COLS
- OPG_APIS.GET_LATLONG_FROM_V_COL
- OPG_APIS.GET_LATLONG_FROM_V_T_COLS
- OPG_APIS.GET_LONG_LAT_GEOMETRY
- OPG_APIS.GET_LATLONG_FROM_V_COL
- OPG_APIS.GET_LONGLAT_FROM_V_T_COLS
- OPG_APIS.GET_SCN
- OPG_APIS.GET_VERSION
- OPG_APIS.GET_WKTGEOMETRY_FROM_V_COL
- OPG_APIS.GET_WKTGEOMETRY_FROM_V_T_COLS
- OPG_APIS.GRANT_ACCESS
- OPG_APIS.IMP_EDGE_TAB_STATS
- OPG_APIS.IMP_VERTEX_TAB_STATS
- OPG_APIS.PR
- OPG_APIS.PR_CLEANUP
- OPG_APIS.PR_PREP
- OPG_APIS.PREPARE_TEXT_INDEX
- OPG_APIS.RENAME_PG
- OPG_APIS.SPARSIFY_GRAPH
- OPG_APIS.SPARSIFY_GRAPH_CLEANUP
- OPG_APIS.SPARSIFY_GRAPH_PREP
5.1 OPG_APIS.ANALYZE_PG
構文
OPG_APIS.ANALYZE_PG( graph_name IN VARCHAR2, estimate_percent IN NUMBER, method_opt IN VARCHAR2, degree IN NUMBER, cascade IN BOOLEAN, no_invalidate IN BOOLEAN, force IN BOOLEAN DEFAULT FALSE, options IN VARCHAR2 DEFAULT NULL);
説明
指定したプロパティ・グラフに対し、VT$、GE$、IT$およびGT$表の統計を収集します。
パラメータ
- graph_name
-
プロパティ・グラフの名前。
- estimate_percent
-
スキーマ表の推定する行のパーセント(NULLは計算を意味します)。有効なレンジは、[0.000001,100]です。定数
DBMS_STATS.AUTO_SAMPLE_SIZE
を使用すると、有効な統計を生成するための適切なサンプル・サイズをOracleデータベースで決定できるようになります。これが通常のデフォルトです。 - mrthod_opt
-
内部プロパティ・グラフ・スキーマ表に対し、次のオプションのいずれかまたは両方の組み合わせを受け入れます。
-
FOR ALL [INDEXED | HIDDEN] COLUMNS [size_clause]
-
FOR COLUMNS [size clause] column|attribute [size_clause] [,column|attribute [size_clause]...]
size_clause
は、size_clause := SIZE {integer | REPEAT | AUTO | SKEWONLY}
として定義されます。-
integer
: ヒストグラム・バケット数。範囲は[1,254]である必要があります。 -
REPEAT
: すでにヒストグラムがある列に対してのみ、ヒストグラムを収集します。 -
AUTO
: 列のデータ配分とワークロードに基づいて、ヒストグラムを収集する列が判断されます。 -
SKEWONLY
: 列のデータ配分に基づいて、ヒストグラムを収集する列が判断されます。
column
は、column := column_name | (extension)
として定義されます。-
column_name
: 列の名前 -
extension
(column_name, colume_name [, ...])
の書式の列グループまたは式。
通常のデフォルトは、
FOR ALL COLUMNS SIZE AUTO
です -
- degree
-
プロパティ・グラフ・スキーマ表の並列度。通常、degreeのデフォルト値はNULLで、CREATE TABLE文またはALTER TABLE文のDEGREE句で指定された表のデフォルト値が使用されます。初期化パラメータに基づくデフォルト値を指定するには、定数
DBMS_STATS.DEFAULT_DEGREE
を使用します。AUTO_DEGREE
値を指定すると、並列度が自動的に決定されます。オブジェクトのサイズに応じて、1(シリアル実行)またはDEFAULT_DEGREE
(CPU数と初期化パラメータに基づくシステム・デフォルト値)になります。 - cascade
-
プロパティ・グラフ・スキーマ表の索引の統計を収集します。索引の統計情報を収集するかどうかをOracle Databaseが決定できるようにするには、定数
DBMS_STATS.AUTO_CASCADE
を使用します。これが通常のデフォルトです。 - no_invalidate
-
TRUE
の場合、依存カーソルが無効化されることはありません。FALSE
の場合、依存カーソルがすぐに無効化されます。DBMS_STATS.AUTO_INVALIDATE
(通常のデフォルト)が有効な場合、Oracle Databaseによって依存カーソルを無効化するタイミングが決定されます。 - force
-
TRUE
の場合、1つ以上の基礎になる表がロックされていても操作が行われます。 - options
-
(将来使用するために予約済)
使用上の注意
プロパティ・グラフの所有者だけがこのプロシージャをコールできます。
例
次の例では、プロパティ・グラフmypg
の統計が収集されます。
EXECUTE OPG_APIS.ANALYZE_PG('mypg', estimate_percent=> 0.001, method_opt=>'FOR ALL COLUMNS SIZE AUTO', degree=>4, cascade=>true, no_invalidate=>false, force=>true, options=>NULL);
5.2 OPG_APIS.CF
構文
OPG_APIS.CF( edge_tab_name IN VARCHAR2, edge_label IN VARCHAR2, rating_property IN VARCHAR2, iterations IN NUMBER DEFAULT 10, min_error IN NUMBER DEFAULT 0.001, k IN NUMBER DEFAULT 5, learning_rate IN NUMBER DEFAULT 0.0002, decrease_rate IN NUMBER DEFAULT 0.95, regularization IN NUMBER DEFAULT 0.02, dop IN NUMBER DEFAULT 8, wt_l IN/OUT VARCHAR2, wt_r IN/OUT VARCHAR2, wt_l1 IN/OUT VARCHAR2, wt_r1 IN/OUT VARCHAR2, wt_i IN/OUT VARCHAR2, wt_ld IN/OUT VARCHAR2, wt_rd IN/OUT VARCHAR2, tablespace IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL);
説明
指定したグラフで行列因子分解を使用して協調フィルタリングを実行します。結果として作成される行列積の因子は、左表と右表に格納されます。
パラメータ
- edge_tab_name
-
プロパティ・グラフ・エッジ表(GE$)の名前。
- edge_label
-
評価プロパティを保持するエッジのラベル。
- rating_property
-
(将来の使用のために予約済。評価プロパティの名前。)
- iterations
-
実行する必要がある最大反復数。デフォルトは10。
- min_error
-
達成する最小エラー。一部の反復でエラー値がこの値より小さい場合、プロシージャは終了します。デフォルトは0.001。
- k
-
左側の積と右側の積の機能の数。デフォルトは5。
- learning_rate
-
勾配降下法の学習率。デフォルトは0.0002。
- decrease_rate
-
(将来の使用のために予約済。効率的な勾配降下法にとって学習率が大きすぎる場合、率を削減。デフォルトは0.95。)
- regularization
-
過剰適合を回避するための追加パラメータ。デフォルトは0.02
- dop
-
並列度。デフォルトは8。
- wt_l
-
行列因子分解の左側を保持する作業表の名前。
- wt_r
-
行列因子分解の右側を保持する作業表の名前。
- wt_l1
-
勾配降下法で左側の中間手順を保持する作業表の名前。
- wt_r1
-
勾配降下法で右側の中間手順を保持する作業表の名前。
- wt_I
-
中間行列積を保持する作業表の名前。
- wt_ld
-
勾配降下法で中間の左側のデルタを保持する作業表の名前。
- wt_rd
-
勾配降下法で中間の右側のデルタを保持する作業表の名前。
- tablespace
-
中間データを保管する表領域の名前です。
- options
-
操作に対する追加の設定。次の値が1つ以上含まれる(カンマ区切り)オプションの文字列。
-
'INMEMORY=T'は'inmemory'句を使用してスキーマ表を作成するためのオプションです。
-
'IMC_MC_B=T'はINMEMORY MEMCOMPRESS BASIC句を使用してスキーマ表を作成します。
-
使用上の注意
RDFデータを使用した協調フィルタリングの詳細は、「SQLベースのプロパティ・グラフ分析」、その中でも特に「協調フィルタリングの概要および例」を参照してください。
作業表がすでに存在する場合は、作業テーブルに関連したパラメータにそれらの名前を指定できます。この場合、アルゴリズムは、表を再作成せずに、前の反復の進行状況を継続できます。
作業表が存在しない場合、または既存の作業表を使用しない場合は、まずOPG_APIS.CF_PREPプロシージャをコールする必要があります。それにより、必要な作業表が作成されます。
協調フィルタリング・アルゴリズムの最終結果は、行列積の2つの因子であるwt_l
作業表とwt_r
作業表です。協調フィルタリングの予測を行う場合、これらの行列因子を使用する必要があります。
将来使用するために出力行列因子とアルゴリズムの現在の進行状況を保持することに関心がない場合は、OPG_APIS.CF_CLEANUPプロシージャをコールして、中間表と出力行列因子を保持するすべての作業表を削除できます。
例
次の例は、OPG_APIS.CF_PREPプロシージャをコールして作業表を作成し、それからOPG_APIS.CFプロシージャをコールし、rating
ラベルが付いたエッジを使用してphones
グラフで協調フィルタリングを実行します。
DECLARE wt_l varchar2(32); wt_r varchar2(32); wt_l1 varchar2(32); wt_r1 varchar2(32); wt_i varchar2(32); wt_ld varchar2(32); wt_rd varchar2(32); edge_tab_name varchar2(32) := 'phonesge$'; edge_label varchar2(32) := 'rating'; rating_property varchar2(32) := ''; iterations integer := 100; min_error number := 0.001; k integer := 5; learning_rate number := 0.001; decrease_rate number := 0.95; regularization number := 0.02; dop number := 2; tablespace varchar2(32) := null; options varchar2(32) := null; BEGIN opg_apis.cf_prep(edge_tab_name,wt_l,wt_r,wt_l1,wt_r1,wt_i,wt_ld,wt_rd); opg_apis.cf(edge_tab_name,edge_label,rating_property,iterations,min_error,k, learning_rate,decrease_rate,regularization,dop, wt_l,wt_r,wt_l1,wt_r1,wt_i,wt_ld,wt_rd,tablespace,options); END; /
次の例は、OPG_APIS.CF_PREPが以前に実行されていることを前提としており、その実行中に作成された様々な作業表を指定します。この場合、前述の例は、作業表の名前に「$CFL57$」のような接尾辞を自動的に割り当てました。(出力名は、生成時に表示できます。あるいは、OPG_APIS.CF_PREPへのコールでユーザー定義できます。)したがって、次の例は、OPG_APIS.CF_PREPを最初に呼び出さずに、OPG_APIS.CFを使用してアルゴリズムの追加反復を実行し、それによって前の実行の進行状況を継続できます。
DECLARE wt_l varchar2(32) = 'phonesge$$CFL57'; wt_r varchar2(32) = 'phonesge$$CFR57'; wt_l1 varchar2(32) = 'phonesge$$CFL157'; wt_r1 varchar2(32) = 'phonesge$$CFR157'; wt_i varchar2(32) = 'phonesge$$CFI57'; wt_ld varchar2(32) = 'phonesge$$CFLD57'; wt_rd varchar2(32) = 'phonesge$$CFRD57'; edge_tab_name varchar2(32) := 'phonesge$'; edge_label varchar2(32) := 'rating'; rating_property varchar2(32) := ''; iterations integer := 100; min_error number := 0.001; k integer := 5; learning_rate number := 0.001; decrease_rate number := 0.95; regularization number := 0.02; dop number := 2; tablespace varchar2(32) := null; options varchar2(32) := null; BEGIN opg_apis.cf(edge_tab_name,edge_label,rating_property,iterations,min_error,k, learning_rate,decrease_rate,regularization,dop, wt_l,wt_r,wt_l1,wt_r1,wt_i,wt_ld,wt_rd,tablespace,options); END; /
5.3 OPG_APIS.CF_CLEANUP
構文
OPG_APIS.CF_CLEANUP( wt_l IN/OUT VARCHAR2, wt_r IN/OUT VARCHAR2, wt_l1 IN/OUT VARCHAR2, wt_r1 IN/OUT VARCHAR2, wt_i IN/OUT VARCHAR2, wt_ld IN/OUT VARCHAR2, wt_rd IN/OUT VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
説明
グラフの協調フィルタリングが行われた後にクリーンアップ作業を実行します。中間表と出力行列因子を保持するすべての作業表が削除されます。
パラメータ
使用上の注意
将来使用するために出力行列因子とアルゴリズムの現在の進行状況を保持することに関心がない場合にのみ、このプロシージャをコールしてください。
結果として作成された積の因子(wt_l
表とwt_r
表)を使用してさらに予測を行う場合は、これらの2つの表のバックアップ・コピーを以前に作成しているのでないかぎり、このプロシージャをコールしないでください。
OPG_APIS.CFプロシージャに関する情報も参照してください。
例
次の例は、OPG_APIS.CF_PREPプロシージャの例で作成された作業表を削除します。
DECLARE wt_l varchar2(32) = 'phonesge$$CFL57'; wt_r varchar2(32) = 'phonesge$$CFR57'; wt_l1 varchar2(32) = 'phonesge$$CFL157'; wt_r1 varchar2(32) = 'phonesge$$CFR157'; wt_i varchar2(32) = 'phonesge$$CFI57'; wt_ld varchar2(32) = 'phonesge$$CFLD57'; wt_rd varchar2(32) = 'phonesge$$CFRD57'; BEGIN opg_apis.cf_cleanup('phonesge$',wt_l,wt_r,wt_l1,wt_r1,wt_i,wt_ld,wt_rd); END; /
5.4 OPG_APIS.CF_PREP
構文
OPG_APIS.CF_PREP( wt_l IN/OUT VARCHAR2. wt_r IN/OUT VARCHAR2. wt_l1 IN/OUT VARCHAR2. wt_r1 IN/OUT VARCHAR2. wt_i IN/OUT VARCHAR2. wt_ld IN/OUT VARCHAR2. wt_rd IN/OUT VARCHAR2. options IN VARCHAR2 DEFAULT NULL);
説明
必要な中間表の作成を含め、協調フィルタリングを実行する、後のOPG_APIS.CFプロシージャへのコールのための準備作業を実行します。
パラメータ
- edge_tab_name
-
プロパティ・グラフ・エッジ表(GE$)の名前。
- wt_l
-
行列因子分解の左側を保持する作業表の名前。
- wt_r
-
行列因子分解の右側を保持する作業表の名前。
- wt_l1
-
勾配降下法で左側の中間手順を保持する作業表の名前。
- wt_r1
-
勾配降下法で右側の中間手順を保持する作業表の名前。
- wt_I
-
中間行列積を保持する作業表の名前。
- wt_ld
-
勾配降下法で中間の左側のデルタを保持する作業表の名前。
- wt_rd
-
勾配降下法で中間の右側のデルタを保持する作業表の名前。
- options
-
操作に対する追加の設定。次の値が1つ以上含まれる(カンマ区切り)オプションの文字列。
-
'INMEMORY=T'は'inmemory'句を使用してスキーマ表を作成するためのオプションです。
-
'IMC_MC_B=T'はINMEMORY MEMCOMPRESS BASIC句を使用してスキーマ表を作成します。
-
使用上の注意
作業表の名前は、指定しても、NULLパラメータのままでもかまいません。作業表のパラメータ名が指定されていない場合は、自動的に名前が生成され、OUTパラメータとして返されます。これらの作業表名は、協調フィルタリング・アルゴリズムを実行するためにOPG_APIS.CFプロシージャをコールするときに使用できます。
OPG_APIS.CFの使用上の注意と例も参照してください。
例
次の例は、phones
という名前のグラフの作業表を作成し、それらの作業表に対して自動的に生成された名前を表示します。
DECLARE wt_l varchar2(32); wt_r varchar2(32); wt_l1 varchar2(32); wt_r1 varchar2(32); wt_i varchar2(32); wt_ld varchar2(32); wt_rd varchar2(32); BEGIN opg_apis.cf_prep('phonesge$',wt_l,wt_r,wt_l1,wt_r1,wt_i,wt_ld,wt_rd); dbms_output.put_line(' wt_l ' || wt_l); dbms_output.put_line(' wt_r ' || wt_r); dbms_output.put_line(' wt_l1 ' || wt_l1); dbms_output.put_line(' wt_r1 ' || wt_r1); dbms_output.put_line(' wt_i ' || wt_i); dbms_output.put_line(' wt_ld ' || wt_ld); dbms_output.put_line(' wt_rd ' || wt_rd); END; /
5.7 OPG_APIS.CLONE_GRAPH
構文
OPG_APIS.CLONE_GRAPH( orgGraph IN VARCHAR2, newGraph IN VARCHAR2, dop IN INTEGER DEFAULT 4, num_hash_ptns IN INTEGER DEFAULT 8, tbs IN VARCHAR2 DEFAULT NULL);
説明
元のグラフのクローンを作成し、新しいグラフに新しい名前を付けます。
パラメータ
使用上の注意
元のプロパティ・グラフはデータベースにすでに存在する必要があります。
例
次の例では、並列度4で8パーティションを使用して、表領域 my_ts
のプロパティ・グラフmypg
からmypgclone
という名前のクローン・グラフを作成します。
EXECUTE OPG_APIS.CLONE_GRAPH('mypg', 'mypgclone', 4, 8, 'my_ts');
5.8 OPG_APIS.COUNT_TRIANGLE
構文
OPG_APIS.COUNT_TRIANGLE( edge_tab_name IN VARCHAR2, wt_und IN OUT VARCHAR2, num_sub_ptns IN NUMBER DEFAULT 1, dop IN INTEGER DEFAULT 1, tbs IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL ) RETURN NUMBER;
説明
プロパティ・グラフでトライアングル・カウンティングを実行します。
パラメータ
使用上の注意
プロパティ・グラフ・エッジ表はデータベースに存在している必要があり、OPG_APIS.COUNT_TRIANGLE_PREPプロシージャは実行済である必要があります。
例
次の例は、connections
という名前のプロパティ・グラフでトライアングル・カウンティングを実行します。
set serveroutput on DECLARE wt1 varchar2(100); -- intermediate working table wt2 varchar2(100); wt3 varchar2(100); n number; BEGIN opg_apis.count_triangle_prep('connectionsGE$', wt1, wt2, wt3); n := opg_apis.count_triangle( 'connectionsGE$', wt1, num_sub_ptns=>1, dop=>2, tbs => 'MYPG_TS', options=>'PDML=T' ); dbms_output.put_line('total number of triangles ' || n); END; /
5.9 OPG_APIS.COUNT_TRIANGLE_CLEANUP
構文
COUNT_TRIANGLE_CLEANUP( edge_tab_name IN VARCHAR2, wt_undBM IN VARCHAR2, wt_rnmap IN VARCHAR2, wt_undAM IN VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
説明
トライアングル・カウンティングで使用される一時作業表をクリーンアップして削除します。
パラメータ
使用上の注意
トライアングル・カウンティングの実行後、このプロシージャを使用してクリーンアップする必要があります。
作業表はデータベース内に存在する必要があります。
例
次の例は、connections
という名前のプロパティ・グラフでトライアングル・カウンティングを実行し、終了後、作業表を削除します。
set serveroutput on DECLARE wt1 varchar2(100); -- intermediate working table wt2 varchar2(100); wt3 varchar2(100); n number; BEGIN opg_apis.count_triangle_prep('connectionsGE$', wt1, wt2, wt3); n := opg_apis.count_triangle_renum( 'connectionsGE$', wt1, wt2, wt3, num_sub_ptns=>1, dop=>2, tbs => 'MYPG_TS', options=>'PDML=T' ); dbms_output.put_line('total number of triangles ' || n); opg_apis.count_triangle_cleanup('connectionsGE$', wt1, wt2, wt3); END; /
5.10 OPG_APIS.COUNT_TRIANGLE_PREP
構文
OPG_APIS.COUNT_TRIANGLE_PREP( edge_tab_name IN VARCHAR2, wt_undBM IN OUT VARCHAR2, wt_rnmap IN OUT VARCHAR2, wt_undAM IN OUT VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
説明
トライアングル・カウンティングの準備を行います。
パラメータ
使用上の注意
プロパティ・グラフ・エッジ表はデータベース内に存在する必要があります。
例
次の例は、connections
という名前のプロパティ・グラフでとの準備を行います。
set serveroutput on DECLARE wt1 varchar2(100); -- intermediate working table wt2 varchar2(100); wt3 varchar2(100); n number; BEGIN opg_apis.count_triangle_prep('connectionsGE$', wt1, wt2, wt3); n := opg_apis.count_triangle_renum( 'connectionsGE$', wt1, wt2, wt3, num_sub_ptns=>1, dop=>2, tbs => 'MYPG_TS', options=>'CREATE_UNDIRECTED=T,REUSE_UNDIREC_TAB=T' ); dbms_output.put_line('total number of triangles ' || n); END; /
5.11 OPG_APIS.COUNT_TRIANGLE_RENUM
構文
COUNT_TRIANGLE_RENUM( edge_tab_name IN VARCHAR2, wt_undBM IN VARCHAR2, wt_rnmap IN VARCHAR2, wt_undAM IN VARCHAR2, num_sub_ptns IN INTEGER DEFAULT 1, dop IN INTEGER DEFAULT 1, tbs IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL ) RETURN NUMBER;
説明
その並列度で、グラフの頂点の再番号付けの最適化を使用して、プロパティ・グラフでトライアングル・カウンティングを実行します。
パラメータ
- edge_tab_name
-
プロパティ・グラフ・エッジ表の名前。
- wt_undBM
-
元のグラフの方向付けのないバージョンを保持する作業表(再番号付けの最適化前)。
- wt_rnmap
-
再番号付けの最適化前のマッピング表である作業表。
- wt_undAM
-
再番号付けの最適化の適用後のグラフ・データの方向付けのないバージョンを保持する作業表。
- num_sub_ptns
-
トライアングルの計算に使用する論理サブパーティションの数。正の整数で2の累乗(1、2、4、8など)である必要があります。比較的低い最大並列度のグラフの場合、値1(デフォルト)を使用します。
- dop
-
操作の並列度。デフォルトは1(並列度なし)です。
- tbs
-
作業表に格納されたデータを保持する表領域の名前。
- options
-
操作に対する追加の設定。次の値が1つ以上含まれる(カンマ区切り)オプションの文字列。
-
PDML=T
はパラレルDMLを使用可能にします。
-
使用上の注意
このファンクションによりアルゴリズムの実行は高速になりますが、より多くの領域が必要となります。
プロパティ・グラフ・エッジ表はデータベースに存在している必要があり、OPG_APIS.COUNT_TRIANGLE_PREPプロシージャは実行済である必要があります。
例
次の例は、connections
という名前のプロパティ・グラフでトライアングル・カウンティングを実行します。終了後にクリーンアップは実行されないので、準備プロシージャをコールせずに同じグラフでトライアングルを再度カウントすることができます。
set serveroutput on DECLARE wt1 varchar2(100); -- intermediate working table wt2 varchar2(100); wt3 varchar2(100); n number; BEGIN opg_apis.count_triangle_prep('connectionsGE$', wt1, wt2, wt3); n := opg_apis.count_triangle_renum( 'connectionsGE$', wt1, wt2, wt3, num_sub_ptns=>1, dop=>2, tbs => 'MYPG_TS', options=>'PDML=T' ); dbms_output.put_line('total number of triangles ' || n); END; /
5.12 OPG_APIS.CREATE_EDGES_TEXT_IDX
構文
OPG_APIS.CREATE_EDGES_TEXT_IDX( graph_owner IN VARCHAR2, graph_name IN VARCHAR2, pref_owner IN VARCHAR2 DEFAULT NULL, datastore IN VARCHAR2 DEFAULT NULL, filter IN VARCHAR2 DEFAULT NULL, storage IN VARCHAR2 DEFAULT NULL, wordlist IN VARCHAR2 DEFAULT NULL, stoplist IN VARCHAR2 DEFAULT NULL, lexer IN VARCHAR2 DEFAULT NULL, dop IN INTEGER DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL,);
説明
プロパティ・グラフ・エッジ表にテキスト索引を作成します。
パラメータ
使用上の注意
プロパティ・グラフはデータベースに存在する必要があります。
このプロシージャを実行するには、ALTER SESSION権限が必要です。
例
次の例では、並列度4でレクサーOPG_AUTO_LEXER
を使用して、ユーザーSCOTTが所有するプロパティ・グラフmypg
のエッジ表に、テキスト索引を作成します。
EXECUTE OPG_APIS.CREATE_EDGES_TEXT_IDX('SCOTT', 'mypg', 'MDSYS', null, null, null, null, null, 'OPG_AUTO_LEXER', 4, null);
5.13 OPG_APIS.CREATE_PG
構文
OPG_APIS.CREATE_PG( graph_name IN VARCHAR2, dop IN INTEGER DEFAULT NULL, num_hash_ptns IN INTEGER DEFAULT 8, tbs IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL);
説明
指定したプロパティ・グラフ名で、頂点、エッジ、テキスト索引およびスナップショットを格納するのに必要な、プロパティ・グラフ・スキーマ表を作成します。
パラメータ
- graph_name
-
プロパティ・グラフの名前。
- dop
-
操作の並列度。
- num_hash_ptns
-
表およびエッジ表のパーティション化に使用するハッシュ・パーティションの数2の累乗(2、4、8、16など)を使用することをお薦めします。
- tbs
-
すべてのグラフ・データおよび索引データを保持する表領域の名前。
- options
-
スキーマ表の索引の作成をカスタマイズするのに使用できるオプション。(1つまたは複数のカンマ区切り)
-
'SKIP_INDEX=T'はデフォルトの索引の作成をスキップします。
-
'SKIP_ERROR=T'は表/索引の作成時に発生したエラーを無視します。
-
'INMEMORY=T'はINMEMORY句を使用してスキーマ表を作成します。
-
'IMC_MC_B=T'はINMEMORY BASIC句を使用してスキーマ表を作成します。
-
使用上の注意
このプロシージャをコールするには、CREATE TABLEおよびCREATE INDEX権限が必要です。
デフォルトで、すべてのスキーマ表は基本圧縮が有効な状態で作成されます。
例
次の例では、8パーティションを使用して、表領域my_ts
にmypg
という名前のプロパティ・グラフを作成します。
EXECUTE OPG_APIS.CREATE_PG('mypg', 4, 8, 'my_ts');
5.14 OPG_APIS.CREATE_PG_SNAPSHOT_TAB
構文
OPG_APIS.CREATE_PG_SNAPSHOT_TAB( graph_owner IN VARCHAR2, graph_name IN VARCHAR2, dop IN INTEGER DEFAULT NULL, tbs IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL);
または
OPG_APIS.CREATE_PG_SNAPSHOT_TAB( graph_name IN VARCHAR2, dop IN INTEGER DEFAULT NULL, tbs IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL);
説明
指定したプロパティ・グラフ名で、グラフのスナップショットに関するデータを格納するのに必要な、プロパティ・グラフ・スキーマ表(<graph_name>SS$)を作成します。
パラメータ
使用上の注意
このプロシージャをコールするには、CREATE TABLE権限が必要です。
作成されたスナップショット表は次のような構造をとりますが、リリース間で変わる可能性があります。
Name Null? Type ----------------------------------------- -------- ---------------------------- SSID NOT NULL NUMBER CONTENTS BLOB SS_FILE BINARY FILE LOB TS TIMESTAMP(6) WITH TIME ZONE SS_COMMENT VARCHAR2(512)
デフォルトで、すべてのスキーマ表は基本圧縮が有効な状態で作成されます。
例
次の例では、並列度4でMY_TS表領域を使用して、現在のスキーマにプロパティ・グラフmypg
のスナップショット表を作成します。
EXECUTE OPG_APIS.CREATE_PG_SNAPSHOT_TAB('mypg', 4, 'my_ts');
5.15 OPG_APIS.CREATE_PG_TEXTIDX_TAB
構文
OPG_APIS.CREATE_PG_TEXTIDX_TAB( graph_owner IN VARCHAR2, graph_name IN VARCHAR2, dop IN INTEGER DEFAULT NULL, tbs IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL);
または
OPG_APIS.CREATE_PG_TEXTIDX_TAB( graph_name IN VARCHAR2, dop IN INTEGER DEFAULT NULL, tbs IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL);
説明
指定したプロパティ・グラフ名で、グラフのテキスト索引メタデータを管理するためのデータを格納するのに必要な、プロパティ・グラフ・テキスト索引スキーマ表(<graph_name>IT$)を作成します。
パラメータ
使用上の注意
このプロシージャをコールするには、CREATE TABLE権限が必要です。
作成された索引メタデータ表は次のような構造をとりますが、リリース間で変わる可能性があります。
( EIN nvarchar2(80) not null, -- index name ET number, -- entity type 1 - vertex, 2 -edge IT number, -- index type 1 - auto 0 - manual SE number, -- search engine 1 -solr, 0 - lucene K nvarchar2(3100), -- property key use an empty space when there is no K/V DT number, -- directory type 1 - MMAP, 2 - FS, 3 - JDBC LOC nvarchar2(3100), -- directory location (1, 2) NUMDIRS number, -- property key used to index CAN BE NULL VERSION nvarchar2(100), -- lucene version USEDT number, -- user data type (1 or 0) STOREF number, -- store fields into lucene CF nvarchar2(3100), -- configuration name SS nvarchar2(3100), -- solr server url SA nvarchar2(3100), -- solr server admin url ZT number, -- zookeeper timeout SH number, -- number of shards RF number, -- replication factor MS number, -- maximum shards per node PO nvarchar2(3100), -- preferred owner oracle text DS nvarchar2(3100), -- datastore FIL nvarchar2(3100), -- filter STR nvarchar2(3100), -- storage WL nvarchar2(3100), -- word list SL nvarchar2(3100), -- stop list LXR nvarchar2(3100), -- lexer OPTS nvarchar2(3100), -- options primary key (EIN, K, ET) )
デフォルトで、すべてのスキーマ表は基本圧縮が有効な状態で作成されます。
例
次の例では、並列度4でMY_TS表領域を使用して、現在のスキーマにプロパティ・グラフmypg
のプロパティ・グラフ・テキスト索引メタデータ表を作成します。
EXECUTE OPG_APIS.CREATE_PG_TEXTIDX_TAB('mypg', 4, 'my_ts');
5.16 OPG_APIS.CREATE_STAT_TABLE
構文
OPG_APIS.CREATE_STAT_TABLE( stattab IN VARCHAR2, tblspace IN VARCHAR2 DEFAULT NULL);
説明
プロパティ・グラフの統計を保持できる表を作成します。
使用上の注意
このプロシージャをコールするには、CREATE TABLE権限が必要です。
統計表には次の列があります。列とタイプはリリース間で異なる可能性があることに注意してください。
Name Null? Type ----------------------------------------- -------- ---------------------------- STATID VARCHAR2(128) TYPE CHAR(1) VERSION NUMBER FLAGS NUMBER C1 VARCHAR2(128) C2 VARCHAR2(128) C3 VARCHAR2(128) C4 VARCHAR2(128) C5 VARCHAR2(128) C6 VARCHAR2(128) N1 NUMBER N2 NUMBER N3 NUMBER N4 NUMBER N5 NUMBER N6 NUMBER N7 NUMBER N8 NUMBER N9 NUMBER N10 NUMBER N11 NUMBER N12 NUMBER N13 NUMBER D1 DATE T1 TIMESTAMP(6) WITH TIME ZONE R1 RAW(1000) R2 RAW(1000) R3 RAW(1000) CH1 VARCHAR2(1000) CL1 CLOB
例
次の例では、mystat
という名前の統計表を作成します。
EXECUTE OPG_APIS.CREATE_STAT_TABLE('mystat',null);
5.17 OPG_APIS.CREATE_SUB_GRAPH
構文
OPG_APIS.CREATE_SUB_GRAPH( graph_owner IN VARCHAR2, orgGraph IN VARCHAR2, newGraph IN VARCHAR2, nSrc IN NUMBER, depth IN NUMBER);
説明
指定した頂点からの拡張であるサブグラフを作成します。拡張の深さはカスタマイズ可能です。
パラメータ
使用上の注意
元のプロパティ・グラフはデータベースに存在する必要があります。
例
次の例は、所有者がSCOTTであるプロパティ・グラフmypg
からサブグラフmypgsub
を作成します。サブグラフには、頂点1と、IDの頂点から2ホップ内で到達可能なすべての頂点が含まれます。
EXECUTE OPG_APIS.CREATE_SUB_GRAPH('SCOTT', 'mypg', 'mypgsub', 1, 2);
5.18 OPG_APIS.CREATE_VERTICES_TEXT_IDX
構文
OPG_APIS.CREATE_VERTICES_TEXT_IDX( graph_owner IN VARCHAR2, graph_name IN VARCHAR2, pref_owner IN VARCHAR2 DEFAULT NULL, datastore IN VARCHAR2 DEFAULT NULL, filter IN VARCHAR2 DEFAULT NULL, storage IN VARCHAR2 DEFAULT NULL, wordlist IN VARCHAR2 DEFAULT NULL, stoplist IN VARCHAR2 DEFAULT NULL, lexer IN VARCHAR2 DEFAULT NULL, dop IN INTEGER DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL,);
説明
プロパティ・グラフ頂点表にテキスト索引を作成します。
パラメータ
使用上の注意
元のプロパティ・グラフはデータベースに存在する必要があります。
このプロシージャを実行するには、ALTER SESSION権限が必要です。
例
次の例では、並列度4でレクサーOPG_AUTO_LEXER
を使用して、ユーザーSCOTTが所有するプロパティ・グラフmypg
の頂点表に、テキスト索引を作成します。
EXECUTE OPG_APIS.CREATE_VERTICES_TEXT_IDX('SCOTT', 'mypg', null, null, null, null, null, null, 'OPG_AUTO_LEXER', 4, null);
5.19 OPG_APIS.DROP_EDGES_TEXT_IDX
構文
OPG_APIS.DROP_EDGES_TEXT_IDX( graph_owner IN VARCHAR2, graph_name IN VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
説明
プロパティ・グラフ・エッジ表のテキスト索引を削除します。
使用上の注意
テキスト索引はプロパティ・グラフ・エッジ表にすでに存在する必要があります。
例
次の例では、ユーザーSCOTTが所有するプロパティ・グラフmypg
のエッジ表のテキスト索引を削除します。
EXECUTE OPG_APIS.DROP_EDGES_TEXT_IDX('SCOTT', 'mypg', null);
5.21 OPG_APIS.DROP_PG_VIEW
構文
OPG_APIS.DROP_PG_VIEW( graph_name IN VARCHAR2); options IN VARCHAR2);
説明
プロパティ・グラフのビュー定義を削除します。
使用上の注意
物理プロパティ・グラフとプロパティ・グラフ・ビューの作成がサポートされます。たとえば、RDFモデルを指定して、RDFグラフの一番上でプロパティ・グラフ分析を実行できるように、RDFモデルでのプロパティ・グラフ・ビューの作成をサポートします。
このプロシージャは元に戻すことができません。
例
次の例は、mypg
という名前のプロパティ・グラフのビュー定義を削除します。
EXECUTE OPG_APIS.DROP_PG_VIEW('mypg');
5.22 OPG_APIS.DROP_VERTICES_TEXT_IDX
構文
OPG_APIS.DROP_VERTICES_TEXT_IDX( graph_owner IN VARCHAR2, graph_name IN VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
説明
プロパティ・グラフ頂点表のテキスト索引を削除します。
使用上の注意
テキスト索引はプロパティ・グラフ頂点表にすでに存在する必要があります。
例
次の例では、ユーザーSCOTTが所有するプロパティ・グラフmypg
の頂点表のテキスト索引を削除します。
EXECUTE OPG_APIS.DROP_VERTICES_TEXT_IDX('SCOTT', 'mypg', null);
5.23 OPG_APIS.ESTIMATE_TRIANGLE_RENUM
構文
COUNT_TRIANGLE_ESTIMATE( edge_tab_name IN VARCHAR2, wt_undBM IN VARCHAR2, wt_rnmap IN VARCHAR2, wt_undAM IN VARCHAR2, num_sub_ptns IN INTEGER DEFAULT 1, chunk_id IN INTEGER DEFAULT 1, dop IN INTEGER DEFAULT 1, tbs IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL ) RETURN NUMBER;
説明
プロパティ・グラフのトライアングルの数を予測します。
パラメータ
- edge_tab_name
-
プロパティ・グラフ・エッジ表の名前。
- wt_undBM
-
元のグラフの方向付けのないバージョンを保持する作業表(再番号付けの最適化前)。
- wt_rnmap
-
再番号付けの最適化前のマッピング表である作業表。
- wt_undAM
-
再番号付けの最適化の適用後のグラフ・データの方向付けのないバージョンを保持する作業表。
- num_sub_ptns
-
トライアングルの計算に使用する論理サブパーティションの数。正の整数で2の累乗(1、2、4、8など)である必要があります。比較的低い最大並列度のグラフの場合、値1(デフォルト)を使用します。
- chunk_id
-
トライアングルの予測に使用される論理サブパーティション(このパーティションのみカウントされます)。0と
num_sub_ptns*num_sub_ptns-1
の間の整数である必要があります。 - dop
-
操作の並列度。デフォルトは1(並列度なし)です。
- tbs
-
作業表に格納されたデータを保持する表領域の名前。
- options
-
操作に対する追加の設定。次の値が1つ以上含まれる(カンマ区切り)オプションの文字列。
-
PDML=T
はパラレルDMLを使用可能にします。
-
使用上の注意
このファンクションはグラフのサイズ1/(num_sub_ptns*num_sub_ptns)
の部分のトライアングルの合計をカウントします。グラフのトライアングルの合計数を予測するために、この結果とnum_sub_ptns*num_sub_ptns
を掛けることができます。
プロパティ・グラフ・エッジ表はデータベースに存在している必要があり、OPG_APIS.COUNT_TRIANGLE_PREPプロシージャは実行済である必要があります。
例
次の例は、connections
という名前のプロパティ・グラフでのトライアングルの数を予測します。終了後にクリーンアップは実行されないので、準備プロシージャをコールせずに同じグラフでトライアングルを再度カウントすることができます。
set serveroutput on DECLARE wt1 varchar2(100); -- intermediate working table wt2 varchar2(100); wt3 varchar2(100); n number; BEGIN opg_apis.count_triangle_prep('connectionsGE$', wt1, wt2, wt3); n := opg_apis.estimate_triangle_renum( 'connectionsGE$', wt1, wt2, wt3, num_sub_ptns=>64, chunk_id=>2048, dop=>2, tbs => 'MYPG_TS', options=>'PDML=T' ); dbms_output.put_line('estimated number of triangles ' || (n * 64 * 64)); END; /
5.24 OPG_APIS.EXP_EDGE_TAB_STATS
構文
OPG_APIS.EXP_EDGE_TAB_STATS( graph_name IN VARCHAR2, stattab IN VARCHAR2, statid IN VARCHAR2 DEFAULT NULL, cascade IN BOOLEAN DEFAULT TRUE, statown IN VARCHAR2 DEFAULT NULL, stat_category IN VARCHAR2 DEFAULT 'OBJECT_STATS');
説明
指定したプロパティ・グラフのエッジ表の統計情報を取得し、ユーザー作成の統計表に格納します。
パラメータ
使用上の注意
(なし。)
例
次の例では、統計表を作成し、この表にプロパティ・グラフ・エッジ表統計をエクスポートし、新しく作成された統計情報に対して関連する行をカウントする問合せを発行します。
EXECUTE OPG_APIS.CREATE_STAT_TABLE('mystat',null); EXECUTE OPG_APIS.EXP_EDGE_TAB_STATS('mypg', 'mystat', 'edge_stats_id_1', true, null, 'OBJECT_STATS'); SELECT count(1) FROM mystat WHERE statid='EDGE_STATS_ID_1'; 153
5.25 OPG_APIS.EXP_VERTEX_TAB_STATS
構文
OPG_APIS.EXP_VERTEX_TAB_STATS( graph_name IN VARCHAR2, stattab IN VARCHAR2, statid IN VARCHAR2 DEFAULT NULL, cascade IN BOOLEAN DEFAULT TRUE, statown IN VARCHAR2 DEFAULT NULL, stat_category IN VARCHAR2 DEFAULT 'OBJECT_STATS');
説明
指定したプロパティ・グラフの頂点表の統計情報を取得し、ユーザー作成の統計表に格納します。
パラメータ
使用上の注意
(なし。)
例
次の例では、統計表を作成し、この表にプロパティ・グラフ頂点表統計をエクスポートし、新しく作成された統計情報に対して関連する行をカウントする問合せを発行します。
EXECUTE OPG_APIS.CREATE_STAT_TABLE('mystat',null); EXECUTE OPG_APIS.EXP_VERTEX_TAB_STATS('mypg', 'mystat', 'vertex_stats_id_1', true, null, 'OBJECT_STATS'); SELECT count(1) FROM mystat WHERE statid='VERTEX_STATS_ID_1'; 108
5.26 OPG_APIS.FIND_CC_MAPPING_BASED
構文
OPG_APIS.FIND_CC_MAPPING_BASED( edge_tab_name IN VARCHAR2, wt_clusters IN OUT VARCHAR2, wt_undir IN OUT VARCHAR2, wt_cluas IN OUT VARCHAR2, wt_newas IN OUT VARCHAR2, wt_delta IN OUT VARCHAR2, dop IN INTEGER DEFAULT 4, rounds IN INTEGER DEFAULT 0, tbs IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL);
説明
プロパティ・グラフの接続されているコンポーネントを検出します。接続されているすべてのコンポーネントは wt_clusters
表に格納されます。元のグラフは方向性がないものとして扱われます。
パラメータ
- edge_tab_name
-
プロパティ・グラフ・エッジ表の名前。
- wt_clusters
-
最終的な頂点クラスタ・マッピングを保持する作業表。この表には列が2つあります(VID NUMBER、CLUSTER_ID NUMBER)。列VIDには頂点ID値が格納され、列CLUSTER_IDには対応するクラスタID値が格納されます。クラスタID値は長整数で、間にギャップがあってもかまいません。
空白の名前を指定すると、新しい表が生成され、その名前が戻されます。
- wt_undir
-
グラフの方向付けのないバージョンを保持する作業表。
- wt_cluas
-
現在のクラスタ割当てを保持する作業表。
- wt_newas
-
更新されたクラスタ割当てを保持する作業表。
- wt_delta
-
クラスタ割当ての変更(差分)を保持する作業表。
- dop
-
操作の並列度。デフォルトは4。
- rounds
-
接続されたコンポーネントの検索で実行する反復の最大数。デフォルト値の0 (ゼロ)は接続されたコンポーネントがすべて検出されるまで計算が継続することを意味します。
- tbs
-
作業表に格納されたデータを保持する表領域の名前。
- options
-
操作に対する追加の設定。
-
'PDML=T'はパラレルDMLを使用可能にします。
-
使用上の注意
プロパティ・グラフ・エッジ表はデータベースに存在している必要があり、OPG_APIS.FIND_CLUSTERS_PREPプロシージャは実行済である必要があります。
例
次の例は、mypg
という名前のプロパティ・グラフの接続されたコンポーネントを検索します。
DECLARE wtClusters varchar2(200) := 'mypg_clusters'; wtUnDir varchar2(200); wtCluas varchar2(200); wtNewas varchar2(200); wtDelta varchar2(200); BEGIN opg_apis.find_clusters_prep('mypgGE$', wtClusters, wtUnDir, wtCluas, wtNewas, wtDelta, ''); dbms_output.put_line('working tables names ' || wtClusters || ' ' || wtUnDir || ' ' || wtCluas || ' ' || wtNewas || ' ' || wtDelta ); opg_apis.find_cc_mapping_based(''mypgGE$', wtClusters, wtUnDir, wtCluas, wtNewas, wtDelta, 8, 0, 'MYTBS', 'PDML=T'); -- -- logic to consume results in wtClusters -- e.g.: -- select /*+ parallel(8) */ count(distinct cluster_id) -- from mypg_clusters; -- cleanup all the working tables opg_apis.find_clusters_cleanup('mypgGE$', wtClusters, wtUnDir, wtCluas, wtNewas, wtDelta, ''); END; /
5.27 OPG_APIS.FIND_CLUSTERS_CLEANUP
構文
OPG_APIS.FIND_CLUSTERS_CLEANUP( edge_tab_name IN VARCHAR2, wt_clusters IN OUT VARCHAR2, wt_undir IN OUT VARCHAR2, wt_cluas IN OUT VARCHAR2, wt_newas IN OUT VARCHAR2, wt_delta IN OUT VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
説明
毎週の接続されたコンポーネント(WCC)のクラスタの検出を実行した後にクリーンアップします。
パラメータ
- edge_tab_name
-
プロパティ・グラフ・エッジ表の名前。
- wt_clusters
-
最終的な頂点クラスタ・マッピングを保持する作業表。この表には列が2つあります(VID NUMBER、CLUSTER_ID NUMBER)。列VIDには頂点ID値が格納され、列CLUSTER_IDには対応するクラスタID値が格納されます。クラスタID値は長整数で、間にギャップがあってもかまいません。
空白の名前を指定すると、新しい表が生成され、その名前が戻されます。
- wt_undir
-
グラフの方向付けのないバージョンを保持する作業表。
- wt_cluas
-
現在のクラスタ割当てを保持する作業表。
- wt_newas
-
更新されたクラスタ割当てを保持する作業表。
- wt_delta
-
クラスタ割当ての変更(差分)を保持する作業表。
- options
-
(将来使用するために予約済)
使用上の注意
プロパティ・グラフ・エッジ表はデータベース内に存在する必要があります。
例
次の例は、mypg
という名前のプロパティ・グラフでのクラスタの検出の実行後にクリーンアップします。
EXECUTE OPG_APIS.FIND_CLUSTERS_CLEANUP('mypgGE$', wtClusters, wtUnDir, wtCluas, wtNewas, wtDelta, null);
5.28 OPG_APIS.FIND_CLUSTERS_PREP
構文
OPG_APIS.FIND_CLUSTERS_PREP( edge_tab_name IN VARCHAR2, wt_clusters IN OUT VARCHAR2, wt_undir IN OUT VARCHAR2, wt_cluas IN OUT VARCHAR2, wt_newas IN OUT VARCHAR2, wt_delta IN OUT VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
説明
毎週の接続されたコンポーネント(WCC)のクラスタの検出の実行を準備します。
パラメータ
- edge_tab_name
-
プロパティ・グラフ・エッジ表の名前。
- wt_clusters
-
最終的な頂点クラスタ・マッピングを保持する作業表。この表には列が2つあります(VID NUMBER、CLUSTER_ID NUMBER)。列VIDには頂点ID値が格納され、列CLUSTER_IDには対応するクラスタID値が格納されます。クラスタID値は長整数で、間にギャップがあってもかまいません。
空白の名前を指定すると、新しい表が生成され、その名前が戻されます。
- wt_undir
-
グラフの方向付けのないバージョンを保持する作業表。
- wt_cluas
-
現在のクラスタ割当てを保持する作業表。
- wt_newas
-
更新されたクラスタ割当てを保持する作業表。
- wt_delta
-
クラスタ割当ての変更(差分)を保持する作業表。
- options
-
索引の作成に対する追加の設定。
使用上の注意
プロパティ・グラフ・エッジ表はデータベース内に存在する必要があります。
例
次の例は、mypg
という名前のプロパティ・グラフでのクラスタの検出の実行の準備をします。
DECLARE wtClusters varchar2(200); wtUnDir varchar2(200); wtCluas varchar2(200); wtNewas varchar2(200); wtDelta varchar2(200); BEGIN opg_apis.find_clusters_prep('mypgGE$', wtClusters, wtUnDir, wtCluas, wtNewas, wtDelta, ''); dbms_output.put_line('working tables names ' || wtClusters || ' ' || wtUnDir || ' ' || wtCluas || ' ' || wtNewas || ' ' || wtDelta ); END; /
5.29 OPG_APIS.FIND_SP
構文
OPG_APIS.FIND_SP( edge_tab_name IN VARCHAR2, source IN NUMBER, dest IN NUMBER, exp_tab IN OUT VARCHAR2, dop IN INTEGER, stats_freq IN INTEGER DEFAULT 20000, path_output OUT VARCHAR2, weights_output OUT VARCHAR2, edge_tab_name IN VARCHAR2, options IN VARCHAR2 DEFAULT NULL, scn IN NUMBER DEFAULT NULL);
説明
プロパティ・グラフで指定した出力頂点と入力頂点の間の最短パスを検索します。各エッジに数値の重みプロパティがあると想定します。(実際のエッジ・プロパティ名は重要ではありません)
パラメータ
- edge_tab_name
-
プロパティ・グラフ・エッジ表の名前。
- source
-
出力(開始)頂点ID。
- dest
-
入力(終了)頂点ID。
- exp_tab
-
最短パスの計算に使用される拡張表の名前。
- dop
-
操作の並列度。
- stats_freq
-
表に関する統計の収集の頻度。
- path_output
-
出力の最短パス。最短パスでの頂点のIDからなり、空白文字で区切られます。
- weights_output
-
出力の最短パスの重み。最短パスでのエッジの重みからなり、空白文字で区切られます。
- options
-
操作に対する追加の設定。次の値が1つ以上含まれる(カンマ区切り)オプションの文字列。
-
CREATE_UNDIRECTED=T
-
REUSE_UNDIRECTED_TAB=T
-
- scn
-
エッジ表のSCN。nullの可能性があります。
使用上の注意
プロパティ・グラフ・エッジ表はデータベースに存在している必要があり、OPG_APIS.FIND_SP_PREPプロシージャはコール済である必要があります。
例
次の例は、最短パスの計算の準備をしてから、mypg
という名前のプロパティ・グラフで頂点1から頂点35への最短パスを検索します。
set serveroutput on DECLARE w varchar2(2000); wtExp varchar2(2000); vPath varchar2(2000); BEGIN opg_apis.find_sp_prep('mypgGE$', wtExp, null); opg_apis.find_sp('mypgGE$', 1, 35, wtExp, 1, 200000, vPath, w, null, null); dbms_output.put_line('Shortest path ' || vPath); dbms_output.put_line('Path weights ' || w); END; /
出力は、次のようになります。頂点1から開始して、頂点2へ、最後は入力頂点(35)への1つの最短パスを示します。
Shortest path 1 2 35 Path weights 3 2 1 1
5.30 OPG_APIS.FIND_SP_CLEANUP
構文
OPG_APIS.FIND_SP_CLEANUP( edge_tab_name IN VARCHAR2, exp_tab IN OUT VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
説明
1つ以上の最短パスの計算を実行した後にクリーンアップします。
使用上の注意
各OPG_APIS.FIND_SPコールの後に、このプロシージャをコールする必要はありません。OPG_APIS.FIND_SP_CLEANUPをコールする前に、複数の最短パスの計算を実行することができます。
例
次の例は、mypg
という名前のプロパティ・グラフでの最短パスの計算の実行後にクリーンアップします。
EXECUTE OPG_APIS.FIND_SP_CLEANUP('mypgGE$', wtExpTab, null);
5.31 OPG_APIS.FIND_SP_PREP
構文
OPG_APIS.FIND_SP_PREP( edge_tab_name IN VARCHAR2, exp_tab IN OUT VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
説明
最短パスの計算の準備を行います。
パラメータ
使用上の注意
プロパティ・グラフ・エッジ表はデータベース内に存在する必要があります。
例
次の例は、mypg
という名前のプロパティ・グラフでの最短パスの計算の実行前に準備作業を行います
set serveroutput on DECLARE wtExp varchar2(2000); -- name of working table for shortest path calculation BEGIN opg_apis.find_sp_prep('mypgGE$', wtExp, null); dbms_output.put_line('Working table name ' || wtExp); END; /
出力は、次のようになります。(出力はSQLセッションIDによって異なります)
Working table name "MYPGGE$$TWFS277"
5.32 OPG_APIS.GET_BUILD_ID
構文
OPG_APIS.GET_BUILD_ID() RETURN VARCHAR2;
説明
Oracle Spatial and Graphプロパティ・グラフ・サポートの現在のビルドIDをYYYYMMDDの書式で戻します。
パラメータ
(なし。)
使用上の注意
(なし。)
例
次の例は、Oracle Spatial and Graphプロパティ・グラフ・サポートの現在のビルドIDを戻します。
SQL> SELECT OPG_APIS.GET_BUILD_ID() FROM DUAL; OPG_APIS.GET_BUILD_ID() -------------------------------------------------------------------------------- 20160606
5.33 OPG_APIS.GET_GEOMETRY_FROM_V_COL
構文
OPG_APIS.GET_GEOMETRY_FROM_V_COL( v IN NVARCHAR2, srid IN NUMBER DEFAULT 8307 ) RETURN SDO_GEOMETRY;
説明
空間データおよびオプションでSRID値を使用して構成されたSDO_GEOMETRYオブジェクトを戻します。
パラメータ
使用上の注意
誤った構文や解析エラーがある場合、このファンクションは例外を生成するのではなくNULLを戻します。
例
次の例では、点、線、およびポリゴン・ジオメトリを示します。
SQL> select opg_apis.get_geometry_from_v_col('10.0 5.0',8307) from dual;
OPG_APIS.GET_GEOMETRY_FROM_V_COL('10.05.0',8307)(SDO_GTYPE, SDO_SRID, SDO_POINT(
--------------------------------------------------------------------------------
SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(10, 5, NULL), NULL, NULL)
SQL> select opg_apis.get_geometry_from_v_col('LINESTRING(30 10, 10 30, 40 40)',8307) from dual;
OPG_APIS.GET_GEOMETRY_FROM_V_COL('LINESTRING(3010,1030,4040)',8307)(SDO_GTYPE, S
--------------------------------------------------------------------------------
SDO_GEOMETRY(2002, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY(
30, 10, 10, 30, 40, 40))
SQL> select opg_apis.get_geometry_from_v_col('POLYGON((-83.6 34.1, -83.6 34.3, -83.4 34.3, -83.4 34.1, -83.6 34.1))', 8307) from dual;
OPG_APIS.GET_GEOMETRY_FROM_V_COL('POLYGON((-83.634.1,-83.634.3,-83.434.3,-83.434
--------------------------------------------------------------------------------
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARR
AY(-83.6, 34.1, -83.6, 34.3, -83.4, 34.3, -83.4, 34.1, -83.6, 34.1))
5.34 OPG_APIS.GET_GEOMETRY_FROM_V_T_COLS
構文
OPG_APIS.GET_GEOMETRY_FROM_V_T_COLS( v IN NVARCHAR2, t IN INTEGER, srid IN NUMBER DEFAULT 8307 ) RETURN SDO_GEOMETRY;
説明
空間データ、タイプ値、およびオプションでSRID値を使用して構成されたSDO_GEOMETRYオブジェクトを戻します。
パラメータ
使用上の注意
誤った構文や解析エラーがある場合、このファンクションは例外を生成するのではなくNULLを戻します。
例
次の例では、点、線、およびポリゴン・ジオメトリを示します。
SQL> select opg_apis.get_geometry_from_v_t_cols('10.0 5.0', 20, 8307) from dual;
OPG_APIS.GET_GEOMETRY_FROM_V_T_COLS('10.05.0',20,8307)(SDO_GTYPE, SDO_SRID, SDO_
--------------------------------------------------------------------------------
SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(10, 5, NULL), NULL, NULL)
SQL> select opg_apis.get_geometry_from_v_t_cols('LINESTRING(30 10, 10 30, 40 40)', 20, 8307) from dual;
OPG_APIS.GET_GEOMETRY_FROM_V_T_COLS('LINESTRING(3010,1030,4040)',20,8307)(SDO_GT
--------------------------------------------------------------------------------
SDO_GEOMETRY(2002, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY(
30, 10, 10, 30, 40, 40))
SQL> select opg_apis.get_geometry_from_v_t_cols('POLYGON((-83.6 34.1, -83.6 34.3, -83.4 34.3, -83.4 34.1, -83.6 34.1))', 20, 8307) from dual;
OPG_APIS.GET_GEOMETRY_FROM_V_T_COLS('POLYGON((-83.634.1,-83.634.3,-83.434.3,-83.
--------------------------------------------------------------------------------
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARR
AY(-83.6, 34.1, -83.6, 34.3, -83.4, 34.3, -83.4, 34.1, -83.6, 34.1))
5.35 OPG_APIS.GET_LATLONG_FROM_V_COL
構文
OPG_APIS.GET_LATLONG_FROM_V_COL( v IN NVARCHAR2, srid IN NUMBER DEFAULT 8307 ) RETURN SDO_GEOMETRY;
説明
空間データおよびオプションでSRID値を使用して構成されたSDO_GEOMETRYオブジェクトを戻します。
パラメータ
使用上の注意
このファンクションでは、v
パラメータのジオメトリの各頂点に対し、最初の数字が緯度の値で2番目の数字が経度の値であるとみなします(これは経度が最初で緯度が2番目である、SDO_GEOMETRYオブジェクトの定義での順番とは逆です)。
誤った構文や解析エラーがある場合、このファンクションは例外を生成するのではなくNULLを戻します。
例
次の例では、点SDO_GEOMETRYオブジェクトを戻します。入力点の座標の値は、戻されたSDO_GEOMETRYオブジェクトでは“スワップ”されていることに注意してください。
SQL> select opg_apis.get_latlong_from_v_col('5.1 10.0', 8307) from dual;
OPG_APIS.GET_LATLONG_FROM_V_COL('5.110.0',8307)(SDO_GTYPE, SDO_SRID, SDO_POINT(X
--------------------------------------------------------------------------------
SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(10, 5.1, NULL), NULL, NULL)
5.36 OPG_APIS.GET_LATLONG_FROM_V_T_COLS
構文
OPG_APIS.GET_LATLONG_FROM_V_T_COLS( v IN NVARCHAR2, t IN INTEGER, srid IN NUMBER DEFAULT 8307 ) RETURN SDO_GEOMETRY;
説明
空間データ、タイプ値、およびオプションでSRID値を使用して構成されたSDO_GEOMETRYオブジェクトを戻します。
パラメータ
使用上の注意
このファンクションでは、v
パラメータのジオメトリの各頂点に対し、最初の数字が緯度の値で2番目の数字が経度の値であるとみなします(これは経度が最初で緯度が2番目である、SDO_GEOMETRYオブジェクトの定義での順番とは逆です)。
誤った構文や解析エラーがある場合、このファンクションは例外を生成するのではなくNULLを戻します。
例
次の例では、点SDO_GEOMETRYオブジェクトを戻します。入力点の座標の値は、戻されたSDO_GEOMETRYオブジェクトでは“スワップ”されていることに注意してください。
SQL> select opg_apis.get_latlong_from_v_t_cols('5.1 10.0',20,8307) from dual;
OPG_APIS.GET_LATLONG_FROM_V_T_COLS('5.110.0',20,8307)(SDO_GTYPE, SDO_SRID, SDO_P
--------------------------------------------------------------------------------
SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(10, 5.1, NULL), NULL, NULL)
5.37 OPG_APIS.GET_LONG_LAT_GEOMETRY
構文
OPG_APIS.GET_LONG_LAT_GEOMETRY( x IN NUMBER, y IN NUMBER, srid IN NUMBER DEFAULT 8307 ) RETURN SDO_GEOMETRY;
説明
XおよびY点の座標値、およびオプションでSRID値を使用して構成されたSDO_GEOMETRYオブジェクトを戻します。
パラメータ
使用上の注意
誤った構文や解析エラーがある場合、このファンクションは例外を生成するのではなくNULLを戻します。
例
次の例では、X、Y座標が10.5、5.0の点のジオメトリ・オブジェクトを戻し、結果のジオメトリ・オブジェクトのSRIDとして8307を使用します。
SQL> select opg_apis.get_long_lat_geometry(10.0, 5.0, 8307) from dual;
OPG_APIS.GET_LONG_LAT_GEOMETRY(10.0,5.0,8307)(SDO_GTYPE, SDO_SRID, SDO_POINT(X,
--------------------------------------------------------------------------------
SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(10, 5, NULL), NULL, NULL)
5.38 OPG_APIS.GET_LATLONG_FROM_V_COL
構文
OPG_APIS.GET_LATLONG_FROM_V_COL( v IN NVARCHAR2, srid IN NUMBER DEFAULT 8307 ) RETURN SDO_GEOMETRY;
説明
空間データおよびオプションでSRID値を使用して構成されたSDO_GEOMETRYオブジェクトを戻します。
パラメータ
使用上の注意
このファンクションでは、v
パラメータのジオメトリの各頂点に対し、最初の数字が緯度の値で2番目の数字が経度の値であるとみなします(これは経度が最初で緯度が2番目である、SDO_GEOMETRYオブジェクトの定義での順番とは逆です)。
誤った構文や解析エラーがある場合、このファンクションは例外を生成するのではなくNULLを戻します。
例
次の例では、点SDO_GEOMETRYオブジェクトを戻します。入力点の座標の値は、戻されたSDO_GEOMETRYオブジェクトでは“スワップ”されていることに注意してください。
SQL> select opg_apis.get_latlong_from_v_col('5.1 10.0', 8307) from dual;
OPG_APIS.GET_LATLONG_FROM_V_COL('5.110.0',8307)(SDO_GTYPE, SDO_SRID, SDO_POINT(X
--------------------------------------------------------------------------------
SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(10, 5.1, NULL), NULL, NULL)
5.39 OPG_APIS.GET_LONGLAT_FROM_V_T_COLS
構文
OPG_APIS.GET_LONGLAT_FROM_V_T_COLS( v IN NVARCHAR2, t IN INTEGER, srid IN NUMBER DEFAULT 8307 ) RETURN SDO_GEOMETRY;
説明
空間データ、タイプ値、およびオプションでSRID値を使用して構成されたSDO_GEOMETRYオブジェクトを戻します。
パラメータ
使用上の注意
誤った構文や解析エラーがある場合、このファンクションは例外を生成するのではなくNULLを戻します。
例
このファンクションでは、v
パラメータのジオメトリの各頂点に対し、最初の数字が経度の値で2番目の数字が緯度の値であるとみなします(これはSDO_GEOMETRYオブジェクト定義の順序です)。
次の例では、点SDO_GEOMETRYオブジェクトを戻します。
SQL> select opg_apis.get_longlat_from_v_t_cols('5.1 10.0',20,8307) from dual;
OPG_APIS.GET_LATLONG_FROM_V_T_COLS('5.110.0',20,8307)(SDO_GTYPE, SDO_SRID, SDO_P
--------------------------------------------------------------------------------
SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(5.1, 10, NULL), NULL, NULL)
5.40 OPG_APIS.GET_SCN
構文
OPG_APIS.GET_SCN() RETURN NUMBER;
説明
Oracle Spatial and Graphプロパティ・グラフ・サポートのSCN(システム変更番号)をYYYYMMDDの書式で戻します。
パラメータ
(なし。)
使用上の注意
SCN値はコミットのたびに増分されます。
例
次の例は、Oracle Spatial and Graphプロパティ・グラフ・サポートの現在のビルドIDを戻します。
SQL> SELECT OPG_APIS.GET_SCN() FROM DUAL; OPG_APIS.GET_SCN() ------------------ 1478701
5.41 OPG_APIS.GET_VERSION
構文
OPG_APIS.GET_VERSION() RETURN VARCHAR2;
説明
Oracle Spatial and Graphプロパティ・グラフ・サポートの現在のバージョンを戻します。
パラメータ
(なし。)
使用上の注意
(なし。)
例
次の例は、Oracle Spatial and Graphプロパティ・グラフ・サポートの現在のバージョンを戻します。
SQL> SELECT OPG_APIS.GET_VERSION() FROM DUAL; OPG_APIS.GET_VERSION() -------------------------------------------------------------------------------- 12.2.0.1 P1
5.42 OPG_APIS.GET_WKTGEOMETRY_FROM_V_COL
構文
OPG_APIS.GET_WKTGEOMETRY_FROM_V_COL( v IN NVARCHAR2, srid IN NUMBER DEFAULT NULL ) RETURN SDO_GEOMETRY;
説明
WKT (well known text)形式のジオメトリ、およびオプションでSRIDに基づくSDO_GEOMETRYオブジェクトを戻します。
パラメータ
使用上の注意
誤った構文や解析エラーがある場合、このファンクションは例外を生成するのではなくNULLを戻します。
例
次の文では、点ジオメトリおよび線ストリング・ジオメトリを戻します
SQL> select opg_apis.get_wktgeometry_from_v_col('POINT(10.0 5.1)', 8307) from dual;
OPG_APIS.GET_WKTGEOMETRY_FROM_V_COL('POINT(10.05.1)',8307)(SDO_GTYPE, SDO_SRID,
--------------------------------------------------------------------------------
SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(10, 5.1, NULL), NULL, NULL)
SQL> select opg_apis.get_wktgeometry_from_v_col('LINESTRING(30 10, 10 30, 40 40)',8307) from dual;
OPG_APIS.GET_WKTGEOMETRY_FROM_V_COL('LINESTRING(3010,1030,4040)',8307)(SDO_GTYPE
--------------------------------------------------------------------------------
SDO_GEOMETRY(2002, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1), SDO_ORDINATE_ARRAY(
30, 10, 10, 30, 40, 40))
5.43 OPG_APIS.GET_WKTGEOMETRY_FROM_V_T_COLS
構文
OPG_APIS.GET_WKTGEOMETRY_FROM_V_T_COLS( v IN NVARCHAR2, t IN INTEGER, srid IN NUMBER DEFAULT NULL ) RETURN SDO_GEOMETRY;
説明
WKT (well known text)形式のジオメトリ、タイプ値、およびオプションでSRIDに基づくSDO_GEOMETRYオブジェクトを戻します。
パラメータ
使用上の注意
誤った構文や解析エラーがある場合、このファンクションは例外を生成するのではなくNULLを戻します。
例
次の文では、点ジオメトリおよびポリゴン・ジオメトリを戻します
SQL> select opg_apis.get_wktgeometry_from_v_t_cols('POINT(10.0 5.1)',20,8307) from dual;
OPG_APIS.GET_WKTGEOMETRY_FROM_V_T_COLS('POINT(10.05.1)',20,8307)(SDO_GTYPE, SDO_
--------------------------------------------------------------------------------
SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(10, 5.1, NULL), NULL, NULL)
SQL> select opg_apis.get_wktgeometry_from_v_t_cols('POLYGON((-83.6 34.1, -83.6 34.3, -83.4 34.3, -83.4 34.1, -83.6 34.1))',20,8307) from dual;
OPG_APIS.GET_WKTGEOMETRY_FROM_V_T_COLS('POLYGON((-83.634.1,-83.634.3,-83.434.3,-
--------------------------------------------------------------------------------
SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARR
AY(-83.6, 34.1, -83.6, 34.3, -83.4, 34.3, -83.4, 34.1, -83.6, 34.1))
5.44 OPG_APIS.GRANT_ACCESS
構文
OPG_APIS.GRANT_ACCESS( graph_owner IN VARCHAR2, graph_name IN VARCHAR2, other_user IN VARCHAR2, privilege IN VARCHAR2);
説明
プロパティ・グラフのアクセス権限を別のデータベース・ユーザーに付与します。
パラメータ
使用上の注意
(なし。)
例
次の例では、データベース・ユーザーSCOTTが所有するmypg
プロパティ・グラフに対する読取りおよび選択(RS
)権限をデータベース・ユーザーPGUSRに付与します。次にPGUSRとして接続し、SCOTTスキーマのmypg
頂点表を問合せます。
CONNECT scott/<password> EXECUTE OPG_APIS.GRANT_ACCESS('scott', 'mypg', 'pgusr', 'RS'); CONNECT pgusr/<password> SELECT count(1) from scott.mypgVT$; 17
5.45 OPG_APIS.IMP_EDGE_TAB_STATS
構文
OPG_APIS.IMP_EDGE_TAB_STATS( graph_name IN VARCHAR2, stattab IN VARCHAR2, statid IN VARCHAR2 DEFAULT NULL, cascade IN BOOLEAN DEFAULT TRUE, statown IN VARCHAR2 DEFAULT NULL, no_invalidate BOOLEAN DEFAULT FALSE, force BOOLEAN DEFAULT FALSE, stat_category IN VARCHAR2 DEFAULT 'OBJECT_STATS');
説明
stattab
で識別されるユーザー統計表から指定したプロパティ・グラフ・エッジ表(GE$)に関する統計情報を取り出し、ディクショナリに格納します。cascade
がTRUE
の場合、指定した表に関連付けられているすべての索引統計情報もインポートされます。
パラメータ
- graph_name
-
プロパティ・グラフの名前。
- stattab
-
統計表の名前。
- statid
-
stattab
内の統計情報を関連付けるオプションの識別子。 - cascade
-
TRUE
の場合は、列と索引の統計情報がエクスポートされます。 - statown
-
stattab
を含むスキーマ。 - no_invalidate
-
TRUE
の場合、依存カーソルが無効化されることはありません。FALSE
の場合、依存カーソルがすぐに無効化されます。DBMS_STATS.AUTO_INVALIDATE
(通常のデフォルト)が有効な場合、Oracle Databaseによって依存カーソルを無効化するタイミングが決定されます。 - force
-
TRUE
の場合、統計情報がロックされていても操作が行われます。 - stat_category
-
値を区切るのにカンマを使用して、インポートする統計情報を指定します。サポートされる値は、
'OBJECT_STATS'
(デフォルト: 表統計、列統計および索引統計)と'SYNOPSES'
(統計が増分的に保持されるときに作成される補助統計)です。
使用上の注意
(なし。)
例
次の例では、統計表を作成し、この表にエッジ表統計をエクスポートし、新しく作成された統計情報に対して関連する行をカウントする問合せを発行し、最後に統計情報をインポートします。
EXECUTE OPG_APIS.CREATE_STAT_TABLE('mystat',null); EXECUTE OPG_APIS.EXP_EDGE_TAB_STATS('mypg', 'mystat', 'edge_stats_id_1', true, null, 'OBJECT_STATS'); SELECT count(1) FROM mystat WHERE statid='EDGE_STATS_ID_1'; 153 EXECUTE OPG_APIS.IMP_EDGE_TAB_STATS('mypg', 'mystat', 'edge_stats_id_1', true, null, false, true, 'OBJECT_STATS');
5.46 OPG_APIS.IMP_VERTEX_TAB_STATS
構文
OPG_APIS.IMP_VERTEX_TAB_STATS( graph_name IN VARCHAR2, stattab IN VARCHAR2, statid IN VARCHAR2 DEFAULT NULL, cascade IN BOOLEAN DEFAULT TRUE, statown IN VARCHAR2 DEFAULT NULL, no_invalidate BOOLEAN DEFAULT FALSE, force BOOLEAN DEFAULT FALSE, stat_category IN VARCHAR2 DEFAULT 'OBJECT_STATS');
説明
stattab
で識別されるユーザー統計表から指定したプロパティ・グラフ頂点表(VT$)に関する統計情報を取り出し、ディクショナリに格納します。cascade
がTRUE
の場合、指定した表に関連付けられているすべての索引統計情報もインポートされます。
パラメータ
- graph_name
-
プロパティ・グラフの名前。
- stattab
-
統計表の名前。
- statid
-
stattab
内の統計情報を関連付けるオプションの識別子。 - cascade
-
TRUE
の場合は、列と索引の統計情報がエクスポートされます。 - statown
-
stattab
を含むスキーマ。 - no_invalidate
-
TRUE
の場合、依存カーソルが無効化されることはありません。FALSE
の場合、依存カーソルがすぐに無効化されます。DBMS_STATS.AUTO_INVALIDATE
(通常のデフォルト)が有効な場合、Oracle Databaseによって依存カーソルを無効化するタイミングが決定されます。 - force
-
TRUE
の場合、統計情報がロックされていても操作が行われます。 - stat_category
-
値を区切るのにカンマを使用して、インポートする統計情報を指定します。サポートされる値は、
'OBJECT_STATS'
(デフォルト: 表統計、列統計および索引統計)と'SYNOPSES'
(統計が増分的に保持されるときに作成される補助統計)です。
使用上の注意
(なし。)
例
次の例では、統計表を作成し、この表に頂点表統計をエクスポートし、新しく作成された統計情報に対して関連する行をカウントする問合せを発行し、最後に統計情報をインポートします。
EXECUTE OPG_APIS.CREATE_STAT_TABLE('mystat',null); EXECUTE OPG_APIS.EXP_VERTEX_TAB_STATS('mypg', 'mystat', 'vertex_stats_id_1', true, null, 'OBJECT_STATS'); SELECT count(1) FROM mystat WHERE statid='VERTEX_STATS_ID_1'; 108 EXECUTE OPG_APIS.IMP_VERTEX_TAB_STATS('mypg', 'mystat', 'vertex_stats_id_1', true, null, false, true, 'OBJECT_STATS');
5.47 OPG_APIS.PR
構文
OPG_APIS.PR( edge_tab_name IN VARCHAR2, d IN NUMBER DEFAULT 0.85, num_iterations IN NUMBER DEFAULT 10, convergence IN NUMBER DEFAULT 0.1, dop IN INTEGER DEFAULT 4, wt_node_pr IN OUT VARCHAR2, wt_node_nextpr IN OUT VARCHAR2, wt_edge_tab_deg IN OUT VARCHAR2, wt_delta IN OUT VARCHAR2, tablespace IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL, num_vertices OUT NUMBER);
説明
ページ・ランクの計算の準備を行います。
パラメータ
- edge_tab_name
-
プロパティ・グラフ・エッジ表の名前。
- d
-
減衰係数。
- num_iterations
-
ページ・ランク値の計算の反復回数。
- convergence
-
しきい値。現在の反復のページ・ランク値と次の反復のページ・ランク値の違いがこのしきい値よりも小さい場合、計算は停止します。
- dop
-
操作の並列度。
- wt_node_pr
-
頂点のページ・ランク値を保持する作業表の名前。
- wt_node_pr
-
頂点のページ・ランク値を保持する作業表の名前。
- wt_node_next_pr
-
次の反復の頂点のページ・ランク値を保持する作業表の名前。
- wt_edge_tab_deg
-
エッジとノードの並列度情報を保持する作業表の名前。
- wt_delta
-
いくつかの特別な頂点に関する情報を保持する作業表の名前。
- tablespace
-
すべてのグラフ・データおよび索引データを保持する表領域の名前。
- options
-
操作に対する追加の設定。次の値が1つ以上含まれる(カンマ区切り)オプションの文字列。
-
CREATE_UNDIRECTED=T
-
REUSE_UNDIRECTED_TAB=T
-
- num_vertices
-
ページ・ランクの計算により処理される頂点の数。
使用上の注意
プロパティ・グラフ・エッジ表はデータベースに存在している必要があり、OPG_APIS.PR_PREPプロシージャはコール済である必要があります。
例
次の例は、準備を実行してから、mypg
という名前のプロパティ・グラフの頂点のページ・ランク値を計算します。
set serveroutput on DECLARE wt_pr varchar2(2000); -- name of the table to hold PR value of the current iteration wt_npr varchar2(2000); -- name of the table to hold PR value for the next iteration wt3 varchar2(2000); wt4 varchar2(2000); wt5 varchar2(2000); n_vertices number; BEGIN wt_pr := 'mypgPR'; opg_apis.pr_prep('mypgGE$', wt_pr, wt_npr, wt3, wt4, null); dbms_output.put_line('Working table names ' || wt_pr || ', wt_npr ' || wt_npr || ', wt3 ' || wt3 || ', wt4 '|| wt4); opg_apis.pr('mypgGE$', 0.85, 10, 0.01, 4, wt_pr, wt_npr, wt3, wt4, 'SYSAUX', null, n_vertices) ; END; /
出力は、次のようになります。
Working table names "MYPGPR", wt_npr "MYPGGE$$TWPRX277", wt3 "MYPGGE$$TWPRE277", wt4 "MYPGGE$$TWPRD277"
計算されたページ・ランク値は、次の定義およびデータを含むmypgpr表に格納されます。
SQL> desc mypgpr; Name Null? Type ----------------------------------------- -------- ---------------------------- NODE NOT NULL NUMBER PR NUMBER C NUMBER SQL> select node, pr from mypgpr; NODE PR ---------- ---------- 101 .1925 201 .2775 102 .1925 104 .74383125 105 .313625 103 .1925 100 .15 200 .15
5.48 OPG_APIS.PR_CLEANUP
構文
OPG_APIS.PR_CLEANUP( edge_tab_name IN VARCHAR2, wt_node_pr IN OUT VARCHAR2, wt_node_nextpr IN OUT VARCHAR2, wt_edge_tab_deg IN OUT VARCHAR2, wt_delta IN OUT VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
説明
ページ・ランクの計算の実行後にクリーンアップを実行します。
パラメータ
使用上の注意
OPG_APIS.PRプロシージャへの各コールの後はクリーンナップを実行する必要はありません。OPG_APIS.PR_CLEANUPプロシージャのコール前に、いくつかのページ・ランク計算を実行することができます。
例
次の例は、mypg
という名前のプロパティ・グラフでのページ・ランクの計算の実行後にクリーンアップの作業を行います。
EXECUTE OPG_APIS.PR_CLEANUP('mypgGE$', wt_pr, wt_npr, wt3, wt4, null);
5.49 OPG_APIS.PR_PREP
構文
OPG_APIS.PR_PREP( edge_tab_name IN VARCHAR2, wt_node_pr IN OUT VARCHAR2, wt_node_nextpr IN OUT VARCHAR2, wt_edge_tab_deg IN OUT VARCHAR2, wt_delta IN OUT VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
説明
ページ・ランクの計算の準備を行います。
パラメータ
使用上の注意
プロパティ・グラフ・エッジ表はデータベース内に存在する必要があります。
例
次の例は、mypg
という名前のプロパティ・グラフでのページ・ランクの計算の実行前に準備作業を行います。
set serveroutput on DECLARE wt_pr varchar2(2000); -- name of the table to hold PR value of the current iteration wt_npr varchar2(2000); -- name of the table to hold PR value for the next iteration wt3 varchar2(2000); wt4 varchar2(2000); wt5 varchar2(2000); BEGIN wt_pr := 'mypgPR'; opg_apis.pr_prep('mypgGE$', wt_pr, wt_npr, wt3, wt4, null); dbms_output.put_line('Working table names ' || wt_pr || ', wt_npr ' || wt_npr || ', wt3 ' || wt3 || ', wt4 '|| wt4); END; /
出力は、次のようになります。
Working table names "MYPGPR", wt_npr "MYPGGE$$TWPRX277", wt3 "MYPGGE$$TWPRE277", wt4 "MYPGGE$$TWPRD277"
5.50 OPG_APIS.PREPARE_TEXT_INDEX
構文
OPG_APIS.PREPARE_TEXT_INDEX();
説明
テキスト索引がNVARCHAR2列に作成される前に、必要な準備作業を行います。
パラメータ
なし。
使用上の注意
このプロシージャを実行するには、ALTER SESSIONが必要です。
例
次の例では、テキスト索引がNVARCHAR2列に作成される前に、必要な準備作業を行います。
EXECUTE OPG_APIS.PREPARE_TEXT_INDEX();
5.52 OPG_APIS.SPARSIFY_GRAPH
構文
OPG_APIS.SPARSIFY_GRAPH( edge_tab_name IN VARCHAR2, threshold IN NUMBER DEFAULT 0.5, min_keep IN INTEGER DEFAULT 1, dop IN INTEGER DEFAULT 4, wt_out_tab IN OUT VARCHAR2, wt_und_tab IN OUT VARCHAR2, wt_hsh_tab IN OUT VARCHAR2, wt_mch_tab IN OUT VARCHAR2, tbs IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL);
説明
プロパティ・グラフ・エッジ表で疎化(エッジ・トリミング)を実行します。
パラメータ
- edge_tab_name
-
プロパティ・グラフ・エッジ表(GE$)の名前。
- threshold
-
実行する必要のある疎化の量を制御する数値。値が小さくなるほど、エッジは削除されます。一般的な値: 0.1、0.2、...0.5
- min_keep
-
各頂点に対して保持する必要のある隣接エッジの最小数を示す正の整数。推奨値は1です。
- dop
-
操作の並列度。
- wt_out_tab
-
出力の疎化されたグラフを保持する作業表。
- wt_und_tab
-
元のグラフの方向付けのないバージョンを保持する作業表。
- wt_hsh_tab
-
グラフの最小ハッシュ値を保持する作業表。
- wt_mch_tab
-
最小ハッシュ値の一致数を保持する作業表。
- tbs
-
作業表データを保持する作業表。
- options
-
操作に対する追加の設定。次の値が1つ以上含まれる(カンマ区切り)オプションの文字列。
-
'INMEMORY=T'は'inmemory'句を使用してスキーマ表を作成するためのオプションです。
-
'IMC_MC_B=T'はINMEMORY MEMCOMPRESS BASIC句を使用してスキーマ表を作成します。
-
使用上の注意
このプロシージャをコールするには、CREATE TABLE権限が必要です。
使用される疎化アルゴリズムはローカル疎化に基づく最小ハッシュです。データ管理に関する2011 ACM SIGMOD国際会議の議事録「Local graph sparsification for scalable clustering」を参照してください(https://cs.uwaterloo.ca/~tozsu/courses/CS848/W15/presentations/ElbagouryPresentation-2.pdf)。
疎化はグラフのトポロジにのみ関係します。プロパティ(K/V)は何も関係しません。
例
次の例では、mypg
のエッジ表に対し、準備作業を行い、作業表の名前を出力し、疎化を実行します。出力の疎化されたグラフは、2つの列SVIDおよびDVIDのあるLEAN_PGという名前の表に格納されます。
SQL> set serveroutput on DECLARE my_lean_pg varchar2(100) := 'lean_pg'; -- output table wt2 varchar2(100); wt3 varchar2(100); wt4 varchar2(100); BEGIN opg_apis.sparsify_graph_prep('mypgGE$', my_lean_pg, wt2, wt3, wt4, null); dbms_output.put_line('wt2 ' || wt2 || ', wt3 ' || wt3 || ', wt4 '|| wt4); opg_apis.sparsify_graph('mypgGE$', 0.5, 1, 4, my_lean_pg, wt2, wt3, wt4, 'SEMTS', null); END; / wt2 "MYPGGE$$TWSPAU275", wt3 "MYPGGE$$TWSPAH275", wt4 "MYPGGE$$TWSPAM275" SQL> describe lean_pg; Name Null? Type ----------------------------------------- -------- ---------------------------- SVID NUMBER DVID NUMBER
5.53 OPG_APIS.SPARSIFY_GRAPH_CLEANUP
構文
OPG_APIS.SPARSIFY_GRAPH_CLEANUP( edge_tab_name IN VARCHAR2, wt_out_tab IN OUT VARCHAR2, wt_und_tab IN OUT VARCHAR2, wt_hsh_tab IN OUT VARCHAR2, wt_mch_tab IN OUT VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
説明
プロパティ・グラフ・エッジ表を疎化(エッジ・トリミング)の後、クリーンアップします。
パラメータ
使用上の注意
作業表は、操作の完了後に削除されます。
例
次の例では、mypg
のエッジ表に対し、準備作業を行い、作業表の名前を出力し、疎化を実行してから、クリーンアップを実行します。
SQL> set serveroutput on DECLARE my_lean_pg varchar2(100) := 'lean_pg'; wt2 varchar2(100); wt3 varchar2(100); wt4 varchar2(100); BEGIN opg_apis.sparsify_graph_prep('mypgGE$', my_lean_pg, wt2, wt3, wt4, null); dbms_output.put_line('wt2 ' || wt2 || ', wt3 ' || wt3 || ', wt4 '|| wt4); opg_apis.sparsify_graph('mypgGE$', 0.5, 1, 4, my_lean_pg, wt2, wt3, wt4, 'SEMTS', null); -- Add logic here to consume SVID, DVID in LEAN_PG table -- -- cleanup opg_apis.sparsify_graph_cleanup('mypgGE$', my_lean_pg, wt2, wt3, wt4, null); END; /
5.54 OPG_APIS.SPARSIFY_GRAPH_PREP
構文
OPG_APIS.SPARSIFY_GRAPH_PREP( edge_tab_name IN VARCHAR2, wt_out_tab IN OUT VARCHAR2, wt_und_tab IN OUT VARCHAR2, wt_hsh_tab IN OUT VARCHAR2, wt_mch_tab IN OUT VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
説明
プロパティ・グラフ・エッジ表の疎化の実行に必要な作業表の名前を準備します。
パラメータ
- edge_tab_name
-
プロパティ・グラフ・エッジ表(GE$)の名前。
- wt_out_tab
-
出力の疎化されたグラフを保持する作業表。
- wt_und_tab
-
元のグラフの方向付けのないバージョンを保持する作業表。
- wt_hsh_tab
-
グラフの最小ハッシュ値を保持する作業表。
- wt_mch_tab
-
最小ハッシュ値の一致数を保持する作業表。
- options
-
操作に対する追加の設定。次の値が1つ以上含まれる(カンマ区切り)オプションの文字列。
-
'INMEMORY=T'は'inmemory'句を使用してスキーマ表を作成するためのオプションです。
-
'IMC_MC_B=T'はINMEMORY MEMCOMPRESS BASIC句を使用してスキーマ表を作成します。
-
使用上の注意
使用される疎化アルゴリズムはローカル疎化に基づく最小ハッシュです。データ管理に関する2011 ACM SIGMOD国際会議の議事録「Local graph sparsification for scalable clustering」を参照してください(https://cs.uwaterloo.ca/~tozsu/courses/CS848/W15/presentations/ElbagouryPresentation-2.pdf)。
例
次の例では、mypg
のエッジ表に対し、準備作業を行い、作業表の名前を出力します。
set serveroutput on DECLARE my_lean_pg varchar2(100) := 'lean_pg'; wt2 varchar2(100); wt3 varchar2(100); wt4 varchar2(100); BEGIN opg_apis.sparsify_graph_prep('mypgGE$', my_lean_pg, wt2, wt3, wt4, null); dbms_output.put_line('wt2 ' || wt2 || ', wt3 ' || wt3 || ', wt4 '|| wt4); END; /
出力は次のようになります。
wt2 "MYPGGE$$TWSPAU275", wt3 "MYPGGE$$TWSPAH275", wt4 "MYPGGE$$TWSPAM275"