IP Library Patent Application 13911745
Patent Application
App. No. 13/911,745

GENERATING DATA PROCESSING CODE FROM A DIRECTED ACYCLIC GRAPH

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
13/911,745
Abstract

The present invention provides a computer-implemented code generation system that generates data processing code from a directed acyclic graph (DAG). The generated code is both declarative and procedural, and can be run in a relational database or in a Map Reduce implementation using Apache Pig. Each node of the DAG specifies operations performed on tabular data that can be stored in a delimited plain text file, a spreadsheet, or a relational database.

Claims (35)

1 . A computer-implemented code generation system that generates data processing code from a directed acyclic graph (DAG), the system comprising:

one or more processors configured to execute computer program modules, the computer program modules including a module to generate code from an XML representation of a DAG having nodes connected by directed edges, the DAG describing a data processing job with all inputs in data tables, all outputs in data tables, only data tables being passed between the nodes in the DAG, and input and output tables being specified for each node in the DAG, the DAG specifying data manipulations to be performed by each node.

2 . The system of claim 1 , wherein the generated code includes declarative code and procedural code.

3 . The system of claim 1 , wherein the nodes in the DAG support multiple operations, including joining, grouping, and filtering tabular data.

4 . The system of claim 3 , wherein the code generated from the XML representation of the DAG includes one of SQL statements and Pig Latin statements generated based on the joining data.

5 . The system of claim 1 , wherein the generated code is executed in one of a relational database and a map reduce cluster.

6 . The system of claim 1 , wherein the processor executes computer program modules having an executable file and scripts from a client computer.

7 . A computer-implemented code generation system that generates data processing code from a directed acyclic graph (DAG), the system comprising:

a data-mining tool adapted to create a DAG that exposes a complete specification of the DAG, each DAG having nodes connected by directed edges, wherein only data tables are passed between the nodes in the DAG, and input and output tables are specified for each node in the DAG;

a compiler in communication with said data-mining tool, said compiler compiling the DAG into an XML representation of the DAG;

a computer arrangement code generator in communication with said compiler, said code generator generating data processing code including an executable file and a supporting script based on the XML representation of the DAG; and

a processor in communication with said code generator, said processor executing the data processing code in accordance with the executable file and the supporting script.

8 . The system of claim 7 , the data processing code including a first executable file segment built by said code generator based on the DAG-XML file including a representation of all of the DAG directed edges with all data processing models starting with a load node, a second executable file segment built by said code generator for each load node based on the DAG-XML file and identifying each load node as resolved, and a third executable file segment built by said code generator including a list of unresolved nodes based on the DAG-XML file,

said code generator recursively traversing the DAG directed edges locating nodes between the directed edges with unresolved parent nodes, building further executable file segments for the unresolved parent nodes, and identifying the unresolved nodes as resolved, said code generator continuing the recursively traversing step until all nodes are identified as resolved, the executable file including the built first, second, third and further executable file segments.

9 . The system of claim 7 , the code generator generating the supporting script based on the DAG-XML file absent instructions that use undefined data tables.

10 . The system of claim 7 , said code generator generating data processing code including SQL statements based on joining, grouping, and filtering tabular data.

11 . The system of claim 7 , the generated data processing code including declarative code.

12 . The system of claim 7 , the nodes in the DAG supporting joining, grouping, and filtering tabular data operations.

13 . The system of claim 7 , wherein the processor executes the generated processing code in one of a relational database and a map reduce cluster.

14 . A method for generating data processing code from a directed acyclic graph (DAG), comprising:

creating a DAG with a data-mining tool that provides a complete specification of the DAG, each DAG having nodes connected by directed edges, wherein only data tables are passed between the nodes in the DAG, and input and output tables are specified for each node in the DAG;

compiling the DAG into an XML representation of the DAG via a compiler in communication with the data-mining tool, the XML representation of the DAG being a DAG-XML file;

generating data processing code with a computer arrangement code generator, the generated data processing code including an executable file and a supporting script based on the DAG-XML file; and

executing the data processing code with a processor in accordance with the executable file and the supporting script.

15 . The method of claim 14 , the generating step including:

building a first executable file segment based on the DAG-XML file including a representation of all of the DAG directed edges with all data processing models starting with a load node,

building a second executable file segment for each load node based on the DAG-XML file and identifying each load node as resolved,

building a third executable file segment including a list of unresolved nodes based on the DAG-XML file,

recursively traversing the DAG directed edges locating nodes between the directed edges with unresolved parent nodes, building further executable file segments for the unresolved parent nodes and identifying the unresolved nodes as resolved, and

continuing the recursively traversing step until all nodes are identified as resolved, the executable file including the built first, second, third and further executable file segments.

16 . The method of claim 15 , wherein each node is resolved when all ancesters of the node are identified as resolved.

17 . The method of claim 14 , the generating step including generating the supporting script based on the DAG-XML file absent instructions that use undefined data tables.

18 . The method of claim 14 , the generating step including generating the data processing code with SQL statements.

19 . The method of claim 14 , the generated data processing code including declarative code.

20 . The method of claim 14 , wherein the generated data processing code is generated in one of a relational database and a map reduce cluster.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Jan 5, 2017
From: COMERICA BANK
To: REVITAS, INC.
Reel/Frame 040861/0694 →
SECURITY INTEREST Recorded Oct 18, 2014
From: REVITAS, INC., FORMERLY KNOWN AS IMANY, INC.
To: COMERICA BANK
Reel/Frame 033976/0648 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2013
From: AMOS, JAMES DAVID; MERLUGOV, OLEG
To: REVITAS, INC.
Reel/Frame 030580/0228 →