暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

实时离线数仓实战No.9 | Doris中搭建离线数仓ODS层 →

大数据技能圈 2024-06-03
239

实时离线数仓实战V2是在实时离线数仓实战V1的基础上进行扩展的系列文章。相比V1,V2主要的内容包括数据库表的调整、增加数仓建模的内容扩展、数仓性能调优等内容。

组件安装详细文档请访问:建议收藏 | 《实时/离线数仓实战》配套组件安装文档 →

访问github及gitee获取代码及相关jar包:

https://github.com/Mrkuhuo/data-warehouse-learning

https://gitee.com/wzylzjtn/data-warehouse-learning

1. 业务数据库模拟数据生成

实时离线数仓实战No.5 | 业务数据生成实战及数据模型梳理 →

2. ods层数据库创建

ODS层为原始数据层,设计的基本原则有以下几点。

• 要求保持数据原貌不做任何修改,表结构的设计依托于从业务系统同步过来的数据结构,ODS层起到备份数据的作用。

• 创建分区表,可以避免后续在对表进行查询时进行全表扫描操作。

• 在进行ODS层数据的导入之前,先要创建数据库,用于存储整个电商数据仓库项目的所有数据信息。

• 表的命名规范为:ods_表名_分区增量/全量(inc/full)标识。

最终创建完的表如下所示:

3. SeaTunnel同步MySQL数据到Doris

1)dolphinscheduler 中 创建项目 ods_hourly 用来每个小时调用一次同步任务

2)dolphinscheduler 配置 Seatunnel任务

样例代码:

    env {  execution.parallelism = 2  job.mode = "BATCH"  checkpoint.interval = 10000}source {  Jdbc {    result_table_name = "mysql_seatunnel"    url = "${mysql_url}"    driver = "${mysql_driver}"    connection_check_timeout_sec = 100    user = "${mysql_user}"    password = ""    query = "select id, activity_name, activity_type, activity_desc, start_time, end_time, create_time from gmall.activity_info"  }}transform {  Sql {    source_table_name = "mysql_seatunnel"    result_table_name = "seatunnel_doris"    query = "select id, formatdatetime(create_time,'yyyy-MM-dd') as k1,  activity_name, activity_type, activity_desc, start_time, end_time, create_time from mysql_seatunnel"  }}sink {  Doris {    source_table_name = "seatunnel_doris"    fenodes = "${doris_fe}"    username = "${doris_user}"    password = ""    table.identifier = "ods.ods_activity_info_full"    sink.enable-2pc = "true"    sink.label-prefix = "test_json"    doris.config = {      format="json"      read_json_by_line="true"    }  }}

    设置全局参数

    数据正常同步至doris

    添加作者:

    文章转载自大数据技能圈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论