Automatic data store architecture detection
First Claim
1. A system comprising:
- a processing device comprising hardware;
a non-transitory computer-readable medium encoded with;
a data store analyzer module comprising;
an architecture analysis composer and analyzer component, which when executed by the processing device, causes the system to execute an analysis of an architecture of a data store prior to having received any user queries, the analysis of the architecture of the data store comprising an analysis of a relationship between columns of data store tables; and
a data store architecture composer component, which when executed by the processing device, causes the system to compose an initial approximation of the architecture of the data store based on the analysis of the architecture of the data store prior to having received any user queries and independent of any output from a queries analyzer module, wherein the initial approximation of the architecture of the data store comprises an estimate of column sizes;
the queries analyzer module, which comprises;
a queries analyzer component, which when executed by the processing device, causes the system to perform a syntactic analysis of a user query when a query is available;
a queries statistics composer component, which when executed by the processing device, causes the system to compile statistics on query content;
a queries architecture composer component, which when executed by the processing device, causes the system to compose an updated approximation of the data store architecture, including at least an update of a first approximation of the architecture of the data store, the first approximation of the architecture of the data store based on the analysis of the architecture of the data store prior to having received any user queries and independent of any output from the queries analyzer module;
a query repository comprising content, the query repository coupled to the queries analyzer component which is configured to use the query repository content to execute an analysis of an impact of data store architecture changes as the data store changes are recognized by the system;
wherein the queries analyzer module is configured to collect, to analyze and to generate statistics related to the user queries and to integrate the statistics related to the user queries with the first approximation, that is based on an analysis of the architecture of the data store executed prior to having received any user queries;
wherein the system is configured to dynamically detect when tables are inserted, modified, or removed from the data store by automatically carrying out continuous data store architecture analysis comprising continuous analysis of the relationship between columns of data store tables, and comparing successive approximations of the architecture of the data store comprising respective estimates of the column sizes, and in response to detecting that a table has been inserted, modified, or removed from the data store, the query repository receives a report of changes to components of the data store from the data architecture component and selects one or more query templates that do not contain the changed components of the data store and transfers the selected one or more query templates to the query analyzer component.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention is a system for automatic recognition of data store architecture and tracking dynamic changes and evolution in data store architecture. The system of the invention is a complementary system, which can be added onto an existing data store system using the existing interfaces or can be integrated with a data store system. The system comprises three main components that are configured to compose an approximation of the data store architecture. The first of these components is adapted to execute an analysis of the architecture of the data store; the second of the components is adapted to collect and compile statistics from said data store; and the third of the components is adapted to compose an approximation of the architecture of said data store. Methods for using the system of the invention are also described.
-
Citations
20 Claims
-
1. A system comprising:
-
a processing device comprising hardware; a non-transitory computer-readable medium encoded with; a data store analyzer module comprising; an architecture analysis composer and analyzer component, which when executed by the processing device, causes the system to execute an analysis of an architecture of a data store prior to having received any user queries, the analysis of the architecture of the data store comprising an analysis of a relationship between columns of data store tables; and a data store architecture composer component, which when executed by the processing device, causes the system to compose an initial approximation of the architecture of the data store based on the analysis of the architecture of the data store prior to having received any user queries and independent of any output from a queries analyzer module, wherein the initial approximation of the architecture of the data store comprises an estimate of column sizes; the queries analyzer module, which comprises; a queries analyzer component, which when executed by the processing device, causes the system to perform a syntactic analysis of a user query when a query is available; a queries statistics composer component, which when executed by the processing device, causes the system to compile statistics on query content; a queries architecture composer component, which when executed by the processing device, causes the system to compose an updated approximation of the data store architecture, including at least an update of a first approximation of the architecture of the data store, the first approximation of the architecture of the data store based on the analysis of the architecture of the data store prior to having received any user queries and independent of any output from the queries analyzer module; a query repository comprising content, the query repository coupled to the queries analyzer component which is configured to use the query repository content to execute an analysis of an impact of data store architecture changes as the data store changes are recognized by the system; wherein the queries analyzer module is configured to collect, to analyze and to generate statistics related to the user queries and to integrate the statistics related to the user queries with the first approximation, that is based on an analysis of the architecture of the data store executed prior to having received any user queries; wherein the system is configured to dynamically detect when tables are inserted, modified, or removed from the data store by automatically carrying out continuous data store architecture analysis comprising continuous analysis of the relationship between columns of data store tables, and comparing successive approximations of the architecture of the data store comprising respective estimates of the column sizes, and in response to detecting that a table has been inserted, modified, or removed from the data store, the query repository receives a report of changes to components of the data store from the data architecture component and selects one or more query templates that do not contain the changed components of the data store and transfers the selected one or more query templates to the query analyzer component. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computerized method comprising:
-
executing, by a computing system comprising hardware, an analysis of an architecture of a data store in prior to having received any user queries, the analysis of the architecture of the data store comprising an analysis of a relationship between columns of data store tables; collecting and compiling statistics, by the computing system, from the data store; composing, by the computing system, a first approximation of the architecture of the data store using the analysis of the architecture of the data store prior to having received any user queries, wherein the first approximation of the architecture of the data store comprises a first estimate of column sizes; performing, by the computing system, a syntactic analysis of a user query when a query is available; compiling, by the computing system, statistics on query content when queries are available; composing, by the computing system, one or more updated approximations of the data store architecture using the statistics on query content, including at least an update of the first approximation of the architecture of the data store, the first approximation of the architecture of the data store based on the analysis of the architecture of the data store prior to having received any user queries; performing, by the computing system, an analysis of the impact of data store architecture changes as the data store changes are recognized; compiling and analyzing, by the computing system, statistics related to the users queries; integrating, by the computing system, the analyzed statistics with the first approximation composed using the analysis of the architecture of the data store prior to having received any user queries to compose a more precise approximation of the architecture of the data store; and dynamically detecting, by the computing system, when tables are inserted, modified, or removed from the data store by automatically carrying out continuous data store architecture analysis comprising continuous analysis of the relationship between columns of data store tables and comparing successive approximations of the architecture of the data store comprising respective estimates of column sizes; in response to detecting that a table has been inserted, modified, or removed from the data store, receiving a report of changes to components of the data store and selecting one or more query templates that do not contain the changed components of the data store; and transferring the selected one or more query templates to a query analyzer. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A non-transitory computer-readable medium encoded with instructions thereon, wherein the instructions are readable by a computing device in order to cause the computing device to perform operations comprising:
-
executing an analysis of an architecture of a data store in prior to having received any user queries, the analysis of the architecture of the data store comprising an analysis of a relationship between columns of data store tables; collecting and compiling statistics from the data store; composing a first approximation of the architecture of the data store using the analysis of the architecture of the data store prior to having received any user queries, wherein the first approximation of the architecture of the data store comprises a first estimate of column sizes; performing a syntactic analysis of a user query when a query is available; compiling statistics on query content when queries are available; composing one or more updated approximations of the data store architecture using the statistics on query content, including at least an update of the first approximation of the architecture of the data store, the first approximation of the architecture of the data store based on the analysis of the architecture of the data store prior to having received any user queries; performing an analysis of the impact of data store architecture changes as the data store changes are recognized; compiling and analyzing statistics related to the users queries; integrating the analyzed statistics with the first approximation composed using the analysis of the architecture of the data store prior to having received any user queries to compose a more precise approximation of the architecture of the data store; and dynamically detecting when tables are inserted, modified, or removed from the data store by automatically carrying out continuous data store architecture analysis comprising continuous analysis of the relationship between columns of data store tables and comparing successive approximations of the architecture of the data store comprising respective estimates of column sizes; in response to detecting that a table has been inserted, modified, or removed from the data store, receiving a report of changes to components of the data store and selecting one or more query templates that do not contain the changed components of the data store; and transferring the selected one or more query templates to a query analyzer. - View Dependent Claims (17, 18, 19, 20)
-
Specification