IDAX.IMPORT_MODEL - 导入模型

使用此存储过程可从先前导出的 .mdl 文件导入模型。

权限

任何有权创建新分析模型的用户都可以从导出文件导入模型;但是,要覆盖模型,您必须有权删除现有模型。

语法

IDAX.IMPORT_MODEL(in parameter_string varchar(32672))

参数描述

parameter_string
必需的单字符串参数,其中包含以逗号分隔的 <parameter>=<value> 条目对。
数据类型:VARCHAR(32672)
以下列表显示参数值:
directory
必需。
要导入的 .mdl 文件所在目录的绝对路径。
该目录必须已存在.
name
必需。
要导入的 .mdl 文件的名称。
acl
可选。
指定是否导入模型特权(访问控制表)。
如果将 acl 参数设置为 true,但模型特权未包括在导出操作中,那么将会返回警告。
如果导入的访问控制表所指定的角色在数据库中不存在,那么将返回警告。
缺省值:false
log
可选。
指定是否要写入日志文件(扩展名为 .ilog)。该日志文件将会包含成功导入的模型列表,以及导入操作所跳过的所有模型的名称和相应错误消息。
缺省值:false
model
可选。
要导入的一个或多个模型的模式限定名。
请使用分号来分隔各个模型名称。如果任何模型名称混合使用大小写,您必须将其括在双引号内。
overwrite
可选。
发生名称冲突时要执行的操作。
如果现有模型的名称与您尝试导入的模型完全相同,那么在缺省情况下,导入操作将跳过该文件。如果指定 overwrite=true,那么将会先删除现有模型,再导入新模型。
缺省值:false
owner
可选。
IMPORT_MODEL 过程的当前调用所导入的所有模型的替代所有者。缺省情况下,执行导入操作的用户就是所导入模型的所有者。
如果要确保所导出模型的原始所有权在导入后依旧保留,请指定 owner=owner
resume
可选。
指定 IMPORT_MODEL 过程在无法导入模型时是否停止。
缺省情况下,将会跳过任何无法导入的模型,并且导入操作将会继续。
缺省值:true
schemamap
可选。
所导入模型的模式转换规则,以分号分隔的映射列表形式指定。
通过使用此参数,在将先前导出的模型文件中的模型导入到数据库时,可以将旧模式名替换为新模式名。当新数据库与从中导出模型的数据库不具有相同的模式名,或者您要将某些模型传送到其他模式时,请使用此参数。
指定 schemamap 参数,如下所示:
schemamap=mapping1;mapping2;mappingN
映射以下列方式定义:
  • <old_schema1>:<new_schema1>;<old_schema2>:<new_schema2>;<old_schemaN>:<new_schemaN>
    这表示所导入模型的模式 <old_schema> 将更改为 <new_schema>
  • *:<new_schema>
    这表示所导入的每个不具有映射规则的模式都将更改为 <new_schema>
  • <old_schema1>;<old_schema2>;<old_schemaN>
    这表示所导入模型的模式 <old_schema> 将更改为当前模式。
where
可选。
一个子句,用于过滤所要导入的模型。
可以通过 WHERE 子句来过滤 LIST_MODELS 过程所显示的任何模型。

返回的信息

IMPORT_MODEL 过程会返回一个结果集,其中包含模式(原始模式名和新模式名,如果 schemamap 参数指定了转换),以及所有成功导入的模型的名称。如果 resume 参数设置为 true,那么结果集还会包括所有跳过的模型的名称及相应的错误消息。

示例

  • 以下示例从 /tmp/foo.mdl 导入所有模型。不会执行模式转换。
    call idax.import_model('directory=/tmp, name=foo')
  • 以下示例从 /tmp/foo.mdl 导入所有模型。模式为“peter”的模型将导入到模式“frank”,而模式为“eva”的模型将导入到模式“alice”。所有其他模式保持不变。
    call idax.import_model('directory=/tmp, name=foo,
                            schemamap=peter:frank;eva:alice')
  • 以下示例从 /tmp/foo.mdl 导入所有模型。模式为“peter”的模型将导入到模式“frank”,而所有其他模型都将导入到模式“alice”。
    
    call idax.import_model('directory=/tmp, name=foo,
                            schemamap=peter:frank;*:alice')
  • 以下示例从 /tmp/foo.mdl 导入所有模型。模式为“peter”的模型将导入到当前模式,而所有其他模型都将导入到“alice”模式。
    
    call idax.import_model('directory=/tmp, name=foo,
                            schemamap=peter;*:alice')
  • 以下示例从 /tmp/foo.mdl 导入所有模型。所有模型都将导入到当前模式。
    call idax.import_model('directory=/tmp, name=foo,
                            schemamap=*')