自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据库MySQL中left join多个条件下的执行

创建表A 表B。

2023-08-25 16:56:03 371

原创 MPP架构和Hadoop架构的区别

是将许多数据库通过网络连接起来,相当于将一个个垂直系统横向连接,形成一个统一对外的服务的分布式数据库系统。每个节点由一个单机数据库系统独立管理和操作该物理机上的的所有资源(CPU,内存等),节点内系统的各组件间相互调用无需通过主节点。是将不同的资源管理与功能进行分层抽象设计,每层形成一类组件,实现一定的解耦,包括存储资源管理等,在每层内进行跨节点。

2023-08-03 12:42:15 1948

原创 ClickHouse集群的离线安装

/var/log/clickhouse-server/clickhouse-server.log/var/lib/clickhouse/

2023-02-27 11:15:15 1750 1

原创 TiDB离线安装教程

TiDB是PingCAP公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。目标是为用户提供一站式 OLTPOLAP (Online Analytical Processing)、HTAP 解决方案。

2023-02-27 10:28:08 600

原创 Group by的用法

sql语句中的执行顺序:from-> where -> join -> group by -> having ->select ->order by ->limitgroup by之后,select语句能够写的字段只有三种1)group by的字段2)聚合函数 sum count...3) 常量值例如:错误的写法,brand,model属性无法进行查询纠正:...

2022-06-07 15:26:54 143

原创 数仓中的维度表与事实表

大数据中的维度表与事实表

2022-06-01 11:03:13 587 1

原创 ClickHouse 与 Hbase的对比

目录1 ClickHouse与Hbase的基础2 ClickHouse与HBase的架构对比2.1 Hbase架构​编辑2.2 ClickHouse的架构​编辑3 基本操作对比3.1 HBase3.2 ClickHouse4 数据查询操作5 各维度对比1 ClickHouse与Hbase的基础hadoop生态圈技术繁多,HDFS主要用于保存底层数据。Hbase是一款NoSQL也是Hadoop生态圈的核心组件,其具有海量的存储能力,优秀的随机读写...

2022-05-19 21:32:18 16172 5

原创 Java中的多态

1.多态的概念多态就是同一个接口,使用不同的实例而执行不同的操作。例如:现实中,比如我们按下 F1 键这个动作:如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档; 如果当前在 Word 下弹出的就是 Word 帮助; 在 Windows 下弹出的就是 Windows 帮助和支持。同一个事件发生在不同的对象上会产生不同的结果。2. 多态的优点1)可替代性2)可扩充性3)消除类型之间的耦合关系3. 多态的实现条件1)继承 2)重写 3) Parent

2022-05-18 11:22:52 176

原创 Flink中的CEP

1 CEP的概念一个或多个简单事件构成的事件流满足通过一定的匹配规则,然后输出用户想得到的数据,满足规则的复杂事件。2 CEP特点具有低延迟,高吞吐的处理3 CEP的开发基本开发规则1)定义规则//begin("规则的名字")//.where()条件//创建where()中的IterativeConditionPattern<WaterSensor, WaterSensor> pattern= Pattern.<WaterSensor>begin

2022-05-07 21:27:02 760

原创 Flink中的状态一致性

1 状态一致性的分级at most once :故障发生之后,计数结果可能丢失at least once :表示计数结果可能大于正确值,但绝不会小于正确值。也就是说,计数程序在发生故障后可能多算,但是绝不会少算。exactly once :这指的是系统保证在发生故障后得到的计数结果与正确值一致。2 端到端状态一致性端到端的一致性保证,意味着结果的正确性贯穿了整个流处理应用的始终;每一个组件都保证了它自己的一致性,整个端到端的一致性级别取决于所有组件中一致性最弱的组件。具体可以划分如.

2022-05-02 22:56:22 843

原创 Flink中watermark的作用

1 watermark产生的缘由Flink中流处理从事件产生,到流经source,再到operator,中间是有一个过程和时间的。虽然大部分情况下,流到operator的数据都是按照事件产生的时间顺序来的,但是也不排除由于网络、背压等原因,导致乱序的产生(out-of-order或者说late element)。但是对于late element,我们又不能无限期的等下去,必须要有个机制来保证一个特定的时间后,必须触发window去进行计算了。这个特别的机制,就是watermark。2 water

