大数据学习——基于大数据平台的数据仓库ETL基本思路

大数据平台数据仓库ETL基本思路

 

ETL工具

大数据学习——基于大数据平台的数据仓库ETL基本思路_第1张图片

开源工具:

Sqoop:Hadoop(hive)和关系型数据库之间传输数据的开源ETL工具。

Beeline:hive客户端工具,基于SQLline的JDBC客户端

Azkaban:任务调度开源工具。

 

自开发工具:

  1. 脚本生成工具:jar包,基于系统调研时产生的表级调研文档,自动检索数据源并生成整体ETL工具中拥有较高规范的脚本文件的脚手架:ods层建表语句、sqoop脚本、sync脚本、flow脚本。必要时依据实际情况对脚本进行人工调整。
  2. 脚本执行工具:python程序,读取参数文件数据并替换脚本中的对应参数,执行脚本。
  3. SQL执行工具:python程序,读取参数文件数据并替换脚本中的对应参数,执行脚本。
  4. CTL参数生成工具:python程序,基于TDH-mysql库ctl控制表生成对应的参数文件。
  5. 互斥锁:依据azkaban中并发project的操作表情况,设计互斥锁避免并发操作同一张表的情况发生。
  6. 数据源检查:jar包,基于TDH-mysql库ctl表信息和数据源实际情况,检查数据源表结构变更情况,判断是否需人工介入,记录变更情况。
  7. 稽核工具:oracle-ods层数据抽取完整性、ods-dw层数据映射正确性稽核。人工开发脚本。

 

 

ETL开发过程

大数据平台新数据源加入,ETL开发过程:

  1. 数据调研:
    1. 对数据源系统进行调研,输出系统调研文档、表级调研文档、字段级调研文档、数据字典等调研资料
  2. 脚本脚手架生成:
    1. 确定大数据平台抽取范围(表+时间)、抽取方式(增量/全量)、抽取周期等。信息补充到表级调研文档
    2. 脚本生成工具+表级调研文档—>生成各脚本程序的脚手架。细节及特殊情况进行人工调整。包括:ods层建表语句、sqoop脚本、sync脚本、azkaban调度脚本
    3. Waterdrop下使用ods层建语句创建数据源ods层表结构:txtfile和orc表
    4. Sqoop脚本及sync脚本拷贝到指定路径,调整或检查azkaban脚本
    5. 上传azkaban脚本,检查任务逻辑
  3. 参数文件生成:
    1. 配置TDH-mysql的ctl库相关表信息
    2. 执行CTL参数生成工具生成对应数据源的参数文件
  4. 数据初始化:
    1. 调整参数文件,使数据同步范围为全部时间(全量)
    2. 执行azkaban任务,初始化数据到ods层
  5. DW层脚本开发:
    1. DW层表结构设计、关联关系设计、映射关系设计,形成dw层设计文档
    2. DW层映射mapp脚本开发,形成sql脚本文件,拷贝到执行路径
    3. DW层建表语句及TMP表建表语句存档
  6. DW层部署:
    1. 对DW层脚本进行血缘分析,生成依赖关系文档
    2. 调整azkaban脚本文件,补充DW层任务调度
    3. 按需设计互斥锁、调整相关代码补充锁机制
  7. 数据稽核:
    1. 数据源检查程序初始化
    2. 数据稽核脚本配置
    3. 启动运行(调整azkaban脚本)

你可能感兴趣的:(大数据学习——基于大数据平台的数据仓库ETL基本思路)