User segment population techniques
First Claim
1. A method in a computing system for populating a segment from a population of individuals, comprising:
- from one or more fact tables each comprised of rows, each row divided into columns including an individual identifier column and at least one fact column, the individual identifier column containing an individual identifier value uniquely identifying an individual, each fact column containing a fact relating to the individual identified by the individual identifier value, extracting the individual identifier column and the fact columns;
creating a hash column, wherein, in each entry of the hash column, the hash column stores a hash value computed by applying a hash function to the value contained in the corresponding entry of the extracted individual identifier column, wherein the hash function creates one or more groups based on the values contained in the corresponding entries that hash to the same value, and wherein a substantially equal number of individual identifiers is attributed to each of the one or more groups;
for each distinct hash value occurring in the hash column;
storing in a distinct, contiguous portion of a filesystem file the individual identifier values of the entries of the extracted individual identifier column corresponding to the entries of the hash column containing the distinct hash value, in the order in which the individual identifier values occur in the extracted individual identifier column;
for each of the extracted fact columns;
storing in a distinct, contiguous portion of a filesystem file the fact values of the entries of the extracted fact column corresponding to the entries of the hash column containing the distinct hash value, in the order in which the fact values occur in the extracted fact column;
receiving a request to populate a segment, the segment being defined by a segment definition containing a reference to a specialized routine for evaluating individuals for segment membership, the referenced specialized routine depending on a subset of the fact columns;
for each distinct hash value occurring in the hash column;
of the filesystem file portions stored for the distinct hash value, loading for simultaneous co-residency in memory those stored for the individual identifier column and the subset of fact columns depended on by the referenced specialized routine; and
executing the specialized routine against the loaded data to identify individuals among the population that are members of the segment.
7 Assignments
0 Petitions
Accused Products
Abstract
A facility for populating a segment from a population of individuals is described. The facility accesses two or more fact tables, each containing data about attributes of a number of users who are members of a number of arbitrary user groups. The facility generates a number of column chunks from each fact table. Each column chunk contains data about a single attribute of users that are members of a single arbitrary user group. The facility applies a segment membership test that tests particular user attributes to each arbitrary user groups in turn. In doing so, the facility collects the generated column chunks that contain data about attributes of users that are members of the current arbitrary user group tested by the segment membership test. The facility applies the segment membership test to the collected column chunks to identify individuals within the arbitrary user group that satisfy the segment membership test.
-
Citations
12 Claims
-
1. A method in a computing system for populating a segment from a population of individuals, comprising:
-
from one or more fact tables each comprised of rows, each row divided into columns including an individual identifier column and at least one fact column, the individual identifier column containing an individual identifier value uniquely identifying an individual, each fact column containing a fact relating to the individual identified by the individual identifier value, extracting the individual identifier column and the fact columns; creating a hash column, wherein, in each entry of the hash column, the hash column stores a hash value computed by applying a hash function to the value contained in the corresponding entry of the extracted individual identifier column, wherein the hash function creates one or more groups based on the values contained in the corresponding entries that hash to the same value, and wherein a substantially equal number of individual identifiers is attributed to each of the one or more groups; for each distinct hash value occurring in the hash column; storing in a distinct, contiguous portion of a filesystem file the individual identifier values of the entries of the extracted individual identifier column corresponding to the entries of the hash column containing the distinct hash value, in the order in which the individual identifier values occur in the extracted individual identifier column; for each of the extracted fact columns; storing in a distinct, contiguous portion of a filesystem file the fact values of the entries of the extracted fact column corresponding to the entries of the hash column containing the distinct hash value, in the order in which the fact values occur in the extracted fact column; receiving a request to populate a segment, the segment being defined by a segment definition containing a reference to a specialized routine for evaluating individuals for segment membership, the referenced specialized routine depending on a subset of the fact columns; for each distinct hash value occurring in the hash column; of the filesystem file portions stored for the distinct hash value, loading for simultaneous co-residency in memory those stored for the individual identifier column and the subset of fact columns depended on by the referenced specialized routine; and executing the specialized routine against the loaded data to identify individuals among the population that are members of the segment. - View Dependent Claims (2, 3, 4)
-
-
5. A method in a computing system for populating a segment from a population of individuals, comprising:
-
reading a fact table comprised of rows, each row divided into columns including an individual identifier column and at least one fact column, the individual identifier column containing an individual identifier value uniquely identifying an individual, each fact column containing a fact relating to the individual identified by the individual identifier value; for each row of the fact table, applying a hashing function to the individual identifier value contained by the fact table to obtain a hash value, wherein the hash function creates one or more groups based on the values contained in the corresponding entries that hash to the same value, and wherein a substantially equal number of individual'"'"'identifiers is attributed to each of the one or more groups; for each distinct hash value obtained; storing in a distinct, contiguous portion of a file the individual identifier values of the rows of the fact table for which the distinct hash value is obtained, in the order in which the individual identifier values occur in the individual identifier column; for at least a portion of the fact columns; storing in a distinct, contiguous portion of a file the fact values of the entries of the rows of the fact table for which the distinct hash value is obtained, in the order in which the fact values occur in the fact column; receiving a request to populate a segment, the segment being defined by a segment definition containing a reference to a segment membership test for evaluating individuals for segment membership, the referenced specialized routine depending on a subset of the fact columns; for each distinct hash value obtained; of the file portions stored for the distinct hash value, loading for simultaneous co-residency in memory those stored for the individual identifier column and the subset of fact columns depended on by the referenced specialized routine; and applying a segment membership test against the loaded data to identify individuals among the population that are members of the segment. - View Dependent Claims (6, 7, 8, 9)
-
-
10. One or more computer memories collectively containing an individual attribute data structure generated from a database table, comprising:
-
an individual identifier column extracted from the database table, the individual identifier column comprising an ordered series of entries each containing an individual identifier value; a plurality of fact columns, each fact column extracted from the database table and comprising an ordered series of entries each containing a fact value; and a hash column comprising an ordered series of entries each containing a hash value obtained by applying a hash function to the individual identifier value contained in the corresponding entry of the individual identifier column, wherein the hash function creates one or more groups based on the values contained in the corresponding entries that hash to the same value, and wherein a substantially equal number of individual identifiers is attributed to each of the one or more groups; such that, to determine whether an individual belongs in a population segment, the contents of the data structure is compared to segment membership criteria; such that, it is possible to compare the contents of the data structure to segment membership criteria by; for each distinct hash value occurring in the hash column; storing in a distinct, contiguous portion of a filesystem file the individual identifier values of the entries of the individual identifier column corresponding to the entries of the hash column containing the distinct hash value, in the order in which the individual identifier values occur in the individual identifier column; for each of the fact columns; storing in a distinct, contiguous portion of a filesystem file the fact values of the entries of the fact column corresponding to the entries of the hash column containing the distinct hash value, in the order in which the fact values occur in the fact column; receiving a request to populate a segment, the segment being defined by a segment definition containing a reference to a specialized routine for evaluating individuals for segment membership, the referenced specialized routine depending on a subset of the fact columns; for each distinct hash value occurring in the hash column; of the filesystem file portions stored for the distinct hash value, loading for simultaneous co-residency in memory those stored for the individual identifier column and the subset of fact columns depended on by the referenced specialized routine; and executing the specialized routine against the loaded data to identify individuals among the population that are members of the segment. - View Dependent Claims (11, 12)
-
Specification