IP Library Granted Patent US 8,849,833
Granted Patent B1
US 8,849,833 · App. 13/956,184 · Granted Sep 30, 2014

Indexing of data segments to facilitate analytics

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 8,849,833
App. No.
13/956,184
Granted
Sep 30, 2014
Kind
B1
Abstract

The disclosed embodiments provide a system that processes data. During operation, the system obtains a set of records, wherein each of the records comprises one or more metrics and at least one dimension associated with the one or more metrics. Next, the system creates a data segment from the records by sorting the records by a primary sort column having a first set of possible values, creating a set of dictionaries for a set of columns in the records, and building a set of forward indexes for the columns using the set of dictionaries.

Claims (55)

1. A computer-implemented method for processing data, comprising:

obtaining a set of records, wherein each of the records comprises one or more metrics and at least one dimension associated with the one or more metrics; and

creating a data segment from the records by:

sorting the records by a primary sort column having a first set of possible values;

creating a first forward index for the primary sort column, wherein each row in the first forward index comprises:

a unique value found in the primary sort column;

a minimum record identifier of a first record containing the unique value; and

a maximum record identifier of a last record containing the unique value; and

for each column in at least one of the records' remaining columns:

creating a dictionary for the column, wherein the dictionary maps unique values in the column to fixed-length encodings of the unique values; and

creating a forward index for the column that uses the dictionary to access the unique values in the column with the fixed-length encodings.

2. The computer-implemented method of claim 1 , further comprising:

sorting the records by a secondary sort column having a second set of possible values.

3. The computer-implemented method of claim 2 , wherein sorting the metrics by the secondary sort column comprises:

for each value from the first set of possible values, further sorting the records by the second set of possible values.

4. The computer-implemented method of claim 1 , wherein the forward index stores a fixed-length encoding of values in each unsorted column in the records.

5. The computer-implemented method of claim 1 , wherein the set of records comprises at least one of:

newly generated records of the one or more metrics and the at least one dimension; and

older records of the one or more metrics and the at least one dimension.

6. The computer-implemented method of claim 1 , wherein the data segment comprises a fixed number of records.

7. A computer system for processing data, comprising:

a processor;

memory;

a program module, wherein the program module is stored in the memory and configurable to be executed by the processor to generate a script, the program module including:

instructions for obtaining a set of records, wherein each of the records comprises one or more metrics and at least one dimension associated with the one or more metrics; and

instructions for creating a data segment from the records by:

sorting the records by a primary sort column having a first set of possible values;

creating a first forward index for the primary sort column, wherein each row in the first forward index comprises:

a unique value found in the primary sort column;

a minimum record identifier of a first record containing the unique value; and

a maximum record identifier of a last record containing the unique value; and

for each column in at least one of the records' remaining columns:

creating a dictionary for the column, wherein the dictionary maps unique values in the column to fixed-length encodings of the unique values; and

creating a forward index for the column that uses the dictionary to access the unique values in the column with the fixed-length encodings.

8. The computer system of claim 7 , wherein the program module further comprises instructions for:

sorting the records by a secondary sort column having a second set of possible values.

9. The computer system of claim 8 , wherein sorting the metrics by the secondary sort column comprises:

for each value from the first set of possible values, further sorting the records by the second set of possible values.

10. The computer system of claim 7 , wherein the forward index stores a fixed-length encoding of values in each unsorted column in the records.

11. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for processing data, the method comprising:

obtaining a set of records, wherein each of the records comprises one or more metrics and at least one dimension associated with the one or more metrics; and

creating a data segment from the records by:

sorting the records by a primary sort column having a first set of possible values;

creating a first forward index for the primary sort column, wherein each row in the first forward index comprises:

a unique value found in the primary sort column;

a minimum record identifier of a first record containing the unique value; and

a maximum record identifier of a last record containing the unique value; and

for each column in at least one of the records' remaining columns:

creating a dictionary for the column, wherein the dictionary maps unique values in the column to fixed-length encodings of the unique values; and

creating a forward index for the column that uses the dictionary to access the unique values in the column with the fixed-length encodings.

12. The non-transitory computer-readable storage medium of claim 11 , the method further comprising:

sorting the records by a secondary sort column having a second set of possible values.

13. The non-transitory computer-readable storage medium of claim 12 , wherein sorting the metrics by the secondary sort column comprises:

for each value from the first set of possible values, further sorting the records by the second set of possible values.

14. The non-transitory computer-readable storage medium of claim 11 , wherein the forward index also stores a fixed-length encoding of values in each unsorted column in the records.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: LINKEDIN CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044746/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2013
From: NAGA, PRAVEEN N.; DUBEY, SANJAY S.; PATEL, DHAVAL H.; ZHABIUK, VOLODYMYR
To: LINKEDIN CORPORATION
Reel/Frame 031152/0818 →