-
公开(公告)号:US20180081939A1
公开(公告)日:2018-03-22
申请号:US15268521
申请日:2016-09-16
Applicant: Oracle International Corporation
Inventor: Albert Hopeman , Martin Roth , Ekrem Soylemez , Adam Kociubes
IPC: G06F17/30
Abstract: Techniques are described herein for performing join and aggregation operations for a received query using column dictionaries. In an embodiment, a query is received that requests to aggregate a measure column of a fact table based on an aggregate function and join the fact table with a dimension table on a join key column. Data of the fact table may be stored in one or more storage data units, for example a particular data portion of the fact table may be stored on a particular data storage unit. The respective data portion may include one or more column vectors corresponding to one or more columns of the fact table in which a cell element corresponds to a value at a particular row and a particular column of the one or more columns of the fact table. The cell element of the one or more column vectors includes a dictionary encoded value of the value at the particular column and row. This dictionary encoded value is mapped to the value of by a dictionary data structure of the particular column. In an embodiment, in response to receiving the query, using the query, for a particular storage unit, the DBMS identifies a fact join key vector of the one or more column vectors of the particular data storage unit and a fact join key dictionary data structure corresponding to the fact join key vector. The DBMS generates a dictionary-grouping key mapping based on the fact join key dictionary data structure and a dense grouping key data structure. Such a dense grouping key data structure represents a mapping of unique dimension join key values of the join key column of the dimension table to grouping key values of a grouping key of the dimension table. Based on the generated dictionary-grouping key mapping and the fact join key vector, the DBMS may generate a transformed vector, which represents the grouping key values of the dictionary-grouping key mapping arranged according to the fact join key vector. Alternatively, the dictionary-grouping key mapping may be directly accessed during the aggregation. Based on the generated transformed vector and/or by directly accessing the dictionary-grouping key mapping, the DBMS aggregates a column vector in that particular data storage unit that corresponds to the measure column in the received query.
-
公开(公告)号:US10558659B2
公开(公告)日:2020-02-11
申请号:US15268521
申请日:2016-09-16
Applicant: Oracle International Corporation
Inventor: Albert Hopeman , Martin Roth , Ekrem Soylemez , Adam Kociubes
IPC: G06F16/00 , G06F16/2453 , G06F16/28 , G06F16/22
Abstract: Techniques are described herein for performing join and aggregation operations for a received query using column dictionaries. In an embodiment, a query is received that requests to aggregate a measure column of a fact table based on an aggregate function and join the fact table with a dimension table on a join key column. Data of the fact table may be stored in one or more storage data units, for example a particular data portion of the fact table may be stored on a particular data storage unit. The respective data portion may include one or more column vectors corresponding to one or more columns of the fact table in which a cell element corresponds to a value at a particular row and a particular column of the one or more columns of the fact table. The cell element of the one or more column vectors includes a dictionary encoded value of the value at the particular column and row. This dictionary encoded value is mapped to the value of by a dictionary data structure of the particular column. In an embodiment, in response to receiving the query, using the query, for a particular storage unit, the DBMS identifies a fact join key vector of the one or more column vectors of the particular data storage unit and a fact join key dictionary data structure corresponding to the fact join key vector. The DBMS generates a dictionary-grouping key mapping based on the fact join key dictionary data structure and a dense grouping key data structure. Such a dense grouping key data structure represents a mapping of unique dimension join key values of the join key column of the dimension table to grouping key values of a grouping key of the dimension table. Based on the generated dictionary-grouping key mapping and the fact join key vector, the DBMS may generate a transformed vector, which represents the grouping key values of the dictionary-grouping key mapping arranged according to the fact join key vector. Alternatively, the dictionary-grouping key mapping may be directly accessed during the aggregation. Based on the generated transformed vector and/or by directly accessing the dictionary-grouping key mapping, the DBMS aggregates a column vector in that particular data storage unit that corresponds to the measure column in the received query.
-
公开(公告)号:US09836519B2
公开(公告)日:2017-12-05
申请号:US14033271
申请日:2013-09-20
Applicant: Oracle International Corporation
Inventor: Adam Kociubes , Ekrem S. C. Soylemez , Martin Roth
IPC: G06F17/30
CPC classification number: G06F17/30592 , G06F17/30312 , G06F17/30433 , G06F17/30448 , G06F2216/03
Abstract: Methods, computer systems, and stored instructions are described herein for densely grouping dimensional data and/or aggregating data using a data structure, such as one that is constructed based on dimensional data. When smaller tables are joined with a larger table, a server may analyze the smaller tables first to determine actual value combinations that occur in the smaller tables, and these actual value combinations are used to more efficiently process the larger table. A dense data structure may be generated by processing dimensional data before processing data from fact table. The dense data structure may be generated by compressing ranges of values that are possible in dimensions into a range of values that actually occurs in the dimensions. The compressed range of values may be represented by dense set identifiers rather than the actual compressed range of values.
-
公开(公告)号:US12093261B2
公开(公告)日:2024-09-17
申请号:US15943335
申请日:2018-04-02
Applicant: Oracle International Corporation
Inventor: Aurosish Mishra , Shasank K. Chavan , Vinita Subramanian , Ekrem S. C. Soylemez , Adam Kociubes , Eugene Karichkin , Garret F. Swart
IPC: G06F16/24 , G06F16/172 , G06F16/22 , G06F16/2455
CPC classification number: G06F16/24552 , G06F16/172 , G06F16/221 , G06F16/2455 , G06F16/24553
Abstract: Techniques related to cache storage formats are disclosed. In some embodiments, a set of values is stored in a cache as a set of first representations and a set of second representations. For example, the set of first representations may be a set of hardware-level representations, and the set of second representations may be a set of non-hardware-level representations. Responsive to receiving a query to be executed over the set of values, a determination is made as to whether or not it would be more efficient to execute the query over the set of first representations than to execute the query over the set of second representations. If the determination indicates that it would be more efficient to execute the query over the set of first representations than to execute the query over the set of second representations, the query is executed over the set of first representations.
-
公开(公告)号:US09990398B2
公开(公告)日:2018-06-05
申请号:US14033285
申请日:2013-09-20
Applicant: Oracle International Corporation
Inventor: James Hunter , Adam Kociubes
CPC classification number: G06F17/30466
Abstract: Methods, computer systems, and stored instructions are described herein for inferring dimensional metadata from content of a query that references tables. A server analyzes the content of the query to determine which table(s) of the referenced tables could be fact tables and/or which table(s) of the referenced tables could be dimension tables. The server transforms the query to a transformed query that operates on a candidate fact table and candidate dimension table(s) of the referenced tables other than the candidate fact table. The transformed query, when executed, processes at least some data from dimension(s) using the candidate dimension table(s) before processing at least some data from the candidate fact table. Alternatively or additionally, the server generates an execution plan that operates on the candidate fact table and the candidate dimension table(s). The execution plan, when performed, processes data from dimension(s) using the candidate dimension table(s) before processing data from the candidate fact table.
-
公开(公告)号:US20190102391A1
公开(公告)日:2019-04-04
申请号:US15943335
申请日:2018-04-02
Applicant: Oracle International Corporation
Inventor: Aurosish Mishra , Shasank K. Chavan , Vinita Subramanian , Ekrem S.C. Soylemez , Adam Kociubes , Eugene Karichkin , Garret F. Swart
IPC: G06F17/30
Abstract: Techniques related to cache storage formats are disclosed. In some embodiments, a set of values is stored in a cache as a set of first representations and a set of second representations. For example, the set of first representations may be a set of hardware-level representations, and the set of second representations may be a set of non-hardware-level representations. Responsive to receiving a query to be executed over the set of values, a determination is made as to whether or not it would be more efficient to execute the query over the set of first representations than to execute the query over the set of second representations. If the determination indicates that it would be more efficient to execute the query over the set of first representations than to execute the query over the set of second representations, the query is executed over the set of first representations.
-
公开(公告)号:US10067954B2
公开(公告)日:2018-09-04
申请号:US14806576
申请日:2015-07-22
Applicant: Oracle International Corporation
Inventor: Adam Kociubes , Ekrem Soylemez , Hyemin Chung
IPC: G06F17/30
Abstract: Techniques are described herein for using a dynamic dictionary encoding with an associated hash table to support many-to-many join and aggregation operations. In an embodiment, within a first storage of a computing device, a first data structure that comprises a first dense grouping key column is created. The dense grouping key column includes a first plurality of dense grouping key values and one or more instances of a flag value. Within the first storage of the computing device, a second data structure is created that comprises a group-by column and a second dense grouping key column. The group-by column includes a plurality of group-by key values and the second dense grouping key column includes a second plurality of dense grouping key values. Within the first storage of the computing device, a third data structure, a hash table, is created that includes a hash bucket for each join key value that corresponds to an instance of the flag value. A result set for a query is determined using a combination of the first data structure, second data structure and/or the third data structure.
-
-
-
-
-
-