この項の例は、EXPORT_MODEL
とIMPORT_MODEL
を使用した様々なエクスポートおよびインポート・シナリオを示しています。各例では、例8-1に示すディレクトリ・オブジェクトdmdir
と、2つのスキーマdm1
およびdm2
を使用します。どちらのスキーマもデータ・マイニング権限を持っています。dm1
には2つのモデルがあります。dm2
には1つのモデルがあります。
SELECT owner, model_name, mining_function, algorithm FROM all_mining_models; OWNER MODEL_NAME MINING_FUNCTION ALGORITHM ---------- -------------------- -------------------- -------------------------- DM1 EM_SH_CLUS_SAMPLE CLUSTERING EXPECTATION_MAXIMIZATION DM1 DT_SH_CLAS_SAMPLE CLASSIFICATION DECISION_TREE DM2 SVD_SH_SAMPLE FEATURE_EXTRACTION SINGULAR_VALUE_DECOMP
例8-1 ディレクトリ・オブジェクトの作成
-- connect as system user CREATE OR REPLACE DIRECTORY dmdir AS '/scratch/dmuser/expimp'; GRANT READ,WRITE ON DIRECTORY dmdir TO dm1; GRANT READ,WRITE ON DIRECTORY dmdir TO dm2; SELECT * FROM all_directories WHERE directory_name IN 'DMDIR'; OWNER DIRECTORY_NAME DIRECTORY_PATH ---------- -------------------------- ---------------------------------------- SYS DMDIR /scratch/dmuser/expimp
例8-2 DM1からのすべてのモデルのエクスポート
-- connect as dm1 BEGIN dbms_data_mining.export_model ( filename => 'all_dm1', directory => 'dmdir'); END; /
ログ・ファイルとダンプ・ファイルは、dmdir
に関連付けられている物理ディレクトリ/scratch/dmuser/expimp
で作成されます。ログ・ファイルの名前はdm1_exp_11.log
です。ダンプ・ファイルの名前はall_dm101.dmp
です。
例8-3 元のDM1へのモデルのインポート
例8-2でエクスポートされたモデルが、まだdm1
に存在しています。インポートにより同じ名前のモデルが上書きされることはないため、モデルを同じスキーマに戻す前に、同じ名前のモデルを削除する必要があります。
BEGIN dbms_data_mining.drop_model('EM_SH_CLUS_SAMPLE'); dbms_data_mining.drop_model('DT_SH_CLAS_SAMPLE'); dbms_data_mining.import_model( filename => 'all_dm101.dmp', directory => 'DMDIR'); END; / SELECT model_name FROM user_mining_models; MODEL_NAME ------------------------------ DT_SH_CLAS_SAMPLE EM_SH_CLUS_SAMPLE
例8-4 別のスキーマへのモデルのインポート
この例では、例8-2でdm1
からエクスポートされたモデルが、dm2
にインポートされます。dm1
スキーマではexample
表領域を使用し、dm2
スキーマではsysaux
表領域を使用します。
-- CONNECT as sysdba BEGIN dbms_data_mining.import_model ( filename => 'all_d101.dmp', directory => 'DMDIR', schema_remap => 'DM1:DM2', tablespace_remap => 'EXAMPLE:SYSAUX'); END; / -- CONNECT as dm2 SELECT model_name from user_mining_models; MODEL_NAME -------------------------------------------------------------------------------- SVD_SH_SAMPLE EM_SH_CLUS_SAMPLE DT_SH_CLAS_SAMPLE
例8-5 特定のモデルのエクスポート
単一のモデル、モデルのリストまたは特定の特性を共有するモデルのグループをエクスポートできます。
-- Export the model named dt_sh_clas_sample EXECUTE dbms_data_mining.export_model ( filename => 'one_model', directory =>'DMDIR', model_filter => 'name in (''DT_SH_CLAS_SAMPLE'')'); -- one_model01.dmp and dm1_exp_37.log are created in /scratch/dmuser/expimp -- Export Decision Tree models EXECUTE dbms_data_mining.export_model( filename => 'algo_models', directory => 'DMDIR', model_filter => 'ALGORITHM_NAME IN (''DECISION_TREE'')'); -- algo_model01.dmp and dm1_exp_410.log are created in /scratch/dmuser/expimp -- Export clustering models EXECUTE dbms_data_mining.export_model( filename =>'func_models', directory => 'DMDIR', model_filter => 'FUNCTION_NAME = ''CLUSTERING'''); -- func_model01.dmp and dm1_exp_513.log are created in /scratch/dmuser/expimp
関連項目:
他の例については、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。