IP Library Granted Patent US 11,074,248
Granted Patent B2
US 11,074,248 · App. 16/371,073 · Granted Jul 27, 2021

Map of operations for ingesting external data

Inventors: Shrikumar Hariharasubrahmanian (Palo Alto, CA); Michael Delorimier (Belmont, CA); Jarod Wen (Hollis, NH)
Assignee: ORACLE INTERNATIONAL CORPORATION
G06F16/2423G06F16/2471G06F16/24573G06F16/252
View Patent ↗
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 11,074,248
App. No.
16/371,073
Granted
Jul 27, 2021
Kind
B2
Abstract

Techniques are described for generating a map of operations to ingest external data. In an embodiment, DBMS receives a query schema that specifies an external data source and client-defined columns to arrange queried data from data fields of the external data source. DBMS generates an ingest schema for the queried data of the external data source such that the ingest schema specifies ingest data fields from the data fields of the external data source to be mapped to the one or more client-defined columns. Additionally, the DBMS identifies surplus data in the external data source, which has not been specified by the ingest schema and is different from the queried data defined by the client-requested query schema. The process not only ingests the ingest data fields from the external data source but also the surplus data from the external data source. In response to receiving a query according to a different query schema, DBMS generates a result set that based on the surplus data of the external data source. The result generation is based on the DBMS generating a map of operations, which when performed, generates a result set for the received query regardless whether the query is based on the different query schema.

Claims (46)

1. A computer-implemented method comprising:

receiving, at a database management system (DBMS), a first query schema that specifies an external data source and one or more client-defined columns to arrange queried data from data fields of the external data source;

generating an ingest schema for the queried data of the external data source, the ingest schema specifying one or more ingest data fields from the data fields of the external data source to be mapped to the one or more client-defined columns;

identifying surplus data in the external data source, which has not been specified by the ingest schema and different from the queried data defined by the first client-requested query schema;

in addition to ingesting, into the DBMS, the one or more ingest data fields from the external data source, ingesting the surplus data from the external data source;

in response to receiving a query according to a second query schema, that is different from the first query schema, generating a result set that is based at least in part on the surplus data of the external data source.

2. The method of claim 1 , wherein the surplus data includes surplus data fields that are different from the ingest data fields of the ingest schema.

3. The method of claim 1 , wherein the surplus data includes delimiter information for the data fields of the external data source.

4. The method of claim 1 , wherein the ingest schema is based on metadata of the external data source.

5. The method of claim 1 , wherein the one or more client-defined columns are one or more first client-defined columns, and the query is a first query, the method further comprising:

receiving, at the DBMS, the second query schema that specifies the same external data source and one or more second client-defined columns to arrange new queried data from the external data source;

without re-generating a new ingest schema and without any other ingesting, based on the one or more ingest data fields and the surplus data, generating a map of operations, the map of operations comprising one or more operators that transform the one or more ingest data fields and the surplus data into the one or more second client-defined columns.

6. The method of claim 5 , wherein the map of operations is a second map of operations, and the one or more operators are one or more second operators, and the method further comprising:

before generating the second map of operations comprising the one or more second operators, generating a first map of operations;

wherein the first map of operations comprises one or more first operators that are different from the one or more second operators and that transform the one or more ingest data fields into the one or more first client-defined columns of the first query schema.

7. The method of claim 5 , wherein the one or more operators include a split operator, a combine operator, or a re-arrangement operator.

8. The method of claim 5 , wherein generating the map of operations is based on determining one or more types of mappings between the data fields of the external data source and the one or more second client-defined columns of the second query schema.

9. The method of claim 5 , wherein generating the result set includes:

performing a read of a record of the data fields in the external data source;

providing corresponding input data from the data fields to the one or more operators of the map of operations;

performing one or more operations of the one or more operators of the map of operations;

based on output data of the one or more operators, generating at least a portion of a row in the result set.

10. The method of claim 9 , wherein the read of the record of the data fields in the external data source is performed based on an indicator that indicates a new record can be read, and wherein the generating at least the portion of the row in the result set is performed based on an indicator that indicates a new result row can be written.

11. One or more non-transitory computer-readable media storing instructions, wherein the instructions include a sequence of instructions, which when executed by one or more processors causes:

receiving, at a database management system (DBMS), a first query schema that specifies an external data source and one or more client-defined columns to arrange queried data from data fields of the external data source;

generating an ingest schema for the queried data of the external data source, the ingest schema specifying one or more ingest data fields from the data fields of the external data source to be mapped to the one or more client-defined columns;

identifying surplus data in the external data source, which has not been specified by the ingest schema and different from the queried data defined by the first client-requested query schema;

in addition to ingesting, into the DBMS, the one or more ingest data fields from the external data source, ingesting the surplus data from the external data source;

in response to receiving a query according to a second query schema, that is different from the first query schema, generating a result set that is based at least in part on the surplus data of the external data source.

12. The one or more non-transitory computer-readable media of claim 11 , wherein the surplus data includes surplus data fields that are different from the ingest data fields of the ingest schema.

13. The one or more non-transitory computer-readable media of claim 11 , wherein the surplus data includes delimiter information for the data fields of the external data source.

14. The one or more non-transitory computer-readable media of claim 11 , wherein the ingest schema is based on metadata of the external data source.

15. The one or more non-transitory computer-readable media of claim 11 , wherein the one or more client-defined columns are one or more first client-defined columns, the query is a first query, and wherein the sequence of instructions further includes instructions, which when executed by the one or more processors cause:

receiving, at the DBMS, the second query schema that specifies the same external data source and one or more second client-defined columns to arrange new queried data from the external data source;

without re-generating a new ingest schema and without any other ingesting, based on the one or more ingest data fields and the surplus data, generating a map of operations, the map of operations comprising one or more operators that transform the one or more ingest data fields and the surplus data into the one or more second client-defined columns.

16. The one or more non-transitory computer-readable media of claim 15 , wherein the map of operations is a second map of operations, and the one or more operators are one or more second operators, and wherein the sequence of instructions further includes instructions, which when executed by the one or more processors cause:

before generating the second map of operations comprising the one or more second operators, generating a first map of operations;

wherein the first map of operations comprises one or more first operators that are different from the one or more second operators and that transform the one or more ingest data fields into the one or more first client-defined columns of the first query schema.

17. The one or more non-transitory computer-readable media of claim 15 , wherein the one or more operators include a split operator, a combine operator, or a re-arrangement operator.

18. The one or more non-transitory computer-readable media of claim 15 , wherein the sequence of instructions further includes instructions, which when executed by the one or more processors cause generating the map of operations is based on determining one or more types of mappings between the data fields of the external data source and the one or more second client-defined columns of the second query schema.

19. The one or more non-transitory computer-readable media of claim 15 , wherein the sequence of instructions further includes instructions, which when executed by the one or more processors cause:

performing a read of a record of the data fields in the external data source;

providing corresponding input data from the data fields to the one or more operators of the map of operations;

performing one or more operations of the one or more operators of the map of operations;

based on output data of the one or more operators, generating at least a portion of a row in the result set.

20. The one or more non-transitory computer-readable media of claim 19 , wherein the read of the record of the data fields in the external data source is performed based on an indicator that indicates a new record can be read, and wherein the generating at least the portion of the row in the result set is performed based on an indicator that indicates a new result row can be written.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2019
From: HARIHARASUBRAHMANIAN, SHRIKUMAR; DELORIMIER, MICHAEL; WEN, JAROD
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 048753/0098 →
Continuity (1)
Related Publication 20200311063A1 · Oct 1, 2020