ヘッダーをスキップ
Oracle Data Mining管理者ガイド
11g リリース1(11.1)
E05705-02
  目次へ
目次
索引へ
索引

戻る
戻る
 
次へ
次へ
 

7 マイニング・モデルのスキーマ・オブジェクト

この章では、データ・ディクショナリ内のマイニング・モデル情報の検索方法およびマイニング・モデルに関する各種操作方法について説明します。


参照:

マイニング・モデル・オブジェクトに関するシステム権限およびオブジェクト権限については、第4章「データ・マイニング用のユーザーと権限」を参照してください。

この章では、次の項目について説明します。

データ・ディクショナリ情報の入手

マイニング・モデルはデータベース・スキーマ・オブジェクトです。マイニング・モデルは、ALLDBAおよびUSERの各データ・ディクショナリ・ビューで問合せできます。

表7-1に、Oracle Data Miningで作成されるマイニング・モデルについてデータ・ディクショナリ・ビュー別に示します。

表7-1 Oracle Data Miningデータ・ディクショナリ・ビュー

ALL_ Views DBA_ Views USER_ Views

ALL_MINING_MODELS

DBA_MINING_MODELS

USER_MINING_MODELS

ALL_MINING_MODEL_ATTRIBUTES

DBA_MINING_MODEL_ATTRIBUTES

USER_MINING_MODEL_ATTRIBUTES

ALL_MINING_MODEL_SETTINGS

DBA_MINING_MODEL_SETTINGS

USER_MINING_MODEL_SETTINGS


マイニング・モデルに関する情報の入手

すべてのアクセス可能なマイニング・モデル・オブジェクトに関する情報を入手するには、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_MODELSの詳細は、『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)

注意:

このデータ・ディクショナリ・ビューに表示される属性は、モデルの作成に使用された作成データの物理列です。スコアリングには、これらの列の一部またはすべてが必要です。こうしたデータ属性は、モデルのシグネチャと呼ばれます。

属性という用語は、さらに正確な意味では、アルゴリズムによる操作用にデータ属性から抽出される量的属性および質的属性を指します。これらのモデル属性がデータ属性と一致するかどうかは、変換や列のネストの有無によって異なることがあります。モデル属性は、モデルの詳細(GET_MODEL_DETAILSファンクション)で表示できます。



参照:

属性の詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

ALL_MINING_MODEL_ATTRIBUTESの詳細は、『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概要』を参照してください。

ALL_MINING_MODEL_SETTINGSの詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。


マイニング・モデルへのコメントの追加

SQL COMMENT文を使用してマイニング・モデルにコメントを関連付けることができます。

COMMENT ON MINING MODEL schema_name.model_name IS string;

注意:

別のスキーマのモデルにコメントを追加するには、COMMENT ANY MODELシステム権限が必要です。

コメントを削除するには、コメントを空の''文字列に設定します。

自分のスキーマのモデル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を、DBDB_EXTENDEDまたはOSに設定します。

監査情報が記録されないようにするには、AUDIT_TRAILNONEに設定します。デフォルトでは、AUDIT_TRAILNONEに設定されています。

マイニング・モデルの監査証跡のオープン

データ・マイニング・モデルの監査証跡を開くには、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は、監査操作ごとに次の内容を含む監査レコードを作成します。

  • 操作を実行しているユーザーの名前

  • 操作のタイプ

  • 操作の対象となるオブジェクト

  • 操作の日時

一部のデータ・ディクショナリ・ビューは監査情報を表示します。次に例を示します。

  • DBA_AUDIT_OBJECTは、データベースのすべてのオブジェクトに関する監査証跡レコードを表示します。

  • USER_AUDIT_OBJECTは、現在のユーザーがアクセス可能なすべてのオブジェクトの監査証跡レコードを表示します。

  • DBA_OBJ_AUDIT_OPTSは、データベースのすべてのオブジェクトについて監査オプションを示します。

  • USER_OBJ_AUDIT_OPTSは、現在のユーザーが所有するすべてのオブジェクトの監査オプションを示します。


注意:

Oracle Database監査システムは、スキーマ・オブジェクトの操作を追跡するための、強力で高度に構成可能なツールです。詳細は、次のマニュアルを参照してください。
  • AUDIT文およびNOAUDIT文については、『Oracle Database SQL言語リファレンス』を参照してください。

  • AUDIT_TRAIL初期化パラメータおよびデータベース監査証跡への問合せに関するデータ・ディクショナリ・ビューについては、『Oracle Databaseリファレンス』を参照してください。

  • データベース監査全般については、『Oracle Databaseセキュリティ・ガイド』を参照してください。


