Scalable cloud-based time series analysis
First Claim
1. A system comprising:
- one or more data processors associated with a plurality of computing devices; and
a non-transitory computer-readable storage medium comprising instructions that are executable by the one or more data processors for causing the plurality of computing devices to;
read timestamped data and partition the timestamped data into a plurality of groups according to a criterion;
distribute the timestamped data among the plurality of computing devices based on the plurality of groups;
obtain copies of a script configured to process the timestamped data, each computing device among the plurality of computing devices receiving a copy of the script;
determine one or more code segments associated with the plurality of groups based on content of the script, the one or more code segments being in one or more programming languages that are different than a programming language of the script; and
run the copies of the script to process the timestamped data within the plurality of groups, each copy of the script being run on the timestamped data in a respective group among the plurality of groups at least in part by interacting with a job server configured to run a respective code segment associated with the respective group, the job server being compatible with a particular programming language of the respective code segment and being configured to run the respective code segment to generate respective model values associated with the respective group by;
generating header code in the particular programming language, the header code defining one or more global variables having values provided in the script;
generating footer code in the particular programming language, the footer code defining one or more output routines for returning the respective model values associated with the respective group;
generating a modified code segment by combining the header code and the footer code with the respective code segment; and
running the modified code segment based on the timestamped data in the respective group, thereby generating and returning the respective model values associated with the respective group.
1 Assignment
0 Petitions
Accused Products
Abstract
In some examples, computing devices can partition timestamped data into groups. The computing devices can then distribute the timestamped data based on the groups. The computing devices can also obtain copies of a script configured to process the timestamped data, such that each computing device receives a copy of the script. The computing devices can determine one or more code segments associated with the groups based on content of the script. The one or more code segments can be in one or more programming languages that are different than a programming language of the script. The computing devices can then run the copies of the script to process the timestamped data within the groups. This may involve interacting with one or more job servers configured to run the one or more code segments associated with the groups.
-
Citations
30 Claims
-
1. A system comprising:
-
one or more data processors associated with a plurality of computing devices; and a non-transitory computer-readable storage medium comprising instructions that are executable by the one or more data processors for causing the plurality of computing devices to; read timestamped data and partition the timestamped data into a plurality of groups according to a criterion; distribute the timestamped data among the plurality of computing devices based on the plurality of groups; obtain copies of a script configured to process the timestamped data, each computing device among the plurality of computing devices receiving a copy of the script; determine one or more code segments associated with the plurality of groups based on content of the script, the one or more code segments being in one or more programming languages that are different than a programming language of the script; and run the copies of the script to process the timestamped data within the plurality of groups, each copy of the script being run on the timestamped data in a respective group among the plurality of groups at least in part by interacting with a job server configured to run a respective code segment associated with the respective group, the job server being compatible with a particular programming language of the respective code segment and being configured to run the respective code segment to generate respective model values associated with the respective group by; generating header code in the particular programming language, the header code defining one or more global variables having values provided in the script; generating footer code in the particular programming language, the footer code defining one or more output routines for returning the respective model values associated with the respective group; generating a modified code segment by combining the header code and the footer code with the respective code segment; and running the modified code segment based on the timestamped data in the respective group, thereby generating and returning the respective model values associated with the respective group. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method comprising:
-
reading, by a plurality of computing devices, timestamped data and partitioning the timestamped data into a plurality of groups according to a criterion; distributing, by the plurality of computing devices, the timestamped data among the plurality of computing devices based on the plurality of groups; obtaining, by the plurality of computing devices, copies of a script configured to process the timestamped data, each computing device among the plurality of computing devices receiving a copy of the script; determining, by the plurality of computing devices, one or more code segments associated with the plurality of groups based on content of the script, the one or more code segments being in one or more programming languages that are different than a programming language of the script; and running, by the plurality of computing devices, the copies of the script to process the timestamped data within the plurality of groups, each copy of the script being run on the timestamped data in a respective group among the plurality of groups at least in part by interacting with a job server configured to run a respective code segment associated with the respective group, wherein the job server is compatible with a particular programming language of the respective code segment and runs the respective code segment to generate respective model values associated with the respective group by; generating header code in the particular programming language, the header code defining one or more global variables having values provided in the script; generating footer code in the particular programming language, the footer code defining one or more output routines for returning the respective model values associated with the respective group; generating a modified code segment by combining the header code and the footer code with the respective code segment; and running the modified code segment based on the timestamped data in the respective group, thereby generating and returning the respective model values associated with the respective group. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A non-transitory computer-readable medium comprising program code that is executable by one or more data processors associated with a plurality of computing devices for causing the plurality of computing devices to:
-
read timestamped data and partition the timestamped data into a plurality of groups according to a criterion; distribute the timestamped data among the plurality of computing devices based on the plurality of groups; obtain copies of a script configured to process the timestamped data, each computing device among the plurality of computing devices receiving a copy of the script; determine one or more code segments associated with the plurality of groups based on content of the script, the one or more code segments being in one or more programming languages that are different than a programming language of the script; and run the copies of the script to process the timestamped data within the plurality of groups, each copy of the script being run on the timestamped data in a respective group among the plurality of groups at least in part by interacting with a job server configured to run a respective code segment associated with the respective group, the job server being compatible with a particular programming language of the respective code segment and being configured to run the respective code segment to generate respective model values associated with the respective group by; generating header code in the particular programming language, the header code defining one or more global variables having values provided in the script; generating footer code in the particular programming language, the footer code defining one or more output routines for returning the respective model values associated with the respective group; generating a modified code segment by combining the header code and the footer code with the respective code segment; and running the modified code segment based on the timestamped data in the respective group, thereby generating and returning the respective model values associated with the respective group. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification