数据仓库搭建

这篇博客详细介绍了数据仓库的ETL流程,从数据源到ODS层的清洗、加载和转化,再到基础层、主题层和应用层的构建。重点讲解了一个用于贷款宽表存储过程的示例,涉及多个数据表的联接和聚合操作,以生成贷款余额等关键指标。该过程展示了数据库管理和数据处理的实践应用。
摘要由CSDN通过智能技术生成

数据源到ODS层:完成统一标准化,etl操作即清洗、加载、转化

ODS层到基础层:按照业务逻辑完成宽表的数据导入

宽表的定义:不按照三范式建表

基础层到主题层:根据主题划分来提取数据,大部分是通过where语句筛选符合要求的数据

主题层到应用层:通过主题层的数据得出结论,形成报表等实体化表格得出分析

基础层和主题层用过存储过程

create or replace procedure sp_f_ln_lnp
is
  /*****************************************************************************
     程序名称:sp_f_ln_lnp
     功能描述:贷款宽表存储过程
     输入参数:
     输出参数:
     返 回 值:
     目 标 表:f_ln_loan_info
     源    表:o_hx_xiangmu.o_ln_lnp_acct_amwkpl06
               o_hx_xiangmu.o_ln_lnp_acct_amwkpl07
               o_hx_xiangmu.o_ln_lnp_ctrt_cbapp
               o_hx_xiangmu.o_ln_lnp_cust_cbcredcust
     创 建 人:
     创建日期:20220512
     修改日期:
     修改人员:
     修改原因:
  ******************************************************************************/
/*存储过程变量定义*/
project_name varchar2(50);
start_date date;
end_date date;
sql_code varchar2(100);
sql_errm varchar2(500);
status varchar2(50);
/* 程序开始执行*/
begin
/*存储过程变量赋值*/
project_name :='sp_f_ln_lnp';
start_date :=sysdate;
--删除目标表数据
execute immediate 'truncate table jc_hx.f_ln_loan_info';

--插入数据
insert into f_ln_loan_info(
      loanacno
    , ecif_cust_no
    , custname
    --, mrg_sts
    , currsign
    , loankind
    , loantype
    , firstorder
    , payperc
    , fundsour
    , loanuse
    , assukind
    , contdate
    , sum_tran_amt
    , sum_pay_amt
    , ln_balance
    , credamt
    , assuamt
    , impaamt
    , mortamt
    , credtotalamt
    , credcapi
    , cycflag
    , tcapi
    , thistcapi
    , termfreq
    , tterm
    , retutype
    , trothdueday
    , fixrateterm
    , firstduedate
    , subsflag
    , isenousubs
    , firstpayamt
    , firstpayperc
    , releway
    , payeeacno
    , payeeacname
    , payeebankname
    , intecalckind
    , intemeth
    , intebase
    , aheaddays
    , basicinterate
    , interate
    , intefineratefloat
    , capifineratefloat
    , finerate
    , capifinerate
    , foulrate
    , emberatefloat
    , begindate
    , enddate
    , apprname
    , apprtabno
    , apprdate
    , apprflag
    , apprstate
    , loanstate
)select
  loanacno
    , ecif_cust_no
    , custname
    --, mrg_sts
    , currsign
    , loankind
    , loantype
    , firstorder
    , payperc
    , fundsour
    , loanuse
    , assukind
    , contdate
    , sum_tran_amt --放款总金额 o_ln_lnp_acct_amwkpl06 SUM(TR_TRAN_AMT)
    , sum_pay_amt  --还款总金额 o_ln_lnp_acct_amwkpl07 SUM(PRIN_PAY_AMT+INT_PAY_AMT)
    ,(o_hx_xiangmu.o_ln_lnp_ctrt_cbapp.tcapi-fk.sum_tran_amt) ln_balance   --贷款余额
    , credamt
    , assuamt
    , impaamt
    , mortamt
    , credtotalamt
    , credcapi
    , cycflag
    , tcapi
    , thistcapi
    , termfreq
    , tterm
    , retutype
    , trothdueday
    , fixrateterm
    , firstduedate
    , subsflag
    , isenousubs
    , firstpayamt
    , firstpayperc
    , releway
    , payeeacno
    , payeeacname
    , payeebankname
    , intecalckind
    , intemeth
    , intebase
    , aheaddays
    , basicinterate
    , interate
    , intefineratefloat
    , capifineratefloat
    , finerate
    , capifinerate
    , foulrate
    , emberatefloat
    , begindate
    , enddate
    , apprname
    , apprtabno
    , apprdate
    , apprflag
    , apprstate
    , loanstate from o_hx_xiangmu.o_ln_lnp_ctrt_cbapp left join (select acustcredid,credamt,assuamt,impaamt,mortamt,credtotalamt from o_hx_xiangmu.o_ln_lnp_cust_cbcredcust) ed
    on o_ln_lnp_ctrt_cbapp.payeeacno =ed.acustcredid  left join (select sum(PRIN_PAY_AMT+INT_PAY_AMT) sum_pay_amt,rt_acct_num from o_hx_xiangmu.o_ln_lnp_acct_amwkpl07 group by rt_acct_num) hk
    on o_ln_lnp_ctrt_cbapp.loanid=hk.rt_acct_num      left join (select sum(TR_TRAN_AMT) sum_tran_amt,mi_pay_acct_1 from o_hx_xiangmu.O_LN_LNP_ACCT_AMWKPL06 group by mi_pay_acct_1) fk
    on o_ln_lnp_ctrt_cbapp.payeeacno=fk.mi_pay_acct_1;

    
/*程序正常结束返回值*/
end_date :=sysdate;
    status :='成功';
    insert into hx_log values(project_name,start_date,end_date,'','',status);
    commit;
/* 异常处理 */
exception
  when others then
    end_date := sysdate;
    status := '失败';
    sql_code := sqlcode;
    sql_errm := sqlerrm;
    write_log(project_name,start_date,end_date,sqlcode,sqlerrm,status);
end;

搭建Hive数据仓库可以按照以下步骤进行操作: 1. 下载Hive安装包并解压缩。根据引用\[1\]中提到的步骤,可以下载Hive安装包并解压缩到指定目录。 2. 修改Hive的配置文件。根据引用\[1\]中提到的步骤,可以修改Hive的配置文件,包括设置Hive的元数据库、配置Hive的存储路径等。 3. 初始化Hive的元数据库。根据引用\[1\]中提到的步骤,可以初始化Hive的元数据库,以便Hive能够正常运行。 4. 修改环境变量。根据引用\[1\]中提到的步骤,可以修改环境变量,将Hive的可执行文件路径添加到系统的PATH变量中。 5. 验证安装。根据引用\[1\]中提到的步骤,可以验证Hive的安装是否成功,例如运行Hive的CLI界面,执行一些简单的查询语句等。 总结来说,搭建Hive数据仓库的过程包括下载安装包、修改配置文件、初始化元数据库、修改环境变量和验证安装。具体的步骤可以参考引用\[1\]中提到的详细说明。同时,根据引用\[2\]中的介绍,Hive是建立在Hadoop上的数据仓库基础构架,可以用于存储、查询和分析存储在Hadoop中的大规模数据。 #### 引用[.reference_title] - *1* *3* [hive数据仓库搭建](https://blog.csdn.net/qq_52584391/article/details/128534351)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [05、hive数据仓库介绍及搭建](https://blog.csdn.net/m0_44950952/article/details/125443822)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值