自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Scala从入门到放弃:基础知识篇(3)

继续Scala之旅。

2023-01-16 11:14:40 168

原创 Scala从入门到放弃:基础知识篇(2)

书接上回,继续挖Scala~

2023-01-05 14:43:49 147

原创 Scala从入门到放弃:基础知识篇

又从SqlBoy成了算子Boy了,跳槽后项目中多处使用了Scala语法,虽然之前学过也开发过,不过很久没用了还是生疏的很,最近不是很忙,正好有时间来系统性的梳理下,本文适合有的同学,当然也希望这几篇文章可以帮助到初学者。

2023-01-04 11:30:01 216

原创 【Linux小技巧】下载文件

最近在本地做测试环境的搭建,但是又需要生产环境的数据,那么就需要从hdfs -get数据后,落到本地的Liunx路径中,再通过sz/ftp等方式下载到Windows的指定目录下由于运维做了网速限制,导致下载到一定大小后速率会变得很低。

2022-12-22 14:51:20 562

原创 大数据面试题之HIVE(完)

本文是笔者在面试过程中被问到次数最多的一些问题,特此记录。

2022-09-19 14:11:29 138

原创 大数据面试题之HIVE(1)

hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行UDF 一进一出UDAF 多进一出UDTF 一进多出4.hive HQL执行顺序?解释器->编译器->优化器->执行器5.hive内部表和外部表的区别?创建表:创建表的时候,如果创建的是内部表,数据来源会被剪切掉表中。...

2022-08-30 17:25:20 1043

原创 关于python桑葚图的一些实现

最近工作需要,在做用户路径的分析,特此写下该篇文章记录一下网上主流的桑葚图大概就是如下图所示,我们本篇文章也是还原如下效果实现桑葚图,我借用了python的pyecharts组件pyecharts实际上就是Echarts 与 python 的对接安装openpyxl附上官方文档:https://gallery.pyecharts.org/#/README效果如下:如果出现数据丢进去了,程序也运行成功了,但是效果图出不来那么一定是source和target对应的excel列重复了以及so

2022-06-17 11:08:56 1391

原创 [大数据学习之Flink]02-FlinkSource

常用的只有KafkaSource,其他做知识扩展,了解下即可~1.集合数据源一般用于做TestDemo的时候// 创建执行环境StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();env.setParallelism(1);// 从集合中读取数据DataStream<SensorReading> dataStream = env.fromCollection(.

2022-04-15 17:32:56 1794

原创 [大数据学习之Flink]01-初识Flink

1.Flink特点Flink是基于事件驱动的(Event-driven)事件可以理解为消息。事件驱动的应用程序是一种状态应用程序,它会从一个或者多个流中注入事件,通过触发计算更新状态,或外部动作对注入的事件作出反应Flink是基于流处理的,也就是说,在Flink中,一切都是流形式,离线数据被称为有界流,实时数据被称为无界流Flink最强悍的一点其实就是万物皆流离线就是有开头有结尾的流式数据,实时就是有开头无边界的流式数据2.Flink VS SparkStreaming数据

2022-03-27 13:33:10 2274

原创 [大数据学习之ClickHouse]14-ClickHouse监控/可视化

前言CLK虽然底层提供了自身状态的运行记录并记录到系统表中**(SYSTEM.*)**,但是对于运维人员来说,每次去查看这些数据会比较麻烦,现在 Prometheus + Grafana 的组合比较流行,达到监控+可视化的目的安装Prometheus上传并解压修改配置文件,一定要和文件中的格式保持一致(哪怕是空格也要保持一致)后台启动nohup ./prometheus --config.file=prometheus.yml > ./prometheus.log 2>&

2022-03-06 16:27:37 1922

原创 [大数据学习之ClickHouse]13-ClickHouse高级进阶之数据一致性/物化视图

一致性CLK有个比较致命的缺点就是数据一致性的问题,CLK仅仅只能保证数据的最终一致性比如CLK的去重MT所以在使用CLK的时候,肯定也一定会出现短暂的数据不一致的情况解决方法:手动OPTIMIZE在表数据插入进来的时候,立马执行OPTIMIZE强制触发CLK的合并动作,这种方式虽然可以解决,但是对下游的影响往往是非常大的,除非这张表只有你一个人在使用,否则不建议这样做GROUP BY + 视图众所周知GROUP BY是去重的最简单方式,那么我们就可以对数据进行GROUPB

2022-02-28 15:24:18 2026

