Horizontal skimming of composite datasets
Disclosed are embodiments for horizontally skimming composite datasets. In one embodiment, a method is disclosed comprising receiving a script, the script including commands to access a composite dataset; pre-processing the script to identify a set of columns; loading a metadata file associated with the composite dataset file; parsing the metadata file to identify one or more datasets that include a column in the set of columns; loading data from the one or more datasets; and executing the script on the one or more datasets.
1. A method comprising:
receiving, by a processor, a script, the script including commands to access a composite dataset, the composite dataset comprising a plurality of datasets, the plurality of datasets including a raw dataset and one or more annotation datasets, the one or more annotation datasets created independent of the raw dataset;
pre-processing, by the processor, an intermediate representation of the script to identify a set of columns associated with the composite dataset, wherein, pre-processing the script comprises generating a directed acyclic graph as the intermediate representation and identifying one or more column names included in the commands based on the directed acyclic graph;
loading, by the processor, a metadata file associated with the composite dataset, the metadata file including an algebraic representation defining relationships among the plurality of datasets, the loading comprising identifying file paths associated with the plurality of datasets and loading data from files stored at the file paths;
parsing, by the processor, the algebraic representation to identify one or more datasets that include a column in the set of columns, the one or more datasets comprising a subset of the plurality of datasets;
loading, by the processor, data from the one or more datasets; and
executing, by the processor, the script on the one or more datasets.
2. The method of claim 1 , wherein parsing the metadata file comprises identifying one or more dataset objects stored within the metadata file; and extracting schemas associated with each of the one or more dataset objects.
3. The method of claim 2 , wherein parsing the metadata file further comprises identifying a schema in the schemas that includes at least one column in the set of columns.
4. The method of claim 1 , wherein executing the script comprises combining the one or more datasets to form a second composite dataset and using the second composite dataset while executing the script.
5. The method of claim 1 , further comprising executing a predicate push down procedure prior to loading the data.
6. A non-transitory computer-readable storage medium for tangibly storing computer program instructions capable of being executed by a computer processor, the computer program instructions defining steps of:
receiving a script, the script including commands to access a composite dataset, the composite dataset comprising a plurality of datasets, the plurality of datasets including a raw dataset and one or more annotation datasets, the one or more annotation datasets created independent of the raw dataset;
pre-processing an intermediate representation of the script to identify a set of columns associated with the composite dataset,
wherein, pre-processing the script comprises generating a directed acyclic graph as the intermediate representation and identifying one or more column names included in the commands based on the directed acyclic graph;
loading a metadata file associated with the composite dataset, the metadata file including an algebraic representation defining relationships among the plurality of datasets, the loading comprising identifying file paths associated with the plurality of datasets and loading data from files stored at the file paths;
parsing the algebraic representation to identify one or more datasets that include a column in the set of columns, the one or more datasets comprising a subset of the plurality of datasets;
loading data from the one or more datasets; and
executing the script on the one or more datasets.
7. The non-transitory computer-readable storage medium of claim 6 , wherein parsing the metadata file comprises identifying one or more dataset objects stored within the metadata file; and extracting schemas associated with each of the one or more dataset objects.
8. The non-transitory computer-readable storage medium of claim 7 , wherein parsing the metadata file further comprises identifying a schema in the schemas that includes at least one column in the set of columns.
9. The non-transitory computer-readable storage medium of claim 6 , wherein executing the script comprises combining the one or more datasets to form a second composite dataset and using the second composite dataset while executing the script.
10. The non-transitory computer-readable storage medium of claim 6 , further comprising executing a predicate push down procedure prior to loading the data.
11. An apparatus comprising:
a processor; and
a storage medium for tangibly storing thereon program logic for execution by the processor, the program logic causing the processor to perform operations of:
receiving a script, the script including commands to access a composite dataset, the composite dataset comprising a plurality of datasets, the plurality of datasets including a raw dataset and one or more annotation datasets, the one or more annotation datasets created independent of the raw dataset;
pre-processing an intermediate representation of the script to identify a set of columns associated with the composite dataset,
wherein, pre-processing the script comprises generating a directed acyclic graph as the intermediate representation and identifying one or more column names included in the commands based on the directed acyclic graph;
loading a metadata file associated with the composite dataset, the metadata file including an algebraic representation defining relationships among the plurality of datasets, the loading comprising identifying file paths associated with the plurality of datasets and loading data from files stored at the file paths;
parsing the algebraic representation to identify one or more datasets that include a column in the set of columns, the one or more datasets comprising a subset of the plurality of datasets;
loading data from the one or more datasets; and
executing the script on the one or more datasets.
12. The apparatus of claim 11 , wherein parsing the metadata file comprises identifying one or more dataset objects stored within the metadata file; and extracting schemas associated with each of the one or more dataset objects.
13. The apparatus of claim 12 , wherein parsing the metadata file further comprises identifying a schema in the schemas that includes at least one column in the set of columns.
14. The apparatus of claim 11 , wherein executing the script comprises combining the one or more datasets to form a second composite dataset and using the second composite dataset while executing the script.