OLAP

发布时间 2023-07-19 21:19:52作者: 黑逍逍

OLAP(Online Analytical Processing)在线分析处理。

主要用于复杂的数据分析和报表生成。与OLTP(Online Transaction Processing)处理实时交易和查询不同,OLAP处理的是对大规模数据集合进行多维度的分析,以便支持决策支持系统和数据挖掘等应用

假设我们有一个销售数据表,用于存储每天不同地区的产品销售情况:

CREATE TABLE sales (
    sale_id INT PRIMARY KEY AUTO_INCREMENT,
    date DATE,
    region VARCHAR(50),
    product VARCHAR(50),
    quantity INT,
    revenue DECIMAL(10, 2)
);

INSERT INTO sales (date, region, product, quantity, revenue) VALUES
    ('2023-07-01', 'North', 'Product A', 100, 1000.00),
    ('2023-07-01', 'North', 'Product B', 50, 500.00),
    ('2023-07-01', 'South', 'Product A', 75, 750.00),
    ('2023-07-01', 'South', 'Product B', 30, 300.00),
    ('2023-07-02', 'North', 'Product A', 120, 1200.00),
    ('2023-07-02', 'North', 'Product B', 60, 600.00),
    ('2023-07-02', 'South', 'Product A', 90, 900.00),
    ('2023-07-02', 'South', 'Product B', 40, 400.00);

  

我们想使用OLAP查询来统计每天的销售总量和总收入,并按照地区和产品进行分组

-- 创建数据立方体(Data Cube)
CREATE TABLE sales_cube AS
SELECT
    date,
    region,
    product,
    SUM(quantity) AS total_quantity,
    SUM(revenue) AS total_revenue
FROM
    sales
GROUP BY
    date, region, product;

-- 查询数据立方体
SELECT * FROM sales_cube;

  结果