大数据系列课程66讲 Cube Build实战 https://edu.hellobi.com/course/136/play/lesson/2978 笔记
1. 交易模型
最简单的星型模型(一个事实表,3个维度表)
- 交易事实表,通常包括交易详细信息,例如,哪个客户(客户号,账号,子账号,哪个支行开的账户)什么时候(交易时间)在哪里(哪个行)交易(转账、消费、还款等)了多少钱(金额,即事实)
- 账户维度表,描述了账户的详细信息,一个独立客户(一个自然人)可以凭借身份证或护照在一个银行开启1个或N个账号,又可以在这个账号下开出1个或M个子账号(例如银行卡号),因此,在账户维中,由(客户号,账号,子账号)唯一的确定一个子账号发生的交易
- 机构维度表,由机构编码作为唯一标识,机构维描述了该银行的各个总行、分行和支行的信息,且三者之间存在从属关系,包括机构编码,机构名称,清算机构。。。等等与银行机构相关的信息,
- 日期维度,是一个通用维度,通常包括具体日期、年、月、日、季度、日期代理建等,如有需要可以包括时、分,在这个例子中,由一个‘年-月-日’唯一标识一个日期
这个交易模型如下图所示:
2. 建表语句
4个表的建表语句如下:
create database if not exists trans;
use trans;
CREATE EXTERNAL TABLE trans_fact(
channel_no string,
cust_no string,
acct_flag string,
t_bran_code string,
a_bran_code string,
acct_no string,
acct_seqno string,
trans_attr string,
dc_flag string,
sub_code string,
trans_amt double,
set_date string,
trans_time string)
row format delimited fields terminated by ',';
CREATE TABLE acct_dim(
cust_no string,
acct_no string,
acct_seqno string,
acct_flag string,
a_bran_code string)
row format delimited fields terminated by ',';
CREATE EXTERNAL TABLE date_dim(
date_key int,
bd_year int,
bd_quarter int,
bd_month int,
bd_day int,
bd_date date,
load_ts timestamp)
row format delimited fields terminated by ',';
CREATE EXTERNAL TABLE branch_dim(
bran_code string,
bran_name string,
bran_type string,
bran_level string,
bran_mgn_level string,
adm_bran_code string,
bran_status string,
load_ts timestamp)
row format delimited fields terminated by ',';