Patent ID: 9607063
Date: 2017-03-28
CPC Classifications: G06F

Claim:
1. A computer-implemented method of automatically moving NoSQL data store to a relational database system, the method performed on one or more processors, comprising: receiving NoSQL file stored in a storage device; discovering data structure schema of the NoSQL file, wherein the data structure schema of the NoSQL file that is discovered comprises objects and arrays, and objects and arrays embedded in one another; receiving one or more query plans associated with one or more records in the NoSQL file; determining attribute usage associated with the data structure schema and association relationships in the data structure schema based on the one or more query plans; determining trunk part of the data structure schema based on the attribute usage, the trunk part comprising attributes that occur in the query plan at least a defined threshold number of times; defining one or more trunk tables corresponding to the trunk part based on a rule-based table generation; wherein the rule-based table generation for an embedded object, comprises unfolding each attribute individually, adding a predefined character between names at each level, for the arrays, the rule-based table generation comprises, extracting the arrays and storing the arrays vertically so that each value is in its own row and for an embedded object in an array, the rule-based table generation comprises extracting arrays of complex objects and storing the arrays vertically so that each object is flattened; validating the one or more trunk tables according to constraints of the relational database system, the constraints comprising satisfying size requirements comprising a page size, length of table name, a number of columns and column name length associated with the relational database system, wherein the one or more trunk tables that exceed the size requirements for at least one of the page size, the number of columns, length of table name and column name length associated with the relational database system are split into additional trunk tables; generating one or more corresponding relational database system tables corresponding to the one or more trunk tables; generating a NoSQL trunk template based on the one or more trunk tables; filtering the NoSQL file to extract data corresponding to the NoSQL trunk template; loading the data filtered from the NoSQL file into the one or more corresponding relational database system table; and loading the data that is not filtered in the NoSQL file into an overflow table with respective key value pairs.