原创 [大数据学习之ClickHouse]12-ClickHouse高级进阶之单表/多表优化

单表优化PreWhere代替WherePreWhere和Where的效果/语法都是一致的,都是用来过滤数据但是PreWhere仅仅支持表引擎为*MergeTreePreWhere的性能是Where的数十倍之多,CLK内部默认开启了优化操作,就算写的是Where,底层也会优化成PreWhere,不过官方还是建议尽量多的使用PreWhere需要主要注意的是,PreWhere也会有失效的情况如下图所示:分区查询和字段裁剪没什么好说的,基本所有组件都是这种情况,尽量避免select*这种写法,最好

2022-02-27 14:49:02 1279

原创 [大数据学习之ClickHouse]11-ClickHouse高级进阶之参数优化

CLK的配置项主要在 config.xml 或 users.xml 中, 基本上都在 users.xml 里,找到后直接修改即可CPU资源内存资源

2022-02-27 14:36:32 1108

原创 [大数据学习之ClickHouse]10-ClickHouse高级进阶之表级别优化

本篇文章主要聊一下CLK中的表级别优化操作时间字段的类型CLK与HIVE两者虽然都是用天来进行分区规则,但是不同的点就是,HIVE的日期字段是STRING,CLK的官方建议是时间戳字段直接使用DATATIME或者是Long类型的(INT32)如果使用STRING也不是不可以,CLK底层也会将STRING给转化成LONG(INT32)去存储,或多或少会影响点性能create table t_type2( id UInt32, sku_id String, total_amount D.

2022-02-24 18:30:19 420

原创 [大数据学习之ClickHouse]09-ClickHouse高级进阶之EXPLAIN

CLK的EXPLAIN只有在20.6.3之后的版本才可以使用基本语法:EXPLAIN [AST | SYNTAX | PLAN | PIPELINE] [setting = value, ...] SELECT ... [FORMAT ...]一些可选项了解即可,常用的还是EXPLAIN SQL这种语法CLK有一个强大的语法就是SYNTAX语法优化,当使用这种语法的时候CLK会返回给你一个被CLK内部优化过后的SQL语句供你使用EXPLAIN SYNTAXSELECT a.UserID

2022-02-23 15:45:02 594 2

原创 [大数据学习之ClickHouse]08-ClickHouse之分片集群

分片集群在企业中用的比较少,一般都是集群模式,分片模式下查询的性能会受到影响,同时会增加集群的复杂性,所以本文主要是了解下CLK支持该模式即可,不必深究写入流程internal_replication这个参数一般都是为true,如果改为false,会增大distribute(master)的压力读取流程...

2022-02-23 15:42:17 670

原创 [大数据学习之ClickHouse]07-ClickHouse之副本机制

简述CLK的副本机制,通俗点理解,其实就是高可用当某个CLK的节点出现宕机的情况,也可以即时的从其他节点获取数据需要注意的是:CLK的副本机制,必须依赖于ZK写入流程配置步骤1.启动ZK2.编写外部文件拓展:如果不使用引用外部文件的方式,可以直接修改CONFIG.XML中指定的ZK模块vim /etc/clickhouse-server/config.d/metrika.xmlvim /etc/clickhouse-server/config.xml重启服务sudo

2022-02-22 16:10:22 265

原创 [大数据学习之ClickHouse]06-ClickHouse之TTL操作

CLK的TTL其实和MONGODB的TTL功能类似 都是针对数据进行生命周期的管理 不同的是CLK不光可以针对列进行TTL的操作还可以针对某张表进行TTL的操作针对列进行TTL操作:到期后,指定的字段数据归 0针对表进行TTL操作:alter table t_order_mt3 MODIFY TTL create_time + INTERVAL 10 SECOND;官方提供的API中也可以建表的时候指定当然,TTL也支持移动数据TTL d + INTERVAL 1 MONTH [D.

2022-02-21 12:04:48 1742

原创 [大数据学习之ClickHouse]05-ClickHouse之SQL操作

传统关系型数据库支持的SQL语句,CLK基本都支持1.insert语法一致,不过多做讲解2.UpDate/DeleteCLK支持修改和删除操作,但是不支持事务,并且语法和传统数据库有区别,删除和修改用的比较少一点删除:alter table t_order_smt delete where sku_id ='sku_001';修改:alter table t_order_smt update total_amount=toDecimal32(2000.00,2) where id

2022-02-21 11:59:41 837

原创 [大数据学习之ClickHouse]04-ClickHouse表引擎之SummingMergeTree/ReplacingMergeTree

ReplacingMergeTreeReplacingMergeTree是MergeTree子集,是MergeTree的一个变种,与MergeTree几乎无差别,仅仅比MergeTree多了一个去重的功能需要注意的是:数据去重的时间是未知且无法把控的数据的去重是在合并过程中操作的数据的去重只能在分区内,无法跨分区ReplacingMergeTree无法保证数据完全没有重复举个例子:以创建时间为去重依据(如果不指定去重依据,那么就按照插入顺序保留最后一条,如果去重依据相等,还是按照

2022-02-20 13:15:43 744

原创 [大数据学习之ClickHouse]04-ClickHouse表引擎之MergeTree

表引擎的概念表引擎决定了如何存储表的数据,表引擎必须在创建表的时候定义,并且表引擎的大小写必须区分表引擎的种类TinyLog顾名思义,以文件的形式存储,不支持索引和并发,生产几乎不用Memory基于内存,性能非常高(超过10G/s),但是容易丢数据,适合数据量不大的场景(1亿上限)MergeTree*****合并树,生产常用,也是CK最强大的引擎,需要重点掌握3.1.分区(可选参数)优化查询速度,一般都用时间字段来做分区,时间字段最好使用DATE类型 如果设定分

2022-02-20 12:44:08 847

原创 [大数据学习之ClickHouse]03-ClickHouse数据类型

1.整型固定长度的整型,包括有符号整型或无符号整型。整型范围(-2n-1~2n-1-1):Int8 - [-128 : 127] 等价于 ByteInt16 - [-32768 : 32767] 等价于 shoteInt32 - [-2147483648 : 2147483647] 等价于 intInt64 - [-9223372036854775808 : 9223372036854775807] 等价于 long无符号整型,从0开始的INT类型范围(0~2n-1):UInt

2022-02-18 11:26:19 862

原创 [大数据学习之ClickHouse]02-ClickHouse安装

1.准备工作1.1.关闭防火墙chkconfig iptables off1.2.取消文件数限制sudo vim /etc/security/limits.conf添加如下:* soft nofile 65536* hard nofile 65536* soft nproc 131072* hard nproc 131072sudo vim /etc/security/limits.d/20-nproc.conf发送到从节点scp /etc/security/limits

2022-02-17 18:24:11 530

原创 [大数据学习之ClickHouse]01-ClickHouse入门

ClickHouse简述1.ClickHouse是个列式存储数据库,与之对应的组件是HBASE,这俩都是列式存储数据库,主要用于OLAP方面2.ClickHouse支持SQL的大部分语法3.ClickHouse采用的是LSM Tree的结构,在数据导入的时候是顺序的append写,且写入的数据不可更改4.ClickHouse将数据给分成多个partition,并且将partition再次划分成多个索引,然后通过多个CPU来处理,这也就是ClickHouse为什么快的原因,一个单条查询语句就可以利用全

2022-02-16 11:55:46 569

原创 大数据面试题之Hadoop(一)

文章目录一、Hadoop是什么?二、Hadoop包含什么?2.1.HDFS-分布式数据存储系统2.2.Yarn-任务调度,资源分配2.3.MapReduce-分布式计算框架三、Hadoop的特点四、Hadoop各个版本的异同五、HDFS常见面试题5.1.NN,DN,SN的作用分别是什么5.2.HDFS读流程5.3.HDFS写(上传)流程5.4.SecondaryNameNode的工作机制一、Hadoop是什么?Hadoop是一个大数据的分布式存储和计算平台往大了说Hadoop是大数据的生态圈,往小.

2021-08-13 11:32:26 130

原创 Python数据分析:从0完成一个数据分析实战(2)

学习目标:从0-1的数据分析实战学习内容:1、 数据分析2、 数据汇总学习产出:1.1.数据可视化# 导入matplotlib中的pyplotimport matplotlib.pyplot as plt# 为了使matplotlib图形能够内联显示%matplotlib inline# 导入词云库from wordcloud import WordCloud,ImageColorGenerator#按州总捐款数和总捐款人数柱状图# 各州总捐款数可视化st_amt = c_

2020-12-29 17:59:38 162

原创 Python数据分析:从0完成一个数据分析实战(1)

学习目标:从0-1的数据分析实战学习产出:

2020-12-28 22:01:23 327

原创 Python基础进阶:魔法方法

学习目标:掌握Python进阶知识学习内容:1、 类与对象学习产出:1.1.魔法方法的概念魔法方法总是被双下划线包围,例如__init__。魔法方法是面向对象的 Python 的一切魔法方法的“魔力”体现在它们总能够在适当的时候被自动调用。魔法方法的第一个参数应为cls(类方法) 或者self(实例方法)。cls:代表一个类的名称self:代表一个实例对象的名称1.2.基本的魔法方法init(self[, …]) 构造器,当一个实例被创建的时候调用的初始化方法cla

2020-12-27 13:47:29 119

原创 Python基础进阶:类与对象

学习目标:掌握Python进阶知识学习内容:1、 类与对象学习产出:1.1.对象的概念对象 = 属性 + 方法对象是类的实例。换句话说,类主要定义对象的结构,然后我们以类为模板创建对象。类不但包含方法定义,而且还包含所有实例共享的数据。class Student: name = "zhangsan" age = 10 def show(self): print("my name is", self.name)s=Student()#m

2020-12-26 19:58:35 159 1

原创 Python基础进阶:函数与lambda表达式

学习目标:掌握Python进阶知识学习内容:1、 函数2、 lambda表达式学习产出:1.1.函数的概念函数以def关键词开头,后接函数名和圆括号()。函数执行的代码以冒号起始,并且缩进。return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None。语法结构:def functionname (parameters):“函数_文档字符串”function_suitereturn [expression]1.2.函数的调用

2020-12-25 21:55:59 88

原创 Python基础入门:集合与序列

学习目标:掌握Python基础知识学习内容:1、 集合2、 序列学习产出:1.1.集合的创建先创建空集合再添加数据直接把一堆元素用花括号括起来{元素1, 元素2, …, 元素n}。重复元素在set中会被自动被过滤#第一种basket = set()basket.add('apple')basket.add('banana')print(basket) # {'banana', 'apple'}#第二种basket = {'apple', 'orange', 'appl

2020-12-24 16:28:31 63

原创 Python基础入门:字符串与字典

学习目标:掌握Python基础知识学习内容:1、 字符串2、 字典学习产出:1.1.字符串的定义Python 中字符串被定义为引号之间的字符集合。Python 支持使用成对的 单引号 或 双引号。t1 = 'i love Python!'print(t1, type(t1))# i love Python! <class 'str'>t2 = "I love Python!"print(t2, type(t2))# I love Python! <c

2020-12-23 16:35:22 158

原创 Python基础入门:列表与元组

学习目标:掌握Python基础知识学习内容:1、 列表2、 元组学习产出:1.1.列表的概念列表是有序集合,没有固定大小,能够保存任意数量任意类型的 Python 对象,语法为 :[元素1, 元素2, …, 元素n]。逗号将每个元素一一分开,中括号把所有元素绑在一起1.2.列表的创建创建一个普通列表x = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']print(x)创建一个混合列表mix = [

2020-12-22 16:51:05 255

原创 Python基础入门:异常与异常处理

学习目标:掌握Python基础知识学习内容:1、 异常2、 异常处理学习产出:异常就是程序在运行期间发生错误,计算机语言针对出现的错误定义了异常类型简而言之就是某种错误引发对应的异常时,异常处理程序将被启动,从而恢复程序的正常运行。1.1.python标准异常BaseException:所有异常的基类Exception:常规异常的基类StandardError:所有的内建标准异常的基类ArithmeticError:所有数值计算异常的基类FloatingPointError:

2020-12-21 14:43:09 72

原创 Python基础入门:条件语句与循环语句

学习目标:掌握Python基础知识学习内容:1、 条件语句2、 循环语句学习产出:1.1.if 语句语法结构if expression:expr_true_suiteif 语句的 expr_true_suite 代码块只有当条件表达式 expression结果为真时才执行,否则将继续执行紧跟在该代码块后面的语句。单个 if 语句中的 expression 条件表达式可以通过布尔操作符 and,or和not 实现多重条件判断。#如果2大于1并且2不大于3,输出

2020-12-20 20:00:16 134

原创 Python基础入门:变量,运算符与数据类型

Python基础入门:从变量到异常处理学习目标:Python入门学习内容:1、 变量、运算符与数据类型2、 位运算3、 条件语句4、 循环语句5、 异常处理学习产出:1.1.注释

2020-12-19 18:22:46 189 1

空空如也

空空如也

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

TA关注的人

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