Multi-Level Partitioning Star Schema Fact Tables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Selecting optimal columns for multi-level partitioned primary indexes (MLPPI) in star schema databases is challenging due to the large number of possible fields and the need to balance granularity with potential overhead, as fine-grained partitions reduce I/O but can increase optimization and execution overhead, while coarse-grained partitions may result in unnecessary data access.
Innovation Solution
A method that preprocesses inputs to produce a most-granular partitioning, processes this to create an initial MLPPI, and further refines it to a final MLPPI by determining scan and query costs, merging ranges, and partitioning the fact table using a greedy algorithm to minimize the number of partitions and optimize query performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If fine-grained partitioning is used, then data access precision is improved and I/O is reduced, but partition overhead and system complexity increase
Solution Approach 1:
The patent applies segmentation by dividing the fact table into multiple partition levels (first level partitioning by PI, second level by PPI). This hierarchical segmentation allows queries to access only relevant partitions at each level, improving data access precision while managing complexity through structured organization rather than exhaustive fine-grained partitioning.
Solution Approach 2:
The patent implements local quality by creating different partitioning strategies for different query patterns. The system identifies frequently accessed columns and applies partitioning selectively based on local access patterns rather than uniformly across all data, optimizing for specific query workloads while controlling overall system complexity.
2Productivity
If multi-level partitioning is implemented, then query performance is improved, but the number of partitions increases and becomes difficult to manage
Solution Approach 1:
The patent applies dynamics by making the partitioning structure adaptive to query workloads. The system dynamically determines the optimal number and configuration of partitions based on analyzed query patterns, allowing the partitioning scheme to adjust to different workload characteristics rather than using a fixed static structure.
Solution Approach 2:
The patent implements parameter changes by adjusting partitioning parameters (number of partitions, partition columns, partition granularity) based on workload analysis. The system modifies these parameters to optimize query performance while constraining the total number of partitions to manageable levels through iterative refinement.
3Productivity
If partitioning is applied to reduce I/O, then data retrieval efficiency is improved, but selecting optimal partition columns becomes challenging
Solution Approach 1:
The patent applies preliminary action by analyzing query workloads before finalizing the partitioning scheme. The system pre-processes query patterns to identify frequently accessed columns and optimal partitioning strategies, allowing data to be organized in advance according to predicted access patterns rather than trial-and-error approaches.
Solution Approach 2:
The patent implements feedback by using query performance metrics to iteratively refine the partitioning scheme. The system monitors actual query performance against the partitioned structure and adjusts partition column selections based on measured effectiveness, creating a closed-loop optimization process.
Data Source
AI summary
Inputs are received. The inputs are a star schema data model comprising a non-partitioned fact table (F) comprising fields (f1, f2, . . . fn); a set of queries (Q=q1, q2, . . . qm); and a set of weights for each query in Q. Each weight defines the priority of a respective query in a workload. The inputs are pre-processed to produce a most-granular-partitioning. The most-granular-partitioning is processed to produce an initial multi-level partitioned primary index, the processing including determining the scan cost of one of the queries in Q. The initial multi-level partitioned primary index is processed to produce a final multi-level partitioned primary index, the processing including determining the query cost of one of the queries in Q. F is partitioned using the final multi-level partitioned primary index. A query from Q is run against F to produce a result. The result is stored.


