IP Library Granted Patent US 9,576,015
Granted Patent B1
US 9,576,015 · App. 14/874,690 · Granted Feb 21, 2017

Domain-specific language for dataset transformations

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 9,576,015
App. No.
14/874,690
Granted
Feb 21, 2017
Kind
B1
Abstract

Techniques related to a domain-specific language for dataset transformations are disclosed. A server computer may process a table definition composed in a domain-specific language. The table definition may include a sequence of one or more dataset transformations to be performed on one or more source tables to generate a target table. The sequence may include a customized transformation. A source dataset may be provided as input to an implementation of the customized transformation. An output dataset may be generated as a result of executing the implementation. An intermediate table may be generated based on performing at least one dataset transformation on a particular source table. A supplemental portion for the intermediate table may be generated based on performing the at least one dataset transformation on an appended portion of the particular source table. The target table may be generated based on combining the supplemental portion with the intermediate table.

Claims (37)

1. A method comprising:

processing a table definition composed in a domain-specific language, the table definition comprising a sequence of one or more dataset transformations to be performed on one or more source tables to generate a target table, wherein the one or more dataset transformations comprises a customized transformation;

based on processing the customized transformation in the one or more dataset transformations:

obtaining an implementation of the customized transformation;

executing the implementation based on providing a source dataset as input to the implementation;

generating an output dataset as a result of executing the implementation;

wherein an intermediate table is generated based on performing at least one dataset transformation of the one or more dataset transformations on a particular source table of the one or more source tables;

wherein the one or more source tables comprise an appended portion of the particular source table;

wherein the target table is generated based on:

generating a supplemental portion for the intermediate table based on performing the at least one dataset transformation on the appended portion of the particular source table;

combining intermediate table with the supplemental portion for the intermediate table;

wherein the method is performed by one or more computing devices.

2. The method of claim 1 , wherein the one or more dataset transformations are performed in parallel.

3. The method of claim 1 , wherein the sequence of one or more dataset transformations is determined based on a graphical representation of the one or more dataset transformations.

4. The method of claim 3 , wherein the graphical representation is a directed acyclic graph.

5. The method of claim 3 , wherein the graphical representation comprises one or more leaf nodes and one or more non-leaf nodes, the one or more leaf nodes representing one or more tables, the one or more non-leaf nodes representing the one or more dataset transformations.

6. The method of claim 1 , wherein the target table is generated based on persisting the output dataset.

7. The method of claim 1 , wherein one or more references to the one or more source tables are stored at a server computer in such a manner that the one or more source tables remain uncopied to the server computer.

8. A system comprising:

one or more processors; and

one or more storage media storing instructions which, when executed by the one or more processors, cause:

processing a table definition composed in a domain-specific language, the table definition comprising a sequence of one or more dataset transformations to be performed on one or more source tables to generate a target table, wherein the one or more dataset transformations comprises a customized transformation;

based on processing the customized transformation in the one or more dataset transformations:

obtaining an implementation of the customized transformation;

executing the implementation based on providing a source dataset as input to the implementation;

generating an output dataset as a result of executing the implementation;

wherein an intermediate table is generated based on performing at least one dataset transformation of the one or more dataset transformations on a particular source table of the one or more source tables;

wherein the one or more source tables comprise an appended portion of the particular source table;

wherein the target table is generated based on:

generating a supplemental portion for the intermediate table based on performing the at least one dataset transformation on the appended portion of the particular source table;

combining intermediate table with the supplemental portion for the intermediate table.

9. The system of claim 8 , wherein the one or more dataset transformations are performed in parallel.

10. The system of claim 8 , wherein the sequence of one or more dataset transformations is determined based on a graphical representation of the one or more dataset transformations.

11. The system of claim 10 , wherein the graphical representation is a directed acyclic graph.

12. The system of claim 10 , wherein the graphical representation comprises one or more leaf nodes and one or more non-leaf nodes, the one or more leaf nodes representing one or more tables, the one or more non-leaf nodes representing the one or more dataset transformations.

13. The system of claim 8 , wherein the target table is generated based on persisting the output dataset.

14. The system of claim 8 , wherein one or more references to the one or more source tables are stored at a server computer in such a manner that the one or more source tables remain uncopied to the server computer.

Assignments (8)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2015
From: TOLNAY, DAVID; BISWAL, PUNYASHLOKA; COLOMBI, ANDREW; FU, YUPENG; FUADI, ASHAR; KIM, MINGYU; NEPYWODA, PAUL; PUNDLE, AKSHAY; TAMAYO, JUAN
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 037196/0136 →