栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Doris-03-常用脚本

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Doris-03-常用脚本

Doris-常用脚本

目录
  • Doris-常用脚本
  • 前言
    • 1.建表模板
    • 2.调度脚本设置
      • 3.行转列
      • 4.加载HDFS数据
      • 查看任务进度
      • 5.获取数据字典并导出Excel
  • 总结

前言

这里是记录经常使用的一些脚本


1.建表模板
--*******************************************************************
-- 业务主题: 
-- 创  建  人: 
-- 创建日期: 2022-04-22
-- 脚本用途: 
-- 执行引擎: doris
-- 执行周期: 天
-- 目  标  表: dws.
-- 变更记录:
-- 变更日期          变更人           变更描述

--*******************************************************************


	CREATE TABLE dbname.tablename(
	 ts                                       date                        comment      '{"type"="0","comment"="分区字段"}'
	,pick_code                            varchar(50)                 comment      '{"type"="0","comment"="xxid"}'
 
	PARTITION p20220429 VALUES [('2022-04-29'), ('2022-04-30')))
	DISTRIBUTED BY HASH(`pick_store_code`) BUCKETS 2 
	PROPERTIES (
	"replication_num" = "3",	
	"dynamic_partition.enable" = "true",
	"dynamic_partition.time_unit" = "DAY",
	"dynamic_partition.time_zone" = "UTC",
	"dynamic_partition.start" = "-2147483648",
	"dynamic_partition.end" = "3",
	"dynamic_partition.prefix" = "p",
	"dynamic_partition.buckets" = "2",
	"in_memory" = "false",
	"storage_format" = "DEFAULT"
	);
2.调度脚本设置
set time_zone='Asia/Shanghai';
set query_timeout=1000;
SET exec_mem_limit=20000000000;
3.行转列
,group_concat(if(status=10,operate_time ,'') ,'')  as  wait_pay_time
,group_concat(if(status=20,operate_time,'')  ,'')  as  paying_time
,group_concat(if(status=30,operate_time,'')  ,'')  as  failed_pay_time
,group_concat(if(status=40,operate_time,'')  ,'')  as  success_pay_time
4.加载HDFS数据
LOAD LABEL 任务名称
(
DATA INFILE("hdfs://文件路径/ts=2022-05-23/*")
INTO TABLE 表名
format as "orc"
(
 `field1`,`field2`,`field3`
 )
COLUMNS FROM PATH AS (`ts`)
SET(ts=ts)
)
WITH BROKER hdfs_broker
(
"hadoop.security.authentication" = "kerberos",
"kerberos_principal" = "",
"kerberos_keytab" = "",
"dfs.nameservices" = "",
"dfs.ha.namenodes.cnprod1ha" = "nn1,nn2",
"dfs.namenode.rpc-address.cnprod1ha.nn1" = "",
"dfs.namenode.rpc-address.cnprod1ha.nn2" = "",
"dfs.client.failover.proxy.provider.cnprod1ha" = "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
)
PROPERTIES
(
"timezone" = "UTC"
)
查看任务进度
show load where label='任务名称'
5.获取数据字典并导出Excel

MAVEN配制

 
       
       
           mysql
           mysql-connector-java
           5.1.49
       

       
           org.springframework.boot
           spring-boot-starter-jdbc
       

       
           org.springframework.boot
           spring-boot-starter
       

       
           org.springframework.boot
           spring-boot-starter-test
           test
           
               
                   org.junit.vintage
                   junit-vintage-engine
               
           
       
       
           org.springframework.boot
           spring-boot-starter-jdbc
       

       
           com.alibaba
           easyexcel
           3.1.0
       
   

MAIN

package com.example.ds.controller;

import com.alibaba.excel.EasyExcel;
import com.example.ds.bean.DSBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@Component
public class DSCtroller implements CommandLineRunner {
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Override
    public void run(String... args) throws Exception {

        ArrayList dsBeans = new ArrayList<>();
        List> maps = jdbcTemplate.queryForList("select * from information_schema.`COLUMNS`  ");
        String flag = "";
        dsBeans.add(new DSBean("数据库名","表名", "字段名",
                "字段类型", "注释"));
        for (Map map : maps) {
            String TABLE_SCHEMA = map.get("TABLE_SCHEMA").toString();
            String table_name = map.get("table_name").toString();
            String column_name = map.get("column_name").toString();
            String data_type = map.get("data_type").toString();
            String COLUMN_COMMENT = map.get("COLUMN_COMMENT").toString();
            if (flag == TABLE_SCHEMA || flag.equals(TABLE_SCHEMA)){
                dsBeans.add(new DSBean("",table_name, column_name, data_type, COLUMN_COMMENT));
            }else{
                flag = TABLE_SCHEMA;
                dsBeans.add(new DSBean(TABLE_SCHEMA,"", "",
                        "", ""));
                flag = TABLE_SCHEMA;
                dsBeans.add(new DSBean("",table_name, column_name, data_type, COLUMN_COMMENT));
            }
        }
        exportExcel(dsBeans);
        System.out.println("==============  导出成功  =============");
    }

    public  void exportExcel( ArrayList dsBeans ) {
        try{

            String fileName = "C:\Users\Tian\Desktop\数据字典" + System.currentTimeMillis() + ".xlsx";
            // 这里 需要指定写用哪个class去读,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
            // 如果这里想使用03 则 传入excelType参数即可
            EasyExcel.write(fileName).sheet("数据字典").doWrite(dsBeans);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}


BEAN

public class DSBean {
    @ExcelProperty(value = "表名称")
    private String tableName;
    @ExcelProperty(value = "库名称")
    private String tableSchema;
    @ExcelProperty(value = "字段名称")
    private String columnName;
    @ExcelProperty(value = "字段类型")
    private String dataType;
    @ExcelProperty(value = "注释")
    private String ColumnComment;
   

application.yml配制

spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
总结
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1005792.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号