2022-05-01 12:37:00 935

原创 Java中的构造者模式

1 使用场景当一个类的构造参数个数超过4个,而且这些参数有些是可选的参数,考虑使用构造者模式。2 解决的问题(1) 折叠构造函数模式(2) Javabean模式第一种方式 不能明确往对象中加入了什么属性的内容第二种方式 存在大量冗余属性3 使用构造者模式步骤1、在Computer 中创建一个静态内部类 Builder,然后将Computer 中的参数都复制到Builder类中。2、在Computer中创建一个private的构造函数,参数为Builder类型3、在

2022-04-28 16:47:53 1276

原创 Spark中的DAG介绍

1 DAG的介绍DAG:全称为 Directed Acyclic Graph 中文为:有向无环图在spark中,使用DAG来描述我们的计算逻辑。2 Spark中的DAGDAG是一组顶点与边的组合,顶点代表RDD,边代表对RDD的一系列操作。DAG Sheduler根据RDD的不同transformation操作,讲DAG分为不同的stage,每个stage中又分为多个task。3 DAG解决的问题DAG的出现主要是为了解决MapReduce框架的局限性。MapReduce框架

2022-04-25 19:13:29 6797

原创 数据仓库(DW)的分层架构

1 数据仓库“分层”的优势(1)把复杂的问题简单化;通过把复杂的问题分解成多层,每次只处理简单任务。(2)减少重复开发;规范数据分层,通过的中间层数据,能够减少极大的重复计算(3)隔离原始数据2 四层分层各自的作用1 数据操作层ODS(Operational Data Store)数据源中的数据,经过抽取、洗净、传输,也就说传说中的ETL之后,装入本层ODS表通常包括两类:一个用于存储当前需要加载的的数据,一个用于存储处理好的历史数据。历史数据一般保存3-6个月后需要清除,以节省

2022-04-22 19:42:02 2383

原创 Spark中广播变量(boardcast)的使用

