Metabase BI 分析实践

随着企业数据量的不断增长,传统的数据处理和分析方法已经无法满足快速决策和实时分析的需求。 企业需要一个能够快速响应、易于管理、并且成本效益高的BI系统来提升数据的可访问性和可用性。 同时,随着数据驱动文化的推广,非技术背景的用户对于数据分析工具的易用性有着更高的期待。

Metabase (opens in a new tab) 是一款开源的BI工具,它允许用户不编程即可从各种数据源查询数据,并且可以创建和分享图表、仪表板等视觉化的分析结果。 Metabase 的特点是易于安装和使用,界面友好,支持自定义查询和生成报告,适用于团队数据的共享和决策支持。

在这种需求背景下,通过自行部署metabase,配合 ProtonBase 提供的服务能力,可以为企业提供一个灵活、可扩展且成本效益高的数据分析平台。

系统架构

准备工作

  1. 开通 ProtonBase 服务,详情参考 ProtonBase 10 分钟快速入门
  2. 联系内部运维,申请数据源访问权限,并打通网络连接;
  3. 购买一台ubuntu云服务器,用于部署metabase,具体可参考各云厂商操作文档或请求内部运维分配机器;

系统搭建步骤

    1. 配置数据同步任务;
    1. 登陆ubuntu服务器,搭建metabase;
    1. 登陆metabase界面,配置分析面板;

部署metabase

wget --quiet -O- 'https://sas-sz.oss-cn-shenzhen.aliyuncs.com/metabase/install-metabase-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.sh' |bash

访问http://ECS_公网IP:3000/,看到以下界面的时候,系统初始化完成。

初始化metabase

  1. 初次安装后,点击Start开始配置metabase;
  2. 选择界面语言 ,然后点击下一步;
  3. 初始化metabase管理员信息,然后点击下一步;
  4. 配置 ProtonBase 连接信息,然后点击下一步;
    1. 选择 PostgreSQL类型,填写相关连接信息
  5. 配置数据隐私偏好,点击结束进入metabase界面;

进行BI分析配置

数据集描述

  1. 以下配置基于一个虚拟的订单数据集,初始化请以下步骤二选一执行

配置Progress Bar

  1. 配置BI查询
  2. 可视化选择"进度条类型"
  3. 配置目标数值

配置折线图

  1. 配置BI查询
  2. 可视化选择"折线图"
  3. 配置显示细节

通过SQL配置分析概览

  1. 执行查询
 
WITH T AS (
    SELECT extract(year from orderdate) as "order_year"
    ,SUM(sales) as "sum_sales"
    FROM dw_orders
    GROUP BY 1
),
YoY AS (
    SELECT
    order_year,
    sum_sales,
    LAG(sum_sales, 1) OVER(ORDER BY order_year) AS last_sum_sales,
    (sum_sales / LAG(sum_sales, 1) OVER(ORDER BY order_year) - 1)  "YoY%"
    FROM T
    ORDER BY order_year
)
SELECT * FROM YoY
ORDER BY order_year
 

  1. 为销售额配置柱状图

  2. 为YoY配置折线图

最佳实践

性能优化

  1. 索引优化
    • 为经常用于查询过滤的字段创建索引
    • 为外键字段创建索引以提高连接性能
-- 为订单日期创建索引
CREATE INDEX idx_orders_date ON orders(order_date);
 
-- 为客户国家创建索引
CREATE INDEX idx_customers_country ON customers(country);
 
-- 为产品类别创建索引
CREATE INDEX idx_products_category ON products(category);
  1. 查询优化
    • 避免在大数据集上使用SELECT *
    • 使用LIMIT限制返回结果数量
    • 合理使用聚合函数

数据安全

  1. 用户权限管理
    • 为不同角色的用户创建不同的数据库用户
    • 限制用户只能访问必要的数据
-- 创建只读用户
CREATE USER metabase_reader WITH PASSWORD 'secure_password';
GRANT CONNECT ON DATABASE ecommerce TO metabase_reader;
GRANT USAGE ON SCHEMA public TO metabase_reader;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO metabase_reader;
  1. 连接安全
    • 使用SSL加密连接
    • 定期轮换数据库密码

维护和监控

  1. 定期备份

    • 设置自动备份策略
    • 定期测试备份恢复
  2. 性能监控

    • 监控慢查询
    • 定期分析查询执行计划

References

更多图表配置,请参考官方文档 (opens in a new tab)