zoukankan      html  css  js  c++  java
  • 百度数仓Palo-Doris并发压测性能

    硬件环境

     

     

    表结构

    CREATE TABLE IF NOT EXISTS   tj9
    (
        vin varchar (30) not null,
            inday date not null,
            type1 int not null,
            type2 int not null,
            type3 int not null,
            p1 float not null,
            p2 float not null,
            p3 float not null,
            p4 float not null,
            p5 float not null,
            p6 float not null,
            p7 float not null,
            p8 float not null,
            p9 float not null,
            p0 float not null 
            
    )
    ENGINE=olap
    DUPLICATE KEY(vin,inday)
    PARTITION BY RANGE(inday)
    (
          partition p1 values less than('2021-12-01'),
          partition p2 values less than('2022-02-01'),
          partition p3 values less than('2022-04-01'),
          partition p4 values less than('2022-06-01'),
          partition p5 values less than('2022-08-01'),
          partition p6 values less than('2022-10-01'),
          partition p7 values less than('2022-12-01'),
          partition p8 values less than('2023-02-01'),
          partition p9 values less than('2023-04-01'),
          partition p10 values less than('2023-06-01'),
          partition p11 values less than('2023-08-01'),
          partition p12 values less than('2023-10-01'),
          partition p13 values less than('2023-12-01'),
          partition p14 values less than('2024-02-01'),
          partition p15 values less than('2024-04-01'),
          partition p16 values less than('2024-06-01'),
          partition p17 values less than('2024-08-01'),
          partition p18 values less than('2024-10-01'),
          partition p19 values less than('2024-12-01'),
            partition p20 values less than('2025-02-01'),
          partition p21 values less than('2025-04-01'),
          partition p22 values less than('2025-06-01'),
          partition p23 values less than('2025-08-01'),
          partition p24 values less than('2025-10-01'),
          partition p25 values less than('2025-12-01')
    )
    DISTRIBUTED BY HASH(vin) BUCKETS 50
    PROPERTIES
    (
     "replication_num" = "3"
    );

    数据内容

    数据量

    客户端压测程序

    package org.doris;
    
    import java.sql.*;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    import java.util.Random;
    
    public class Yace2 {
    
        public static void main(String[] args) throws Exception {
    
            for (int i = 0; i < 50; i++) {
    
                Thread t1 = new Thread(new Com());
    
                t1.start();
            }
    
        }
    
    
        public static class Com implements Runnable {
    
            Connection con = null;
            ResultSet rs = null;
            PreparedStatement ps = null;
            String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
            String CONNECTION_URL = "jdbc:mysql://192.168.154.107:9030/test?rewriteBatchedStatements=true";
            String driverClassName = "com.mysql.cj.jdbc.Driver";    //启动驱动
            String url = "jdbc:mysql://192.168.154.107:9030/test";    //设置连接路径
            String username = "root";
    
            public Com() {
                try {
    //            com.cloudera.impala.jdbc41.Driver v = null;
                    Class.forName(driverClassName);
                    con = DriverManager.getConnection(url, "root", null);
    
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
    
            @Override
            public void run() {
    
    
                while (true) {
                    try {
                        Random rand = new Random();
    
                        int entry_time_start = rand.nextInt(700) + 1;
    
                        int entry_time_end = entry_time_start + 30;
    
    //                String sql = "select a.tid,count(*),sum(std_mileage),avg(diff_mileage),avg(gps_mileage),avg(meter_mileage),avg(ecu_mileage),avg(total_fuel_cons),avg(diff_fuel_cons) ,avg(std_fuel_cons) from kudu_via_city_pdi3 as a where entry_time between "+entry_time_start+" and "+entry_time_end+" and exists (select null from car2 as b where a.tid=b.tid) group by a.tid order by sum(std_mileage) asc limit 1 offset 0";
    
    
                        /*java.util.Date date = new Date();
                        Calendar calendar = new GregorianCalendar();
                        calendar.setTime(date);
                        calendar.add(calendar.DATE, i); //把日期往后增加一天,整数  往后推,负数往前移动
                        date = calendar.getTime(); //这个时间就是日期往后推一天的结果*/
                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    
    
                        Date dstart = sdf.parse("2021-11-05");
    
                        Calendar calendar = new GregorianCalendar();
                        calendar.setTime(dstart);
                        calendar.add(calendar.DATE, rand.nextInt(1000)); //把日期往后增加一天,整数  往后推,负数往前移动
                        dstart = calendar.getTime(); //这个时间就是日期往后推一天的结果
    
                        calendar = new GregorianCalendar();
                        calendar.setTime(dstart);
                        calendar.add(calendar.DATE, 30);
    
                        Date dend = calendar.getTime();
    
                        String sstart = sdf.format(dstart);
                        String send = sdf.format(dend);
    
                        String sql = "select count(*),sum(p3),sum(p1),vin from tj9 where inday between '"+sstart+"' and '"+send+"' group by vin order by sum(p1) desc limit 1";
    
    
                        java.util.Date d1 = new java.util.Date();
                        ps = con.prepareStatement(sql);
                        rs = ps.executeQuery();
                        while (rs.next()) {
                            System.out.println(Thread.currentThread() + "===>" + d1 + "-----" + new java.util.Date() + "----" + rs.getString(2));
    
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    } finally {
                        try {
                            rs.close();
                            ps.close();
    
                        } catch (SQLException e) {
                            e.printStackTrace();
                        }
                    }
    
                }
    
            }
        }
    
    }

    响应时间

    Thread[Thread-26,5,main]===>Sat Nov 06 12:08:21 CST 2021-----Sat Nov 06 12:08:26 CST 2021----28.022251464426517
    Thread[Thread-38,5,main]===>Sat Nov 06 12:08:20 CST 2021-----Sat Nov 06 12:08:26 CST 2021----33.72479600459337
    Thread[Thread-45,5,main]===>Sat Nov 06 12:08:20 CST 2021-----Sat Nov 06 12:08:26 CST 2021----34.93087751418352
    Thread[Thread-39,5,main]===>Sat Nov 06 12:08:20 CST 2021-----Sat Nov 06 12:08:26 CST 2021----30.66674555838108
    Thread[Thread-6,5,main]===>Sat Nov 06 12:08:22 CST 2021-----Sat Nov 06 12:08:26 CST 2021----34.45231296867132
    Thread[Thread-36,5,main]===>Sat Nov 06 12:08:21 CST 2021-----Sat Nov 06 12:08:26 CST 2021----27.272395104169846
    Thread[Thread-35,5,main]===>Sat Nov 06 12:08:20 CST 2021-----Sat Nov 06 12:08:27 CST 2021----30.620394926518202
    Thread[Thread-31,5,main]===>Sat Nov 06 12:08:23 CST 2021-----Sat Nov 06 12:08:27 CST 2021----35.72697024047375
    Thread[Thread-30,5,main]===>Sat Nov 06 12:08:21 CST 2021-----Sat Nov 06 12:08:27 CST 2021----23.390043392777443
    Thread[Thread-10,5,main]===>Sat Nov 06 12:08:21 CST 2021-----Sat Nov 06 12:08:27 CST 2021----24.27678807079792
    Thread[Thread-20,5,main]===>Sat Nov 06 12:08:21 CST 2021-----Sat Nov 06 12:08:27 CST 2021----29.040063969790936
    Thread[Thread-48,5,main]===>Sat Nov 06 12:08:22 CST 2021-----Sat Nov 06 12:08:27 CST 2021----33.46218280121684
    Thread[Thread-37,5,main]===>Sat Nov 06 12:08:21 CST 2021-----Sat Nov 06 12:08:27 CST 2021----31.903710812330246
    Thread[Thread-42,5,main]===>Sat Nov 06 12:08:21 CST 2021-----Sat Nov 06 12:08:27 CST 2021----27.873187253251672
    Thread[Thread-18,5,main]===>Sat Nov 06 12:08:23 CST 2021-----Sat Nov 06 12:08:27 CST 2021----31.810679212212563
    Thread[Thread-21,5,main]===>Sat Nov 06 12:08:23 CST 2021-----Sat Nov 06 12:08:27 CST 2021----33.88313761353493
    Thread[Thread-2,5,main]===>Sat Nov 06 12:08:21 CST 2021-----Sat Nov 06 12:08:27 CST 2021----26.80970578826964
    Thread[Thread-3,5,main]===>Sat Nov 06 12:08:23 CST 2021-----Sat Nov 06 12:08:27 CST 2021----31.7162510342896
    Thread[Thread-7,5,main]===>Sat Nov 06 12:08:21 CST 2021-----Sat Nov 06 12:08:27 CST 2021----30.19490994521766
    Thread[Thread-9,5,main]===>Sat Nov 06 12:08:22 CST 2021-----Sat Nov 06 12:08:27 CST 2021----27.030669568106532
    Thread[Thread-43,5,main]===>Sat Nov 06 12:08:23 CST 2021-----Sat Nov 06 12:08:27 CST 2021----34.46626507490873
    Thread[Thread-40,5,main]===>Sat Nov 06 12:08:22 CST 2021-----Sat Nov 06 12:08:27 CST 2021----27.155178541317582
    Thread[Thread-47,5,main]===>Sat Nov 06 12:08:23 CST 2021-----Sat Nov 06 12:08:27 CST 2021----33.44230469316244
    Thread[Thread-11,5,main]===>Sat Nov 06 12:08:23 CST 2021-----Sat Nov 06 12:08:28 CST 2021----30.59896296542138
    Thread[Thread-32,5,main]===>Sat Nov 06 12:08:22 CST 2021-----Sat Nov 06 12:08:28 CST 2021----30.65741043537855
    Thread[Thread-41,5,main]===>Sat Nov 06 12:08:22 CST 2021-----Sat Nov 06 12:08:28 CST 2021----32.03111154586077
    Thread[Thread-23,5,main]===>Sat Nov 06 12:08:22 CST 2021-----Sat Nov 06 12:08:28 CST 2021----28.389698467217386
    Thread[Thread-25,5,main]===>Sat Nov 06 12:08:22 CST 2021-----Sat Nov 06 12:08:28 CST 2021----28.751262992620468
    Thread[Thread-12,5,main]===>Sat Nov 06 12:08:23 CST 2021-----Sat Nov 06 12:08:28 CST 2021----30.460573315620422
    Thread[Thread-15,5,main]===>Sat Nov 06 12:08:25 CST 2021-----Sat Nov 06 12:08:28 CST 2021----27.92404123954475
    Thread[Thread-34,5,main]===>Sat Nov 06 12:08:23 CST 2021-----Sat Nov 06 12:08:28 CST 2021----33.9197644777596
    Thread[Thread-0,5,main]===>Sat Nov 06 12:08:24 CST 2021-----Sat Nov 06 12:08:28 CST 2021----29.629240840673447
    Thread[Thread-46,5,main]===>Sat Nov 06 12:08:23 CST 2021-----Sat Nov 06 12:08:28 CST 2021----36.7463488727808
    Thread[Thread-5,5,main]===>Sat Nov 06 12:08:24 CST 2021-----Sat Nov 06 12:08:29 CST 2021----31.927827052772045
    Thread[Thread-49,5,main]===>Sat Nov 06 12:08:23 CST 2021-----Sat Nov 06 12:08:29 CST 2021----29.674843708984554
    Thread[Thread-22,5,main]===>Sat Nov 06 12:08:23 CST 2021-----Sat Nov 06 12:08:29 CST 2021----30.460573315620422

    后台负载

  • 相关阅读:
    NeurIPS 2018 中的贝叶斯研究
    史上最全采样方法详细解读与代码实现
    采样方法(二)MCMC相关算法介绍及代码实现
    第七十四篇:机器学习优化方法及超参数设置综述
    论文阅读:《Bag of Tricks for Efficient Text Classification》
    训练技巧详解【含有部分代码】Bag of Tricks for Image Classification with Convolutional Neural Networks
    数值分析-Legendre正交多项式 实现函数逼近
    指针生成网络(Pointer-Generator-Network)原理与实战
    强化学习入门 第五讲 值函数逼近
    UniGUI的 TUniPageControl控件动态拖动tabsheet的实现方法
  • 原文地址:https://www.cnblogs.com/lilei2blog/p/15516400.html
Copyright © 2011-2022 走看看