自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 冒泡排序,快速排序,二分查找法(java)

二分查找法原理:给定有序数组,查找给定的值V在数组中的位置,首先获取数组中间元素的值,与V匹配,V大,查右边,V小查左边,重复这个过程,直到匹配到最后一个元素.冒泡排序原理:给定数组从第一个元素(A)开始依次从第二个元素往后匹配,匹配到比A小的元素就调换A与这个元素的位置,这样方式第一遍依次匹配完之后,第一个元素A就是数组中的最小元素,之后再从第二个元素开始,依次匹配第三个元素之后的值,轮询完后,第二个元素就是第二小元素…public class EFCZ { /** * 递归二分查

2021-04-25 12:39:10 390

原创 MySQL join原理与优化

内连接:mysql中内连接写法比较多,下面的写法作用都是一样的:select * from a,b where xxx;select * from a join b on xxx where xxx;select * from a cross join b on xxx where xxx;select * from a inner join b on xxx where xxx;在内连接中,on与where的作用是一样的都是起到过滤作用,a与b哪个是驱动表是由优化器去选择的.外连接:se

2021-01-07 16:45:59 285

原创 mysql 索引合并

有没有听说过,单表select只能使用一个索引,这句话是不对的,有些情况下会使用多个索引,进行索引合并查询.索引合并对应于exlian中的type 为index_merge.如下图后面的extra里面的using uninon是指的索引合并的类型.索引合并分为三种类型:intersection索引合并 union索引合并 sort-union索引合并...

2021-01-07 15:26:57 769

原创 MySQL B+Tree索引概念

索引作用是为了提高数据检索效率,通过二分查找法快速定位数据范围.下图是B树索引与B+Tree索引存储原理图(本人画太慢了,扣的网图):B-Tree索引:B+Tree索引:(网上原图不是太准确,所以我调整了一下)对上图的概念解释:树节点的概念:根节点:最顶层的节点,有且只有一个节点 (对应图中磁盘块1)叶子节点:最底层的节点 (对应图中磁盘块4~9)内节点:除根节点与叶子节点的节点都是内节点 (对应图中磁盘块2和3)页:页是mysql与磁盘交互的基本单位,默认大小16K,用户数据

2021-01-05 12:55:10 342

原创 Mysql页的基本概念

mysql与磁盘交互的基本单位是页而不是一条记录,页的大小是16k,对应的系统变量是innodb_page_size页的类型页名称描述FILE_PAGE_UNDO_LOGundo日志页FILE_PAGE_INODE段信息页FILE_PAGE_IBUF_BITMAPchange buffer属性页FILE_PAGE_FREE_LISTchange buffer空闲列表FILE_PAGE_TYPE_SYS系统数据页FILE_PAGE_TYPE_TR

2020-12-31 16:52:56 1516

原创 MySQL InnoDB引擎数据存储行格式

mysql基本存储单元是页,是服务器与磁盘交互的最小单位,默认大小16k,查看页大小:show variables like 'innodb_page_size' =>16384页中存储着多行数据,InnoDB引擎数据的存储格式也就是行格式有四种:COMPACT REDUNDANT DYNAMIC COMPRESSED创建表时指定行格式:CREATE TABLE XXX (XXX) ROW_FORMAT=COMPACT;COMPACT行格式:不定长字段长度列表记录了所有

2020-12-31 13:59:04 203

原创 mysql字符集与比较规则

查看当前mysql支持的字符集show charset [like 'utf8%'];Charset:字符集名称Default_collation:默认的比较规则Maxlen:最大长度,utf8字符长度为1-3所以MaxLen为3 utf8mb4字符长度1-4所以Maxlen为4查看当前mysql中支持的比较规则show collation [like 'utf8%'];Default:是否是当前字符集默认的比较规则Complied:是否将字符集编译到了server中Sortlen

2020-12-29 18:01:13 547

原创 mysql自定义函数

mysql只能自定义udf函数,udaf函数不支持自定义.自定义函数需要了解循环结构

2020-11-30 18:30:10 124

原创 mysql循环判断结构

Mysql循环判断结构在自定义函数或者存储过程中经常要用到的循环判断结构:if判断: if 条件 then xxx; [elseif 条件 then xxx;] [else xxx;] end if;case when 判断 case when 条件 then xxx; when 条件 then xxx; else xxx; end case;while循环[标签名:]while 条件 do xxx end while [标签名];离开循环

2020-11-30 18:18:23 946

原创 mysql系统变量 用户变量 局部变量

mysql中变量分为系统变量,用户变量,局部变量系统变量又分为全局(global)变量与会话(session)变量,全局与会话的区别在于,全局是在服务重启之前的所有连接,而会话作用于当前一次的连接,这里的连接指的是navicate打开的一个查询窗口,或者cmd中一次mysql连接,或者jdbc中的一个connection.用户变量与局部变量作用域只是会话.并且局部变量的只在begin … end中有效.系统变量系统变量也就是mysql相关参数,如事务隔离级别,自动提交等查看所有系统变量:sh

2020-11-29 20:10:02 948

原创 mysql多表更新与多表删除

多表更新:update tableA inner/left/right join tableB on xxxx set xxxxx;

2020-11-25 14:14:33 1089

原创 Clickhouse副本与分片

一 副本与分片概述副本是指两个相同数据的表,作用是为了数据备份与安全分片是指不同的服务器存储同一张表的不同部分,作用是为了水平切分表,缓解单一服务的压力.针对于副本的需求,有两种不同的方式,后面会一一概述.二 下载并安装zookeeperclickhouse要实现副本与分片需要依赖于zookeeper,并且zookeeper版本要3.4.5以及以上.ZK的下载与安装参考我另外一篇博文Zookeeper的下载与安装三 ClickHouse配置zookeeper安装启动好zookeeper后,我

2020-11-21 00:50:51 10878 5

原创 zookeeper的下载与安装

zookeeper为java编写,请先准备好java环境.zookeeper下载地址链接以上链接中3.5.5以下的下载zookeeper-x.x.x.tar.gz 3.5.5以及以上版本下载apache-zookeeper-x.x.x-bin.tar.gz例外cdh版本的下载链接链接本人下载的是apache的3.5.8版本.先通过rz命令将tar包上传到服务器.我上传的目录是/mydir/package但是解压到/mydir/soft目录解压:tar -zxvf /mydir/packag

2020-11-18 22:07:27 1257

原创 ClickHouse ReplicatedMergeTree家族引擎

ClickHouse 中的所有MergeTree家族引擎前面加上Replicated就成了支持副本的合并树引擎.本文以ReplicatedMergeTree引擎作为演示,其他副本合并树引擎是一个道理.ReplicatedMergeTree如果有两个副本的话,相当于分布在两台clickhosue节点中的两个表,但是这个两个表具有协调功能,无论是哪个表执行insert或者alter操作,都会同步到另外一张表,这样子很好理解,副本就是相互同步数据的表.复制合并树只有进行INSERT或者ALTER或者TRUN

2020-11-17 23:02:19 8957

原创 ClickHouse Merge引擎

Merge引擎与MergeTree引擎一点儿关系没有,它类似于union all的功能,将不同引擎表中的数据union到一起.准备数据:CREATE TABLE mydatabase.mergeTest1(`id` Int8, `name` String)ENGINE = MergeTreeORDER BY id;insert into mergeTest1 values(1,'zhangsan');create table mydatabase.mergeTest2(id Int16,nam

2020-11-10 22:03:42 488

原创 ClickHouse File引擎

因为ClickHouse的更新节奏很快,很多内容可能不断调整,2.10(当前最新的发行版本)与1.9版本不一样,此次是以1.9版本演示.clickhouse-client --versionClickHouse client version 19.9.5.36.File引擎以data.format格式存储,常见format格式有CSV,TSV,JSONEachRow. create table tableName (col1 type,col2 type...)engine =File(forma

2020-11-10 10:53:21 916

原创 ClickHouse Kafka引擎

Kafka引擎用力读取kafka中的数据,创建表语句CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]( name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1], name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2], ...) ENGINE = Kafka()SETTINGS kafka_broker_

2020-11-08 11:05:26 3942 8

原创 ClickHouse JDBC表引擎(clickhouse-jdbc-bridge)

ClickHouse允许使用jdbc连接到远程数据库(PostgreSQL,SQLite,H2,Mysql,ClickHouse等)这种引擎clickhouse自己无法完成,需要另外一个服务的支持:clickhouse-jdbc-bridge.它的的作用是接收ClickHouse的http请求,然后去远程查询结果,之后再反馈给ClickHouse.要使用这个引擎,通常会碰到各种各样的坑,希望我这篇文章能帮助大部分避免一些坑.jdbc-bridge服务需要自己打包部署,或者百度别人打包好的jar包.j

2020-11-07 23:09:25 6157

原创 ClickHouse MySQL引擎

ClickHouse关于mysql有库引擎跟表引擎.1 mysql库引擎直接映射mysql的数据库CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster]ENGINE = MySQL('host:port', ['database' | database], 'user', 'password')随便找了一个测试的库创建MySQL引擎数据库 create database mysqlDB engine = MySQL('nod

2020-11-05 11:23:59 3316

原创 ClickHouse HDFS表引擎

ClickHouse最重要的表引擎MergeTree家族系列:MergeTree家族其他表引擎:Hdfs表引擎:create table tableName(xxx type,...)engine =HDFS(url,fomat);a:创建新的文件先创建一个文件夹:hdfs dfs -mkdir /user/hive/warehouse/test.db/hdfsTest/创建表并插入数据 create table hdfsTest(id Int16,name String) eng

2020-11-03 23:23:12 2091 1

原创 ClickHouse MergeTree引擎家族

MergeTree家族引擎是ClickHouse在生产中最常用,也是功能最强大的引擎,只有这种引擎才有主键索引(主键值不需要唯一),二级索引分区,副本和数据采样的特性.MergeTree引擎家族有:MergeTreeReplacingMergeTreeSummingMergeTreeAggregatingMergeTreeCollapsingMergeTreeVersionedCollapsingMergeTreeMergeTree引擎创建表语句:CREATE TABLE [IF NOT E

2020-11-01 17:45:11 824

原创 Clickhouse数据库引擎

ClickHouse支持的表引擎官网只给了三种:Ordinary/Mysql/Lazy,《ClickHouse原理解析与应用实践》一书中给了五种:Ordinary/Dictionary/Memory/Mysql/Lazy创建数据库指定数据库引擎语法:create database xxxx engine = 数据库引擎1 Ordinary引擎默认引擎,如果不指定数据库引擎创建的就是Ordinary数据库.如图所示,两者引擎一样.2 Dictionary引擎3 Memory引擎所有数据只会保

2020-10-31 20:37:18 1042 1

原创 sqoop export导出数据到mysql(追加/更新)

准备数据:data.txt1,zhangsan,18,2020-01-012,lisi,19,2020-02-023,wangwu,20,2020-03-034,zhaoliu,21,2020-04-045,tianqi,22,2020-05-056,luba,23,2020-06-067,sunjiu,24,2020-07-078,gaoshi,25,2020-08-089,xiaoshiyi,26,2020-09-0910,wushier,27,2020-10-10将数据放到h

2020-10-28 23:51:06 6260

原创 sqoop保存/查看/删除job

创建jobbin/sqoop job --create myjobbin/sqoop job --create myjob -- import --connect jdbc:mysql://node03:3306/test --username root --password 123456 --table sqooptest --m 1 --fields-terminated-by '\001' --hive-import --hive-table sqooptest.sqooptest --tar

2020-10-28 00:33:03 893

原创 sqoop导入hdfs和hive(追加/增量/覆盖)

提前准备mysql数据DROP TABLE IF EXISTS `sqooptest`;CREATE TABLE `sqooptest` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;INSERT INTO `sqooptest` VALUES

2020-10-28 00:18:07 5550

原创 Clickhouse数据类型

一基本数据类型1整数类型:Int8/Int16/Int32/Int64分别对应mysql类型tinyint/smallint/int/bigint取值范围:是-2的(Int后数字-1)的平方到2的(Int后数字的平方-1)-1,Int8对应-128~127UInt8/UInt16/UInt32/UInt64前面加U 例如 UInt8 代表全部是正数,取值范围为0到2的8次方-1既0~2552 浮点类型:Float32/Float64分别对应mysql的float与doubleDecima

2020-10-26 16:06:02 4500

原创 ClickHouse可视化tabix(linux)

tabix安装官网两种方式:第一种 内嵌式(最简单的方式)vim /etc/clickhouse-server/config.xml将注释的配置打开<http_server_default_response><![CDATA[<html ng-app="SMI2"><head><base href="http://ui.tabix.io/"></head><body><div ui-view="" class="c

2020-10-26 00:10:13 1928 1

原创 ClickHouseJDBC连接

clickhousejdbc连接端口默认8123但是clickhouse默认情况下不允许其他设备进行http连接,所以需要更改clickhouse的默认配置:vim /etc/clickhouse-server/config.xml此设置是允许任何设备进行连接.配置好了之后就可以API连接 <dependencies> <dependency> <groupId>ru.yandex.clickhouse</

2020-10-25 22:45:07 6537 2

原创 ClickHouse安装(linux)

一 在线安装:sudo yum install yum-utilssudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPGsudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/stable/x86_64sudo yum install clickhouse-server clickhouse-client如果是linux新手要知道root用户

2020-10-25 20:25:14 3553 1

原创 waterdrop导出hdfs数据到clickhouse(text,csv,json)

首先用hive创建表(这里是为了生成hdfs文件方便,实际hive表导出应该是整合spark直接写sql导出): CREATE TABLE test.hdfs2ch2( id int, name string, create_time timestamp); insert into hdfs2ch2 values(1,'zhangsan',' 2020-01-01 01:01:01.000001'); insert into hdf

2020-10-20 23:58:56 1685 1

原创 Mybatis高级查询(一对一,一对多,多对多)

数据准备CREATE TABLE `student_info` ( `classes` varchar(255) NOT NULL, `name` varchar(255) NOT NULL, `student_numer` int(11) DEFAULT NULL, `subject` varchar(255) DEFAULT NULL, `score` int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSER

2020-10-19 17:18:29 3811

原创 linux虚拟机启动黑屏无法进入也无法关闭以及获取所有权失败

最近碰到一个问题,VMware启动虚拟机时黑屏,无法进入也无法开机,始终卡在那里,并且多次重启才有可能进入,本人安装了三台虚拟机,所以经常要很多次重启之后才能三台全部进入,百度都是一个答案:在命令提示符输入netsh winsock reset,并重启计算机.但是解决不了我的问题,考虑可能是VMware版本bug,所以也从14升级到了15,依然不行.卡黑屏并不是唯一问题导致的,尝试以下两种解决方式.如果是"获取所有权失败"直接使用第二种方式第一种方式:先使用上面方法尝试一下是否能够解决问题:以管理员方式

2020-09-29 09:36:47 851

原创 waterdrop配置多数据源与多输出

我有两个数据源分别是es与kudu 输出到clickhouse不同的表spark { #程序名称 spark.app.name = "Waterdrop" #executor的数量(数据量大可以适当增大) spark.executor.instances = 1 #每个excutor核数(并行度,数据量大可以适当增大到服务器核数一半以下,尽量不要影响clickhouse) spark.executor.cores = 1 #每个excutor内存(不能小于512m) s...

2020-09-23 15:42:47 960 1

原创 waterdrop 配置文件传参

waterdrop应用提交命令./bin/start-waterdrop.sh --master yarn --deploy-mode client --config ./config/test.conf如果我们通过azkaban调度,可能会有大量的waterdrop配置文件,但是有很多参数是放在azkaban的配置文件之中,所以我们需要把azkaban的配置文件中的参数传递到waterdrop的conf文件中.first.jobtype=commandcommand=echo "sta

2020-09-23 14:19:34 1350

原创 WaterDrop的使用

支持多种数据源与输出数据输入形式有两种:一种是批,一种是流(分别对应sparksql中的一次性读取,与structruedstreaming的流式处理)批处理有(start-waterdrop.sh):ElasticSearch File Hdfs Hive Hbase JDBC Kudu MongDB Mysql等(Hbase为商业版,普通版需要实现可以使用Hive映射HBase表的方式)流式处理有(start-waterdrop-structured-streaming.s...

2020-09-18 18:24:39 10167

原创 WaterDrop下载与安装

简介WaterDrop是一款数据同步/ETL工具,其底层是通过用户编写的配置文件转化执行spark代码.所以必须要spark2.x以上的环境.(类似于sqoop必须Mr)WaterDropV2同时支持Spark与flink支持多种数据源与输出数据输入有两种一种是批一种是流(分别对应sparksql中的一次性读取,与structruedstreaming的流式处理)批处理有:ElasticSearch File Hdfs Hive Hbase JDBC Kudu MongDB...

2020-09-18 15:38:01 6574

原创 MapReduce WordCount示例

依赖 <dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.2.0</version> </dependency>

2020-09-14 18:31:16 79

原创 mysql函数整理(字符串函数,日期函数,数字函数)

字符串函数函数描述使用CHAR_LENGTH(s)返回字符串s的长度CHAR_LENGTH(123)=>3CHARACTER_LENGTH(s)同上CONCAT(s1,s2…sn)拼接字符串,如果有null返回nullCONCAT(‘a’,‘b’,‘c’)=>‘abc’ CONCAT(‘a’,‘b’,null)=>nullCONCAT_WS(sep, s1,s2…sn)指定分隔符(sep)拼接字符串,忽略字符串为nullCONC

2020-09-10 15:58:05 270

原创 springboot后台上传与解析excel(同步解析与异步解析)

excel解析依赖(springboot依赖自己添加) <dependency> <groupId>com.monitorjbl</groupId> <artifactId>xlsx-streamer</artifactId> <version>2.0.0</version> </dependency>后台解析有种方式:流同步解析(数据量小,花费时间少)和文件保存应用所

2020-09-10 09:44:41 1141

原创 web后台生成excel下载

excel依赖(内置了poi,生成excel调用的就是poiAPI) <dependency> <groupId>com.monitorjbl</groupId> <artifactId>xlsx-streamer</artifactId> <version>2.0.0</version> </dependency>swagger跟springboot依赖自己添加吧.逻

2020-08-31 12:16:10 305

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除