この章では、データ・ディクショナリ内のマイニング・モデル情報の検索方法およびマイニング・モデルに関する各種操作方法について説明します。
この章では、次の項目について説明します。
マイニング・モデルはデータベース・スキーマ・オブジェクトです。マイニング・モデルは、ALL
、DBA
およびUSER
の各データ・ディクショナリ・ビューで問合せできます。
表7-1に、Oracle Data Miningで作成されるマイニング・モデルについてデータ・ディクショナリ・ビュー別に示します。
すべてのアクセス可能なマイニング・モデル・オブジェクトに関する情報を入手するには、ALL_MINING_MODELS
データ・ディクショナリ・ビューを問い合せます。このビューのUSER
およびDBA
バージョンも使用できます。
SQL> DESCRIBE all_mining_models Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER NOT NULL VARCHAR2(30) MODEL_NAME NOT NULL VARCHAR2(30) MINING_FUNCTION VARCHAR2(30) ALGORITHM VARCHAR2(30) CREATION_DATE NOT NULL DATE BUILD_DURATION NUMBER MODEL_SIZE NUMBER COMMENTS VARCHAR2(4000)
SQL COMMENT
で作成されたコメントがある場合、COMMENTS
列に格納されます。「マイニング・モデルへのコメントの追加」を参照してください。
参照: マイニング機能およびマイニング・アルゴリズムについては、『Oracle Data Mining概要』を参照してください。
|
すべてのアクセス可能なマイニング・モデル属性に関する情報を入手するには、ALL_MINING_MODEL_ATTRIBUTES
データ・ディクショナリ・ビューを問い合せます。このビューのUSER
およびDBA
バージョンも使用できます。
SQL> DESCRIBE all_mining_model_attributes Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER NOT NULL VARCHAR2(30) MODEL_NAME NOT NULL VARCHAR2(30) ATTRIBUTE_NAME NOT NULL VARCHAR2(30) ATTRIBUTE_TYPE VARCHAR2(11) DATA_TYPE VARCHAR2(12) DATA_LENGTH NUMBER DATA_PRECISION NUMBER DATA_SCALE NUMBER USAGE_TYPE VARCHAR2(8) TARGET VARCHAR2(3)
参照: 属性の詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。
|
すべてのアクセス可能なマイニング・モデル設定に関する情報を入手するには、ALL_MINING_MODEL_SETTINGS
データ・ディクショナリ・ビューを問い合せます。このビューのUSER
およびDBA
バージョンも使用できます。
SQL> DESCRIBE all_mining_model_settings Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER NOT NULL VARCHAR2(30) MODEL_NAME NOT NULL VARCHAR2(30) SETTING_NAME NOT NULL VARCHAR2(30) SETTING_VALUE VARCHAR2(4000) SETTING_TYPE VARCHAR2(7)
モデル設定は、モデルの作成で使用する設定表で指定できます。これらの設定はすべて、デフォルト値を持っています。デフォルト値は、設定表で指定された設定により変更されない場合、または設定表が存在しない場合に使用されます。
参照: モデル設定の詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。 アルゴリズム設定の詳細は、『Oracle Data Mining概要』を参照してください。
|
SQL COMMENT
文を使用してマイニング・モデルにコメントを関連付けることができます。
COMMENT ON MINING MODEL schema_name.model_name IS string;
コメントを削除するには、コメントを空の''
文字列に設定します。
自分のスキーマのモデルDT_SH_CLAS_SAMPLE
にコメントを追加するには、次の文を使用します。
SQL> COMMENT ON mining model dt_sh_clas_sample IS 'Decision Tree model predicts promotion response';
USER_MINING_MODELS
カタログ・ビューを問い合せることによって、コメントを表示できます。
SQL> COLUMN comments FORMAT a22 SQL> SELECT model_name, mining_function, algorithm, comments FROM user_mining_models; MODEL_NAME MINING_FUNCTION ALGORITHM COMMENTS ----------------- ---------------- -------------- ----------------------------------------------- DT_SH_CLAS_SAMPLE CLASSIFICATION DECISION_TREE Decision Tree model predicts promotion response
データベースからこのコメントを削除するには、次の文を発行します。
SQL> COMMENT ON mining model dt_sh_clas_sample '';
SQL監査システムを使用してデータ・マイニング・モデルの操作を追跡できます。
注意: 別のスキーマのマイニング・モデルを監査するには、AUDIT ANY システム権限が必要です。 |
データベース初期化パラメータAUDIT_TRAIL
は、データベースの監査機能を制御します。監査を有効にするには、AUDIT_TRAIL
を、DB
、DB_EXTENDED
またはOS
に設定します。
監査情報が記録されないようにするには、AUDIT_TRAIL
をNONE
に設定します。デフォルトでは、AUDIT_TRAIL
はNONE
に設定されています。
データ・マイニング・モデルの監査証跡を開くには、SQLのAUDIT
文を使用します。
AUDIT {operation|ALL} ON mining model schema_name.model_name;
マイニング・モデルに関する次の操作を追跡できます。
監査操作 | 説明 |
---|---|
AUDIT |
マイニング・モデルの監査証跡の生成 |
COMMENT |
マイニング・モデルへのコメントの追加 |
GRANT |
ユーザーに対するモデルのアクセス権の付与 |
RENAME |
モデルの名前変更 |
SELECT |
モデルの適用またはモデル・シグネチャの表示 |
たとえば、次の文は、DMUSER
スキーマのモデルNB_SH_CLAS_SAMPLE
に関するすべてのGRANT
操作の監査証跡を生成します。
SQL> AUDIT GRANT ON mining model dmuser.nb_sh_clas_sample;
次の文は、同じモデルに関するすべての操作の監査証跡を生成します。
SQL> AUDIT GRANT,AUDIT,COMMENT,RENAME,SELECT ON mining model dmuser.nb_sh_clas_sample;
次のセマンティクスを追加することにより監査条件を絞り込むことができます。
AUDIT {operation|ALL} ON MINING MODEL schema_name.model_name [BY [SESSION|ACCESS]] [WHENEVER [NOT] SUCCESSFUL]];
AUDIT
文によって有効にした1つ以上の監査操作を停止するには、NOAUDIT
文を使用します。
NOAUDIT {operation| ALL} ON MINING MODEL model_name [WHENEVER [NOT] SUCCESSFUL]];
Oracle Databaseは、監査操作ごとに次の内容を含む監査レコードを作成します。
操作を実行しているユーザーの名前
操作のタイプ
操作の対象となるオブジェクト
操作の日時
一部のデータ・ディクショナリ・ビューは監査情報を表示します。次に例を示します。
注意: Oracle Database監査システムは、スキーマ・オブジェクトの操作を追跡するための、強力で高度に構成可能なツールです。詳細は、次のマニュアルを参照してください。
|
データ・マイニング・モデルをフラット・ファイルにエクスポートして作業途中の操作をバックアップしたり、Oracle Database Enterprise Editionの別のインスタンスに(たとえば、開発用データベースから本番データベースに)モデルを移動したりできます。モデルをエクスポートおよびインポートする方法は、いずれもOracle Data Pumpのテクノロジに基づいています。
Oracle Data Pumpは、2つのコマンドライン・クライアントと2つのPL/SQL APIで構成されています。コマンドライン・クライアントのEXPDP
およびIMPDP
により、データ・ポンプ・エクスポートおよびインポート・ユーティリティに対する使いやすいインタフェースが提供されます。データ・マイニングAPIでも、データ・ポンプ・エクスポートおよびインポート・ユーティリティを使用します。
データベースでのアクセス権限に応じて、様々なレベルのモデルをエクスポートおよびインポートできます。
データベース。DBAがEXPDP
を使用してデータベース全体をエクスポートすると、そのデータベース内のデータ・マイニング・モデルがすべてエクスポートされます。IMPDP
ユーティリティは、他のオブジェクトとともにすべてのモデルをデータベースにインポートします。
スキーマ。DBAまたは個々のユーザーがEXPDP
を使用してスキーマをエクスポートすると、そのスキーマ内のデータ・マイニング・モデルがすべてエクスポートされます。同様に、IMPDP
は、他のオブジェクトとともにすべてのモデルをスキーマにインポートします。
モデルのみ。データ・マイニングAPIには、マイニング・モデルのエクスポートやインポートを行うためのユーティリティが含まれます。スキーマ内のすべてのマイニング・モデル、または特定の基準に一致するマイニング・モデルを選択できます。
EXPDP
またはIMPDP
を使用して個々のモデルを選択することはできません。
データ・ポンプ・エクスポート・ユーティリティは、モデルを構成する表およびメタデータを、1つ以上のファイルからなるダンプ・ファイル・セットに書き出します。データ・ポンプ・インポート・ユーティリティは、ダンプ・ファイルから表およびメタデータを取得し、それらをターゲット・データベースにリストアします。
参照:
|
データ・マイニング・モデルをエクスポートおよびインポートするには、ディレクトリ・オブジェクトの読取りおよび書込み権限が必要です。また、その他のデータベース権限が必要な場合もあります。
ディレクトリ・オブジェクトとは、ホスト・コンピュータ上の物理ディレクトリのデータベース内での論理名です。ディレクトリ・オブジェクトの読取りおよび書込み権限がないと、Oracle Database内からホスト・コンピュータのファイル・システムにアクセスできません。
ディレクトリ・オブジェクトを作成するにはCREATE ANY DIRECTORY
権限が必要です。
次のSQLコマンドにより、dmtest
というディレクトリ・オブジェクトが作成されます(すでに存在している場合は、再作成されます)。ファイル・システムのディレクトリ(この例ではC:\oracle\product\11.1.0\dmining
)がすでに存在し、オペレーティング・システムによって付与される共有読取り/書込みアクセス権限が設定されている必要があります。
CREATE OR REPLACE DIRECTORY dmtest AS 'c:\oracle\product\11.1.0\dmining';
このSQLコマンドを使用して、ユーザーdmuser
に対しdmtest
への読取りおよび書込みアクセス権限を付与します。
GRANT ALL ON DIRECTORY dmtest TO dmuser;
データベース・ディレクトリの作成の詳細は、『Oracle Database SQL言語リファレンス』でCREATE DIRECTORY
コマンドおよびGRANT
コマンドを参照してください。
あらゆるデータ・ポンプ機能(モデルや他のオブジェクトの別のスキーマへのインポートなど)を最大限に活用するには、データベースでの特別な権限が必要となる場合もあります。これらの権限は、EXP_FULL_DATABASE
ロールおよびIMP_FULL_DATABASE
ロールによって付与され、特権ユーザー(SYS
ユーザー、またはDBA
ロールを持つユーザーなど)のみが使用できます。
ユーザー自身のスキーマからモデルをエクスポートする場合は、これらのロールは必要ありません。モデルをインポートするには、ダンプ・ファイル・セットを作成したユーザーと同じデータベース権限を付与されている必要があります。そうでない場合は、完全なシステム権限を持つDBAがモデルのインポートを行います。
DBMS_DATA_MINING
PL/SQLパッケージには、次の2つのプロシージャが含まれています。
これらのプロシージャの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。
Oracle Databaseは、業界標準のJava Data Mining(JDM)API仕様を実装しています。この仕様には、次の2つのインタフェースが含まれます。
標準JDM APIの詳細は、JSR-73仕様のJavadocを参照してください。このJavadocは、Oracle Technology Networkの次のURLから利用できます。
http://www.oracle.com/technology/products/bi/odm/JSR-73/index.html
データ・マイニングのエクスポート・ユーティリティとインポート・ユーティリティを使用すると、ユーザーのスキーマに内部用にのみ使用される表が作成されます。
これらの表は変更しないでください。ただし、エクスポート・ジョブまたはインポート・ジョブが実行中でないときは削除できます。ユーティリティによって、次のジョブ用にこれらが再作成されます。
この例では、2つのモデルを含むダンプ・ファイルを作成し、このダンプ・ファイルからモデルをインポートします。
この例は、Linuxシステムで生成されたものです。ディレクトリ・オブジェクトmydir
は、パス/scratch/dumpfiles
を表します。(「ディレクトリ・オブジェクト」を参照してください。)
この例では、dmuser
スキーマには2つのマイニング・モデルが含まれています。
SQL> CONNECT dmuser
Enter password: password
SQL> SELECT model_name FROM user_mining_models;
MODEL_NAME
------------------------------
GLMR_SH_REGR_SAMPLE
SVMC_SH_CLAS_SAMPLE
次のコマンドにより、dmuser
からすべてのモデルが、ディレクトリ・オブジェクトmydir
で表されるディレクトリにエクスポートされます。
SQL> EXECUTE dbms_data_mining.export_model('all_dmuser_models.dmp', 'mydir');
エクスポートまたはインポートを実行すると、ダンプ・ファイルと同じディレクトリにログ・ファイルが作成されます。エラー・メッセージは現在の出力デバイス(スクリーンなど)に戻されます。また、ログ・ファイルに追加情報が出力される場合もあります。
このサンプル・エクスポートにより、mydir
ディレクトリに次の2つのファイルが作成されます。
ALL_DMUSER_MODELS01.DMP
という名前のダンプ・ファイル(2桁の接尾辞が名前に追加される)
DMUSER_EXP_920.LOG
という名前のログ・ファイル
ファイルのデフォルト名の詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。
ログ・ファイルは、システム・コマンドまたはシステム・エディタで表示できます。ファイルを見つけるには、物理ディレクトリのパスを知っている必要があります。
DMUSER_EXP_920.LOG
には、エクスポートされた2つのマイニング・モデルおよびサポートしているオブジェクトが表示されます。
Starting "DMUSER"."DMUSER_exp_17": DM_EXPIMP_JOB_ID=17 Estimate in progress using BLOCKS method... Processing object type TABLE_EXPORT/TABLE/TABLE_DATA Total estimation using BLOCKS method: 1.062 MB Processing object type TABLE_EXPORT/TABLE/TABLE Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Processing object type TABLE_EXPORT/TABLE/POST_INSTANCE/PROCACT_INSTANCE . . exported "DMUSER"."DM$PIGLMR_SH_REGR_SAMPLE" 7.085 KB 14 rows . . exported "DMUSER"."DM$PISVMC_SH_CLAS_SAMPLE" 7.507 KB 17 rows . . exported "DMUSER"."DM$PCGLMR_SH_REGR_SAMPLE" 53.27 KB 2278 rows . . exported "DMUSER"."DM$PAGLMR_SH_REGR_SAMPLE" 5.796 KB 24 rows . . exported "DMUSER"."DM$PBGLMR_SH_REGR_SAMPLE" 15.76 KB 67 rows . . exported "DMUSER"."DM$PDGLMR_SH_REGR_SAMPLE" 8 KB 66 rows . . exported "DMUSER"."DM$PDSVMC_SH_CLAS_SAMPLE" 9.023 KB 88 rows . . exported "DMUSER"."DM$PFGLMR_SH_REGR_SAMPLE" 5.656 KB 10 rows . . exported "DMUSER"."DM$POSVMC_SH_CLAS_SAMPLE" 5.320 KB 8 rows . . exported "DMUSER"."DM$PXSVMC_SH_CLAS_SAMPLE" 7.265 KB 77 rows . . exported "DMUSER"."DM$PZSVMC_SH_CLAS_SAMPLE" 6.164 KB 1 rows . . exported "DMUSER"."DM$P_MODEL_EXPIMP_TEMP" 5.921 KB 2 rows Master table "DMUSER"."DMUSER_exp_17" successfully loaded/unloaded ****************************************************************************** Dump file set for DMUSER.DMUSER_exp_17 is: /scratch/dumpfiles/all_dmuser_models01.dmp Job "DMUSER"."DMUSER_exp_17" successfully completed at 10:30:19
モデルはエクスポートされた後もDMUSER
に存在します。この例では、ダンプ・ファイルからインポートする前にモデルを削除します。インポートにより同じ名前を持つ既存のモデルが上書きされることはありません。
SQL> EXECUTE dbms_data_mining.drop_model('GLMR_SH_REGR_SAMPLE'); SQL> EXECUTE dbms_data_mining.drop_model('SVMC_SH_CLAS_SAMPLE');
次のコマンドは、ダンプ・ファイルのすべてのモデルをDMUSER
スキーマにリストアします。
SQL> EXECUTE dbms_data_mining.import_model('all_dmuser_models01.dmp', 'mydir');
必要な権限を持つユーザーは、ダンプ・ファイルのモデルを別のスキーマにロードできます。ターゲット・スキーマは、モデルのエクスポート元となったスキーマと同一の表領域へのアクセス権限および同一の権限を持つ必要があります。
CREATE USER dmuser2 IDENTIFIED BY password
default tablespace dmuser
temporary tablespace temp
quota unlimited on dmuser;
@ $ORACLE_HOME/RDBMS/demo/dmshgrants dmuser2
インポート・コマンドをSYS
として実行すると、2つのモデルがDMUSER2
スキーマにロードされます。
SQL> EXECUTE dbms_data_mining.import_model('all_dmuser_models01.dmp', 'mydir', null, null, null, 'todmuser2', 'dmuser:dmuser2');
このパラメータでは、TODMUSER2.LOG
をログ・ファイルの名前として指定しています。拡張子.LOG
は、自動的に名前に追加されます。ログ・ファイルには、インポートされたモデルおよびサポートするメタデータの名前が示されます。
Master table "SYS"."todmusr2" successfully loaded/unloaded Starting "SYS"."todmusr4": DM_EXPIMP_JOB_ID=21 Processing object type TABLE_EXPORT/TABLE/TABLE Processing object type TABLE_EXPORT/TABLE/TABLE_DATA . . imported "DMUSER2"."DM$PIGLMR_SH_REGR_SAMPLE" 7.085 KB 14 rows . . imported "DMUSER2"."DM$PISVMC_SH_CLAS_SAMPLE" 7.507 KB 17 rows . . imported "DMUSER2"."DM$PCGLMR_SH_REGR_SAMPLE" 53.27 KB 2278 rows . . imported "DMUSER2"."DM$PAGLMR_SH_REGR_SAMPLE" 5.796 KB 24 rows . . imported "DMUSER2"."DM$PBGLMR_SH_REGR_SAMPLE" 15.76 KB 67 rows . . imported "DMUSER2"."DM$PDGLMR_SH_REGR_SAMPLE" 8 KB 66 rows . . imported "DMUSER2"."DM$PDSVMC_SH_CLAS_SAMPLE" 9.023 KB 88 rows . . imported "DMUSER2"."DM$PFGLMR_SH_REGR_SAMPLE" 5.656 KB 10 rows . . imported "DMUSER2"."DM$POSVMC_SH_CLAS_SAMPLE" 5.320 KB 8 rows . . imported "DMUSER2"."DM$PXSVMC_SH_CLAS_SAMPLE" 7.265 KB 77 rows . . imported "DMUSER2"."DM$PZSVMC_SH_CLAS_SAMPLE" 6.164 KB 1 rows . . imported "DMUSER2"."DM$P_MODEL_EXPIMP_TEMP" 5.921 KB 2 rows Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Processing object type TABLE_EXPORT/TABLE/POST_INSTANCE/PROCACT_INSTANCE Job "SYS"."todmusr2" successfully completed at 11:15:26