Best Place for Data Processing Logic with .NET / Oracle Architecture

I am a .NET programmer, and I am developing a system that collects real-time production data and stores it in an Oracle database. This data has to undergo extensive processing: mainly digital signal processing - searching for mines and maximums of various fields in the data stream and categorization of “pieces” of time, respectively. Apparently, this is something that we could (though not necessarily) use the MatLab libraries for processing.

I need to know where to find the processing logic: inside Oracle db implemented with PL-SQL (or something suitable), or in an external .NET executable or service that can call the MatLab libraries?

Related question: is it possible to call MatLab library functions from Oracle? This may give the most concise answer.

Sorry for the block of text. Any help would be greatly appreciated.

+3
source share
2 answers

Ideally, you would compare both options and see what performance you can get from both options.

, , - . - , , MatLab . , , , MatLab , Oracle, , , , , , - (FFT) .. - , , MatLab, FFT PL/SQL.

Oracle , MatLab, MatLab API- DLL API API ( , , .Net MatLab C DLL), MatLab Oracle.

+3

. / , Oracle.

Matlab , , , , . :

CREATE TABLE RawData
  (
   RawDataId            NUMBER(22) DEFAULT Null NOT NULL, (PK)
   RawDataType          VARCHAR2(50) DEFAULT Null NOT NULL,
   ExposureToolId       NUMBER(22) DEFAULT Null NULL,
   EventTime            DATE DEFAULT Null NULL,
   ... ( various columns descibing event characteristics) ...
   Body                 LOB DEFAULT Null NOT NULL,
   Length               NUMBER DEFAULT 0 NULL
  )

CREATE TABLE Analysis
  (
   AnalysisId       NUMBER(22) DEFAULT Null NOT NULL, (PK)
   RawDataId        NUMBER(22) DEFAULT Null NOT NULL,
   AnalysisName     VARCHAR2(255) DEFAULT Null NOT NULL,
   AnalysisType     VARCHAR2(255) DEFAULT Null NOT NULL,
   AnalyzeTime      DATE DEFAULT Null NULL,
   Status           CHAR(1) DEFAULT Null NULL,
   SentToServerDate DATE DEFAULT Null NULL,
   ServerId         NUMBER(22) DEFAULT Null NULL
  )

CREATE TABLE DataSet
  (
   DataSetId        NUMBER(22) DEFAULT Null NOT NULL, (PK)
   AnalysisId       NUMBER(22) DEFAULT Null NOT NULL,
   DataSetName      DATE DEFAULT sysdate NULL
  )

CREATE TABLE Coefficient
  (
   DataSetId            NUMBER(22) DEFAULT Null NOT NULL, (PK)
   IdentifierId         NUMBER(22) DEFAULT Null NOT NULL, (PK)
   Coefficient          FLOAT DEFAULT 0 NULL
  )

RawData , Analysis , , , ; "". , ( , ), "" ( "", ). , Analysis ; , .

, . ; , , Oracle, - " ", .

0

Source: https://habr.com/ru/post/1715903/


All Articles