Kylin Cube Build 实战笔记

浏览: 2986

大数据系列课程66讲 Cube Build实战 https://edu.hellobi.com/course/136/play/lesson/2978 笔记

1. 交易模型

最简单的星型模型(一个事实表,3个维度表)

  • 交易事实表,通常包括交易详细信息,例如,哪个客户(客户号,账号,子账号,哪个支行开的账户)什么时候(交易时间)在哪里(哪个行)交易(转账、消费、还款等)了多少钱(金额,即事实)
  • 账户维度表,描述了账户的详细信息,一个独立客户(一个自然人)可以凭借身份证或护照在一个银行开启1个或N个账号,又可以在这个账号下开出1个或M个子账号(例如银行卡号),因此,在账户维中,由(客户号,账号,子账号)唯一的确定一个子账号发生的交易
  • 机构维度表,由机构编码作为唯一标识,机构维描述了该银行的各个总行、分行和支行的信息,且三者之间存在从属关系,包括机构编码,机构名称,清算机构。。。等等与银行机构相关的信息,
  • 日期维度,是一个通用维度,通常包括具体日期、年、月、日、季度、日期代理建等,如有需要可以包括时、分,在这个例子中,由一个‘年-月-日’唯一标识一个日期

这个交易模型如下图所示:

image.png


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 ',';
推荐 3
本文由 MarsJ 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

4 个评论

数据从哪来?
数据展现给用户的时候,用啥展现的?
前端Web页面的展示,用户通过某种拖拽或SQL方式查询,数据以表格或图形方式体现,这属于数据可视化范畴。另外,在Kylin中有定义好的前端展示方式,但不一定是你需要的。
这个例子设计项目保密协议,数据不能放。所以可以根据建表语句写shell或Python脚本创建一些数据

要回复文章请先登录注册