Существует новая функция в 11g внешних таблиц, называемых PREPROCESSOR
(белый papaer для 11gR2 можно найти here) Внешней таблицы позволяет считывать плоские файлы непосредственно в таблицы оракула. новая команда preprocessos позволяет указать имя сценария вместо файла, а oracle будет использовать выходной поток в качестве входных данных. таким образом вы можете получить результаты algorithem непосредственно в oracle.
позволяет принимать вам алгоритм CART в качестве примера
создать рабочий каталог в оракула
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 доступ к параметрам ( ЗАПИСИ, разграниченных NEWLINE ПОЛЯ TERMINATED BY '' отсутствует поле значения NULL препроцессор EXECDIR: 'my_cart_algorithem.py' ПОЛЕ ( уровня, атрибута, значения, результата, доверия
)) МЕСТА ('')) REJECT LIMIT НЕОГРАНИЧЕННОЙ
- уведомления что параметр
location
является параметром для скрипта. в этом случае не.
запрос
select * from cart_tree
Важно понимать, что каждый раз, когда вы запрашиваете таблицу оракула выполняет сценарий. поэтому - то, что я обычно делаю с внешними таблицами, создает материализованный вид поверх них.
Второй вариант, который может показаться вам полезным, - использование существующего интегрального оракула с использованием R. Оба алгоритма CART и SVM доступны в R и имеют встроенную интеграцию с oracle. вы можете прочитать об этом здесь here