1 使用广播变量的使用步骤(1)声明广播变量val board = sc.boardcast(XX)(2)使用 .value 获得广播变量的值(3)变量只会被发到各个节点一次,且作为“只读变量”以下是广播变量的源代码向所有工作节点发送一个较大的只读值,以供一个或多个Spark操作使用。比如,如果你的应用需要向所有节点发送一个较大的只读查询表,广播变量用起来都很顺手。 /** * Broadcast a read-only variable to the cluster,

2022-04-19 21:32:57 4447

原创 Scala中getElse()函数的具体用法

1 函数的实现 def getOrElse[V1 >: V](key: K, default: => V1): V1 = get(key) match { case Some(v) => v case None => default }由以上函数可知,getOrElse函数的主要“传入参数有两个”,分别是key 和 default即传进来的数值类型是Map类型(key,value)若存在key这个数值,则返回get(key)即value,否则返

2022-04-18 21:25:00 190

原创 hadoop3.x的结构总结

目录1 hadoop的组成1.1 hadoop1.x与Hadoop2.x的区别1.2 HDFS的架构描述1.3 Yarn架构的描述2 MapReduce架构概述3 HDFS的概述3.1 HDFS的定义3.2 HDFS的组成结构3.3 HDFS块大小3.4 HDFS文件写入3.5 HDFS的文件读取3.6 NameNode(NM)和SecondaryNameNode3.7 DataNode3.7.1 DataNode的工作机制3.7.2 数据的...

2022-04-18 14:04:15 2121

原创 二叉树的遍历(快速理解逻辑分享)

(1)前序遍历即根节点最先被访问,在访问左子树,再访问右子树(在每棵子树也是这样的规则)例如下图对于节点B,G而言,F节点是父节点,故最先被访问得到,此时得到点F紧接着访问节点B,此时,节点B,A,D构成一个子树。在这棵子树中,对节点A,D而言,节点B即是父节点,故最先被访问,接着访问左节点A,最后访问节点D。依次逻辑循环,最后输出树的遍历顺序。(2)中序遍历即左子树节点最先被访问,再访问根节点,最后访问右子树(在每棵子树也是这样的规则)(3)后序遍历即左子树节点最.

2022-03-23 23:35:57 375

原创 DenseNet网络结构的讲解与代码实现

1.概念DenseNet:采用密集连接机制,即互相连接所有的层,每个层都会与前面的层在channel(通道)维度上连接道一起,实现特征重用,作为下一层的输入。这样操作的好处在于 不仅减缓了梯度消失的问题,也可使其在参数与计算量更少的情况下实现比Resnet更优的性能。2.公式在DenseNet中,会连接前面所有层作为输入,它的公式为其中H(.) 代表的是非线性转化函数,它是一个组合操作,其可能包括一系列的BN,ReLU,Pooling及Conv的操作。特征传递方式 是 .

2021-10-22 21:25:10 2798

原创 CBAM的讲解

前言:通道注意力让网络 关注图像“是什么”,而空间注意力则让网络关注图像 中物体“在哪“1.概念CBAM是一种简单而有效的卷积神经网络注意力模块。在卷积神经网络任意给定一个中间特征图,CBAM将注意力映射 沿特征图的通道与空间两个独立的维度进行注入然后将注意力乘以输入特征映射,对输入的特征图进行自适应特征细化。因为CBAM是一种端到端的通用模块,它可以无缝的集成到CNNs中,并且可以与基本CNNs一起端到端的训练。2 具体过程CBAM 中的通道注意力和空间注意力结构如下图所示

2021-09-18 10:19:40 17886 4

原创 detectron2 训练自己定义好的coco数据集

本文主要介绍如何在colab上训练自己的coco数据集实现目标检测的功能!使用coco数据集主要的原因时 代码中 有现成的注册数据集等格式,无需自己去定义一个新的函数1 coco数据集的存放annotations 主要是存放对应的json文件train2017主要存放 训练时的图像val2017主要存放 测试时的图像2 查看detectron2 的目录3 基于colab的detectron2训练3.1 查看设备切换路径、安装等一系列问题此处无需再安装pyto...

2021-07-14 09:54:44 4258 18

原创 Ubuntu21.04、cuda11.2环境下载显卡驱动、下载 pytorch

(好家伙,装个ubuntu系统和pytorch和实验室的小伙伴搞了好几天)1、配置系统说明1 、电脑配置显卡3070ti主板是 微星的(带有无线网卡的驱动的)这里简要说明下,如果主板太新,网卡太新,可能会导致ubuntu系统无法识别网卡驱动,得去网上自己下载对应的linux环境下的网卡驱动,所以很麻烦。最好的办法是装上最新的ubuntu21.04的系统,这样子就可以识别网卡这个驱动。如果不想太新的ubuntu系统,可以参考教程链接自自己装网卡驱动试试https://blog.cs

2021-07-02 15:19:50 2248

原创 voc数据集转化为coco数据集

1 voc2012数据集了解其中Annotations存放的是五个文件夹,但针对目标检测而言,只有前面三个文件夹存放的内容是有意义的,文件目录如下voc|--------Annotations| |___xxx.xml| |___xxx.xml ...|--------ImageSets| |___Main| |_____test.txt| |_____train.tx

2021-06-26 11:09:14 3024 8

原创 MobileNet的理解

(1)MobileNet是一个轻量级卷积神经网络,它进行卷积的参数比标准卷积要少很多。MobileNet的基本单元是深度级可分离卷积,其可以分解为两个更小的操作:depthwise convolution和pointwise convolutionDepthwise convolution和标准卷积不同,对于标准卷积其卷积核是用在所有的输入通道上(input channels),而depthwise针对每个输入通道采用不同的卷积核,就是说一个卷积核对应一个输入通道。一般由M个n*n*1的卷积核构成,

2021-05-10 16:11:49 7166

原创 pytorch版本resnet迁移学习实现kaggle上猴子的分类

pytorch版本resnet101迁移学习实现kaggle上猴子的分类resnet网络即为多个残差网络进行堆叠形成,主要是保证第n+1层网络的特征图所含特征比第n层多。这里主要实现的是resnet101网络的迁移学习。kaggle猴子分类的数据源:https://pan.baidu.com/s/1VVixGKyafn2qr9nC-oqSdA提取码:lz1p首先是构建resnet101网络残差网络的构建其中expansion=4是查看 输入的通道数 * 4 == 最后输出的...

2021-05-07 15:36:21 482

原创 pytorch版本基于vgg16的迁移学习实现kaggle猴子分类

Vgg16的基本网络结构Vgg16的网络结构由13层卷积层+3层全连接层组成kaggle上猴子的数据源:https://pan.baidu.com/s/1Y15Tsm_hmP6pMHnGpOA4qg提取码:6ass首先通过torchvision导入模型vgg16(也可以通过import torchvision.models.vgg,按ctrl查看vgg的pytorch代码)module.py文件import numpy as npimport pandas as pd...

2021-05-07 15:21:43 822 2

原创 Pytorch常用函数(入门)

Pytorch入门1 pytorch的常用各种函数tensor的组合和分块--->tensor.cat()/tensor.stack()(组合)--->tensor.chunk()/tensor.split()(分块)tensor的变形--->tensor.view(),resize(),reshape()--调整Tensor的形状,元素总数相同--->transpose()、permute()各维度之间的变换--->squeeze()、unsqueeze(

2021-05-04 15:27:46 1171

原创 Java/python实现快速排序

class Quick{ public void swap(int[] arr,int i,int j) { //数值的交换 int temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } public int[] Sort(int[] arr,int low,int high) { //进行快速排序 int pivot;//记录下标 if(low<high) { pivot=partition(arr,low,high); /.

2020-10-08 14:31:23 77

原创 java/python实现二路归并排序

public class MergeSort { public static int[] sort(int[] a,int low,int high){ int mid = (low+high)/2; //左右归并 if(low<high){ sort(a,low,mid); sort(a,mid+1,high); merge(a,low,mid,high); } .

2020-10-08 14:30:48 97

原创 Java/python实现堆排序

class HeapAdjust{//调整为大顶堆 public void MaxAdjust(int[] arr,int s,int m) {//s为父结点,m为结点数目 int temp=arr[s];//暂存父结点 int j; for(j=2*s+1;j<m;j=2*s+1) {//j=2*s+1即寻找s的子结点 子节点分别为2s+1,2s+2 if(j+1<m&&arr[j]<arr[j+1]) ++j; if(temp>.

2020-10-08 14:30:11 65

原创 Java/python希尔排序

Java希尔排序class XiEr{ public void sort(int[] arr) { int increment=arr.length; int temp,i,j; while(increment>1) {//对增量序列进行设置 increment=increment/3+1;//设置不同的增量 for(i=increment+1;i<arr.length;i++) { if(arr[i]<arr[i-increment]) {//arr.

2020-10-08 14:29:29 68

原创 Java、python直接插入排序

#将一个记录插入到已经拍好序的有序表中,使得有序表加一。class insert{ public void insert(int[] arr) { int i,j,temp; for(i=1;i<arr.length;i++) { if(arr[i]<arr[i-1]) { //将arr[i]插入有序表中 temp=arr[i];//暂存于temp中 for(j=i-1;arr[j]>temp;j--) { arr[j+1]=arr[j.

2020-10-08 14:28:07 60

原创 java/python简单选择排序

Java简单选择排序class select{ //简单选择排序 public void sort(int[] arr) { int temp;//临时变量 int len=arr.length; int min;//最小下标 for(int i=0;i<len-1;i++) {//执行n-1次 min=i;//从0开始 for(int j=i+1;j<len;j++) { if(arr[j]<arr[min]) { min=j;.

2020-10-08 14:27:23 60

原创 java/python冒泡排序纯代码分享排序分享

java/python纯代码分享排序分享Java交换排序--冒泡排序classsort{inttemp;//临时变量publicvoidswap(int[] a,inti,intj) {//两个数之间交换temp=a[i];a[i]=a[j];a[j]=temp;}publicvoidmaopao(int[] a) {//冒泡排序for(inti=0;i<a.length-1;i++) {//进行n次交换排序for(intj=...

2020-10-08 14:22:40 67

空空如也

空空如也

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

TA关注的人

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