マイニング・モデルのエクスポートおよびインポート

データ・マイニング・モデルをフラット・ファイルにエクスポートして作業途中の操作をバックアップしたり、Oracle Database Enterprise Editionの別のインスタンスに(たとえば、開発用データベースから本番データベースに)モデルを移動したりできます。モデルをエクスポートおよびインポートする方法は、いずれもOracle Data Pumpのテクノロジに基づいています。

Oracle Data Pumpは、2つのコマンドライン・クライアントと2つのPL/SQL APIで構成されています。コマンドライン・クライアントのEXPDPおよびIMPDPにより、データ・ポンプ・エクスポートおよびインポート・ユーティリティに対する使いやすいインタフェースが提供されます。データ・マイニングAPIでも、データ・ポンプ・エクスポートおよびインポート・ユーティリティを使用します。

データベースでのアクセス権限に応じて、様々なレベルのモデルをエクスポートおよびインポートできます。

データ・ポンプ・エクスポート・ユーティリティは、モデルを構成する表およびメタデータを、1つ以上のファイルからなるダンプ・ファイル・セットに書き出します。データ・ポンプ・インポート・ユーティリティは、ダンプ・ファイルから表およびメタデータを取得し、それらをターゲット・データベースにリストアします。


参照:

  • Oracle Data Pumpと、expdpおよびimpdpユーティリティの詳細は、『Oracle Databaseユーティリティ』を参照してください。

  • DBMS_DATA_MININGパッケージに含まれるエクスポートおよびインポート・プロシージャの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

  • Oracle Data Mining Java APIのエクスポートおよびインポート・クラスについては、『Oracle Data Mining Java API Reference』を参照してください。


前提条件

データ・マイニング・モデルをエクスポートおよびインポートするには、ディレクトリ・オブジェクトの読取りおよび書込み権限が必要です。また、その他のデータベース権限が必要な場合もあります。

ディレクトリ・オブジェクト

ディレクトリ・オブジェクトとは、ホスト・コンピュータ上の物理ディレクトリのデータベース内での論理名です。ディレクトリ・オブジェクトの読取りおよび書込み権限がないと、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がモデルのインポートを行います。

モデルのエクスポートおよびインポート用PL/SQL API

DBMS_DATA_MINING PL/SQLパッケージには、次の2つのプロシージャが含まれています。

  • EXPORT_MODEL

  • IMPORT_MODEL

これらのプロシージャの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

モデルのエクスポートおよびインポート用Java API

Oracle Databaseは、業界標準のJava Data Mining(JDM)API仕様を実装しています。この仕様には、次の2つのインタフェースが含まれます。

  • javax.datamining.task.ExportTask

  • javax.datamining.task.ImportTask

標準JDM APIの詳細は、JSR-73仕様のJavadocを参照してください。このJavadocは、Oracle Technology Networkの次のURLから利用できます。

http://www.oracle.com/technology/products/bi/odm/JSR-73/index.html

モデルのエクスポートおよびインポートによって作成される表

データ・マイニングのエクスポート・ユーティリティとインポート・ユーティリティを使用すると、ユーザーのスキーマに内部用にのみ使用される表が作成されます。

  • DM$P_MODEL_EXPIMP_TEMP。エクスポートおよびインポート中に内部用に使用され、ジョブ履歴を提供します。

  • DM$P_MODEL_IMPORT_TEMP。インポート中に内部用にのみ使用されます。

  • DM$P_MODEL_TABKEY_TEMP。エクスポートおよびインポート中に、内部用にのみ使用されます。

これらの表は変更しないでください。ただし、エクスポート・ジョブまたはインポート・ジョブが実行中でないときは削除できます。ユーティリティによって、次のジョブ用にこれらが再作成されます。

例: モデルのエクスポートおよびインポート

この例では、2つのモデルを含むダンプ・ファイルを作成し、このダンプ・ファイルからモデルをインポートします。

この例は、Linuxシステムで生成されたものです。ディレクトリ・オブジェクトmydirは、パス/scratch/dumpfilesを表します。(「ディレクトリ・オブジェクト」を参照してください。)

DMUSERスキーマからのモデルのエクスポート

この例では、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