目前,我参与了一个基于数据仓库的银行分析项目。我们一直使用Oracle作为数据库和Oracle 商业智能工具 (OBIEE 11g)作为用户通过 weblogic 服务器的前端或表示层。
在这里,我需要为 ATM 卡欺诈模式检测和CART实现支持向量机 (SVM)算法并通过 OBIEE 将结果提供给用户。所以我的问题是如何将这些算法(用 Python 实现)集成到 OBIEE?
我见过Oracle Data Miner与 OBIEE 的集成,但它实现了自己的算法。
目前,我参与了一个基于数据仓库的银行分析项目。我们一直使用Oracle作为数据库和Oracle 商业智能工具 (OBIEE 11g)作为用户通过 weblogic 服务器的前端或表示层。
在这里,我需要为 ATM 卡欺诈模式检测和CART实现支持向量机 (SVM)算法并通过 OBIEE 将结果提供给用户。所以我的问题是如何将这些算法(用 Python 实现)集成到 OBIEE?
我见过Oracle Data Miner与 OBIEE 的集成,但它实现了自己的算法。
11g 外部表中有一个新功能称为PREPROCESSOR
(11gR2 的白皮书可以在这里找到)外部表使您可以将平面文件直接读取到 oracle 中的表中。新的 preprocessos 命令使您能够指定脚本名称而不是文件,并且 oracle 将使用输出流作为输入。这样您就可以将算法结果直接输入到 oracle 中。
让我们以 CART 算法为例
在 oracle 中创建一个工作目录
create or replace directory dmdir as "/some_folder_on_your_os"
创建一个执行算法并以逗号分隔格式打印输出的脚本。假设对于 CART 算法,您可以将树输出为level,attribute,value,outcome,confidence
.
创建外部表
CREATE TABLE cart_tree 级别号,属性 varchar2(2000),值 varchar2(2000),结果 varchar2(2000),置信度数) 组织外部(类型 ORACLE_LOADER 默认目录 dmdir 访问参数(由换行符分隔的记录,'缺少字段终止VALUES ARE NULL PREPROCESSOR execdir:'my_cart_algorithem.py' FIELDS (level, attribute, value, result, confidence
)) 位置 ('')) 拒绝限制无限
location
是脚本的参数。在这种情况下非。询问
select * from cart_tree
重要的是要了解每次查询表时,oracle 都会执行脚本。所以 - 我通常对外部表做的是在它们之上创建一个物化视图。
您可能会发现有用的第二个选项是使用现有的 oracle 与 R 的集成。CART 和 SVM 算法都在 R 中可用,并且已与 oracle 集成。你可以在这里阅读