In this post, we'll take a look at how Oracle Data Mining facilitates model deployment.
After building and testing models, a next step is often putting your
data mining model into a production system -- referred to as model deployment.
The ability to move data mining model(s) easily into a production
system can greatly speed model deployment, and reduce the overall cost.
Since Oracle Data Mining provides models as first class database
objects, models can be manipulated using familiar database techniques
and technology. For example, one or more models can be exported to a
flat file, similar to a database table dump file (.dmp). This file can
be moved to a different instance of Oracle Database EE, and then
imported. All methods for exporting and importing models are based on
Oracle Data Pump technology and found in the DBMS_DATA_MINING package.
Before performing the actual export or import, a directory object must be created. A directory object
is a logical name in the database for a physical directory on the host
computer. Read/write access to a directory object is necessary to
access the host computer file system from within Oracle Database.
For our example, we'll work in the DMUSER schema. First, DMUSER requires the privilege to create any directory. This is often granted through the sysdba account.
grant create any directory to dmuser;
Now, DMUSER can create the directory object specifying the path where
the exported model file (.dmp) should be placed. In this case, on a
linux machine, we have the directory /scratch/oracle.
CREATE OR REPLACE DIRECTORY dmdir AS '/scratch/oracle';
If you aren't sure of the exact name of the model or models to export,
you can find the list of models using the following query:
select model_name from user_mining_models;
There are several options when exporting models. We can export a single
model, multiple models, or all models in a schema using the following
procedure calls:
BEGIN
DBMS_DATA_MINING.EXPORT_MODEL ('MY_MODEL.dmp','dmdir','name =''MY_DT_MODEL''');
END;
BEGIN
DBMS_DATA_MINING.EXPORT_MODEL ('MY_MODELS.dmp','dmdir', 'name IN (''MY_DT_MODEL'',''MY_KM_MODEL'')');
END;
BEGIN
DBMS_DATA_MINING.EXPORT_MODEL ('ALL_DMUSER_MODELS.dmp','dmdir');
END;
A .dmp file can be imported into another schema or database using the following procedure call, for example:
BEGIN
DBMS_DATA_MINING.IMPORT_MODEL('MY_MODELS.dmp', 'dmdir');
END;
As with models from any data mining tool, when moving a model from one
environment to another, care needs to be taken to ensure the
transformations that prepare the data for model building are matched
(with appropriate parameters and statistics) in the system where the
model is deployed.
Oracle Data Mining provides automatic data preparation (ADP) and embedded data preparation
(EDP) to reduce, or possibly eliminate, the need to explicitly
transport transformations with the model. In the case of ADP, ODM
automatically prepares the data and includes the necessary
transformations in the model itself. In the case of EDP, users can
associate their own transformations with attributes of a model.
These transformations are automatically applied when applying the model to data, i.e., scoring. Exporting and importing a model with ADP or EDP results in these
transformations being immediately available with the model in the
production system.