flink数据仓库之考试模型

操作数据存储层(ODS)

CREATE TABLE ods_exam_record (  
    id BIGINT PRIMARY KEY,  
    student_id BIGINT,  
    teacher_id BIGINT,  
    exam_time TIMESTAMP,  
    score INT,  
    ... -- 其他字段  
) WITH (  
    'connector' = '...', -- 根据你的数据源选择合适的连接器,如 Kafka, JDBC... -- 其他配置参数  
);

维度模型层(DIM)

CREATE TABLE dim_student (  
    student_id BIGINT PRIMARY KEY,  
    name STRING,  
    gender STRING,  
    age INT,  
    class_id BIGINT, -- 班级ID,可能还需要与 dim_class 表关联  
    ... -- 其他字段  
) WITH (  
    ... -- 存储配置,如 HDFS, HBase 等  
);  
  
CREATE TABLE dim_teacher (  
    teacher_id BIGINT PRIMARY KEY,  
    name STRING,  
    subject STRING,  
    ... -- 其他字段  
) WITH (  
    ... -- 存储配置  
);

数据仓库明细层(DWD)

CREATE TABLE dwd_exam_detail AS  
SELECT  
    e.id,  
    e.student_id,  
    s.name AS student_name, -- 与 dim_student 表关联获取学生姓名  
    e.teacher_id,  
    t.name AS teacher_name, -- 与 dim_teacher 表关联获取教师姓名  
    e.exam_time,  
    e.score,  
    ... -- 其他需要的字段  
FROM  
    ods_exam_record e  
LEFT JOIN  
    dim_student s ON e.student_id = s.student_id  
LEFT JOIN  
    dim_teacher t ON e.teacher_id = t.teacher_id;

应用数据服务层(ADS)

CREATE TABLE ads_exam_summary AS  
SELECT  
    s.name AS student_name,  
    AVG(d.score) AS avg_score,  
    MAX(d.score) AS max_score,  
    MIN(d.score) AS min_score  
FROM  
    dwd_exam_detail d  
JOIN  
    dim_student s ON d.student_id = s.student_id  
GROUP BY  
    s.name;
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独狐游清湖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值