• Doris---hive导入Doris数据流程


    -- 1、Doris建表

    use dim;
    CREATE TABLE IF NOT EXISTS `dim_tab_name` (
      `inc_day`                date NULL COMMENT "日期(分区)"
     ,`dept_code`              varchar(100) NULL COMMENT "网点代码"
     ,`dept_name`              varchar(100) NULL COMMENT "网点名称"
     ,.............
     ,`valid_dt`               varchar(100) NULL COMMENT "生效日期"
     ,`invalid_tm`             varchar(100) NULL COMMENT "失效日期"
    ) ENGINE=OLAP
    DUPLICATE KEY(`inc_day`, `dept_code`)
    COMMENT "...的维表(历史快照)"
    PARTITION BY RANGE(`inc_day`)(
        START ("20210801") END ("20211011") EVERY (INTERVAL 1 day)
    )
    DISTRIBUTED BY HASH(`dept_code`) BUCKETS 32 
    PROPERTIES(
        "storage_medium" = "SSD",
        "dynamic_partition.enable" = "true",
        "dynamic_partition.time_unit" = "DAY",
        "dynamic_partition.end" = "1",
        "dynamic_partition.prefix" = "p",
        "dynamic_partition.buckets" = "32"
    );
    二、brokerload批量导数
    -- 查看brokerload批量导数任务的日志
    use dim;SHOW LOAD WHERE LABEL = 'doris_dim_tab_name'


    --执行brokerload批量导数
    load label dim.doris_dim_tab_name
    (
        --tez的文件目录不匹配,问题,导致数据导入不成功
        data infile("hdfs://ip:port/hive/warehouse/dim/dim_tab_name/inc_day=2021[08|09|10]*/*")
        INTO TABLE `dim_tab_name`
        FORMAT AS "parquet" 
        -- 这里的顺序需要和hive中保持一致
        (
         dept_code,dept_name,.......,valid_dt,invalid_tm
         )
        COLUMNS FROM PATH AS (inc_day) --从hdfs路径中获取分区的字段值
        set (
            --建议字段映射
             inc_day=inc_day
            ,dept_code=dept_code
            ,dept_name=dept_name
               ..................
            ,valid_dt=valid_dt
            ,invalid_tm=invalid_tm
        )

    -- 通过SHOW BROKER 查看目前集群的Broker名称
    WITH BROKER hdfs_broker 
    PROPERTIES
    (
    "max_filter_ratio" = "0.01"
    );

    三、创建etl调度任务
    ----目标源,导入前准备语句:
    truncate table dim.dim_tab_name partition(p$[time(yyyyMMdd,-1d)])

    ----目标源,Stream Load参数:
    "strict_mode":"false","max_filter_ratio":"0.10","exec_mem_limit":"12884901888","timeout":"10000"

  • 相关阅读:
    修改requests_html.AsyncHTMLSessions使得支持url参数
    MyBatis查询返回Map示例代码
    java.util.ConcurrentModificationException 异常原因和解决方法
    Springboot整合RabbitMQ(四)——设置消息过期时间TTL
    MySql Lock wait timeout exceeded该如何处理? (转载)
    对开发流程优化的建议
    容器未正常启动-->docker ps看不到,docker ps -a可以看到-->执行命令时出现Container is not running
    Linux下C语言多线程编程
    curl库相关使用
    PCB走线&过孔载流分析
  • 原文地址:https://www.cnblogs.com/LIAOBO/p/15428049.html
Copyright © 2020-2023  润新知