自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_654603797

贵在坚持

  • 博客(123)
  • 收藏
  • 关注

原创 HiveSQL解析json数组

我们可以通过以下办法解析json数组 :先通过正则表达式将数组中的 , 用 ; 代替:select regexp_replace('[{"website":"www.baidu.com","name":"百度"},{"website":"www.taobao.com","name":"淘宝"}]', '\\}\\,\\{','\\}\\;\\{');结果:[{"website":"www.baidu.com","name":"百度"};{"website":"www.tao...

2020-09-07 19:16:15 3573 2

原创 PostgreSQL 用户自定义函数FUNCTION创建及调用(完整)

PostgreSQL函数也称为PostgreSQL存储过程。PostgreSQL函数或存储过程是存储在数据库服务器上并可以使用SQL界面调用的一组SQL和过程语句(声明,分配,循环,控制流程等)。 它有助于您执行通常在数据库中的单个函数中进行多次查询和往返操作的操作。您可以在许多语言(如SQL,PL/pgSQL,C,Python等)中创建PostgreSQL函数。要在 PostgreSQL 定义一个新的用户自定义函数,需要使用CREATE FUNCTION语句,如下所示:CREAT...

2020-05-19 13:42:40 34752

原创 PostgreSQL insert update 常用操作及insert用法区别

创建测试数据表create table student (id int constraint idx_id primary key,name varchar(20) constraint cst_name not null); 插入数据insert into student values(1,'lens');1. 根据字段,当id冲突时更新name值insert into student values(1,'y5935') ON CONFLICT(id) d...

2020-05-17 22:37:58 5047

原创 python3 pip install 安装时 No module named 'pip' 问题解决及pip国内源更改、升级

在使用pip install时,出现如下问题:因为这个错误导致 pip找不到,可以首先执行python -m ensurepip ,如下图所示然后执行python -m pip install --upgrade pip 即可更新完毕。pip国内镜像源更改:例如:阿里云: http://mirrors.aliyun.com/pypi/sim...

2020-05-06 17:08:42 3990

原创 Anaconda3 安装使用及常见问题详解(附国内清华镜像)

Anaconda(官方网站)是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。 Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 选择自己需要的版本,点击下载就可以。 此处我用的是centos6.5,Anaconda3-5....

2020-04-24 22:26:44 1754

原创 Elasticsearch-SQL 使用SQL查询Elasticsearch 安装及JDBC实现过程(附图片详解)

Elasticsearch的查询语言(DSL), Elasticsearch-SQL可以用sql查询Elasticsearch。Elasticsearch-sql的项目地址:https://github.com/NLPchina/elasticsearch-sql1、Elasticsearch-sql实现的功能:1)插件式的安装2)SQL查询3)超越SQL之外的查询4...

2020-04-18 11:52:22 2436

原创 Kettle8.2连接ElasticSearch7.x插件

一、下载kettle8.2的发布版源码包,具体地址:https://github.com/pentaho/pentaho-kettle/releases?after=8.1.0.6-R二、下载kettle8.2发布版工具,具体地址:https://community.hitachivantara.com/s/article/data-integration-kettle...

2020-02-25 14:57:59 4153 7

原创 Linux全局替换文件具体内容

grep表达式两边的是间隔号 `` 【大键盘数字1左边那个键】,而不是'',否则会报“No such file or directory”的错误。linux环境下,因为历史原因,需替换某个目录下所有文件中的明文密码,比如将root目录下所有文件中的"www"替换为"test".

2023-05-30 15:48:49 366

原创 SQL生成整年日期表(全)

背景:折线图生成全年时间数据。

2022-09-29 18:04:13 3092 5

原创 Centos使用yum报错Loaded plugins: fastestmirror, refresh-packagekit

在安装完CentOS后需要修改yum源,才能够在安装更新rpm包时获得比较理想的速度。国内比较快的有163源、sohu源,这里以修改为163源。

2022-07-16 20:15:04 787 2

原创 ClickHouse跨集群表数据同步

ck提供remote函数,允许我们去查询远程的服务。直接跨集群传输,减少了I/O次数,进而大幅度提升了跨集群的数据传输,如数据备份,不同环境同步数据等效率。

2022-07-10 19:10:45 2117 2

原创 MySQL日志类型详解(全)

日志是 数据库的重要组成部分,记录着数据库运行期间各种状态信息。日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志。我们最关注的是二进制日志( )和事务日志(包括 和 ),这三种日志。逻辑日志:可以简单理解为记录的就是sql语句 。物理日志: 数据最终是保存在数据页中的,物理日志记录的就是数据页变更 。 是通过追加的方式进行写入的,可以通过 参数设置每个 文件的大小,当文件大小达到设定值之后,会生成新的文件来保存日志。数据库事务的四大特性里面有一个是 持久性 ,具体来说就是只要事务提交

2022-06-12 15:48:09 4255

原创 Hive调优之MapReduce详解

MapReduce会经历作业输入(Input)、业务处理接口Map、Map到Reduce之间数据传输的环节Shuffle、业务处理接口Reduce和作业输出(Output)五大环节。这5个环节还可以进一步分解成如下图:在Hive调优的过程中,我们不希望产生太多 的Map,而把计算任务的等待时间都耗费在Map的启动上;或者不希望生成太多的Map对某个文件进行操作,以免引起资源的争用。因此需要对Map进行控制(在Hive配置“set mapred.map.tasks=task数量”无法控制Map...

2022-05-28 17:49:00 3528 1

原创 ZooKeeper原理及应用详解(一)

背景: 多节点甚至多地部署,节点之间的数据一致性如何保证? 在并发场景下如何保证任务只被执行一次? 一个节点挂掉不能提供服务时如何被集群知晓并由其他节点接替任务? 存在资源共享时,资源的安全性和互斥性如何保证? 为解决分布式系统中面临的以上的一些挑战,在分布式环境下,需要一个协调机制来解决分布式集群中的问题,使得开发者更专注于应用本身的逻辑而不是关注分布式系统处理,保证分布式系统的数据一致性和容错性等。ZooKeeper是一个分布式的开源协调服务,为分布式...

2022-05-02 16:45:21 893

原创 常用Hive命令速查(全)

--hive模糊搜索表:show tables like '*name*';--查看表结构信息:desc table_name; desc formatted table_name;--查看分区信息:show partitions table_name;--加载本地文件:load data local inpath '/xxx/test.txt' overwrite into table dm.table_name;--从查询语句给table插入数据:insert overwri.

2022-05-01 11:54:05 1819

原创 MySQL数据库中delete、truncate、drop原理详解

删除数据的方式常用的三种删除方式:通过 delete、truncate、drop 关键字进行删除,这三种都可以用来删除数据,但场景却有所不同。执行速度:drop > truncate > deleteDELETE原理:DELETE属于数据库DML操作语言,只删除数据不删除表的结构,会走事务,执行时会触发trigger; 在 InnoDB 中,DELETE其实并不会真的把数据删除,MySQL实际上只是给删除的数据打了个标记为已删除,因此 delete 删除表中的数据时,表文件

2022-04-19 21:59:03 3303 1

原创 kettle邮件收件人动态传参处理

JOB文件中空白处鼠标右键 -》作业设置命令参数,设置传入参数设置邮箱参数sh /app/code/sql/CRONTAB/crontab_day/crontab_day.shcrontab_day.sh文件#!/bin/bash#kettle job flie jobFile='/app/code/sql/CRONTAB/crontab_day/crontab_day.kjb'KETTLE_HOME="/app/software/wor...

2022-03-22 22:02:20 985

原创 Hive的多种JOIN优化

案例一:select a.id,a.number,b.number,c.numberfrom table_tmp a join table_tmp b on a.id = b.id join table_tmp c on a.id = c.idwhere a.business = 'A'and b.business = 'B'and c.business = 'C'如上例中,Hive会对每对join连接对象启动一个MaoReduce任务。首先启动一个MapReduce job对表a和

2022-03-20 19:45:46 2062

原创 数据库“写时模式”与“读时模式”对比

schema on write与schema on readschema on write(写时模式)作用于数据源到数据汇聚存储之间,典型使用就是传统数据库。数据不管是在入库还是采用装载外部数据或者将一个查询的输出结果写入数据库或者是使用UPDATE语句,数据库存储对于在数据写入数据库时都需要对schema进行检查控制。因此写时模式需要预先设置schema。schema on read(读时模式)作用于数据汇聚存储到数据查询分析之间,数据先存储,然后在需要查询分析...

2022-03-19 17:12:10 4130

原创 java.net.ConnectException: Connection refused: no further information【已解决】

报错如下:java.net.ConnectException: Call From V_LZ/192.168.53.1 to hadoop2:8020 failed on connection exception: java.net.ConnectException: Connection refused: no further information; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused a.

2022-03-13 13:20:36 21485

原创 ClickHouse查看表详情信息

查看表、存储信息、压缩比等。select database, table, formatReadablesize(size) as size, formatReadableSize(bytes_on_disk) as bytes_on_disk, formatReadableSize(data_uncompressed_bytes) as data_uncompressed_bytes, formatReadableSize(data_compressed_bytes) as data.

2022-03-07 11:27:48 4335

原创 Sqoop常用导数shell脚本整理(全)

Hive2Oracle#!/bin/sh sqoop export \--table dw result_final \--connect jdbc:oracle:thin:@//10.0.0.1:1521/testdb \-username oracle_user \--password oracle_password \--export-dir /user/hive/warehouse/ads_hive.db/ads_result_final\--columns dt,city,co

2022-03-05 17:35:37 2272

原创 ClickHouse删除数据之delete问题详解

背景:

2022-02-22 21:21:58 23148

原创 Waterdrop之数据处理

背景及痛点:我们的确可以利用Spark提供的API对数据进行任意处理,但是整套逻辑的开发是个不小的工程,需要一定的Spark基础以及使用经验才能开发出稳定高效的Spark代码。除此之外,项目的编译、打包、部署以及测试都比较繁琐,会带来不少得时间成本和学习成本。除了开发方面的问题,数据处理时可能还会遇到以下不可逃避的麻烦:数据丢失与重复 任务堆积与延迟 吞吐量低 应用到生产环境周期长 缺少应用运行状态监控因此我们开始尝试更加简单高效的Spark方案,并试着解决以上问题。Databrick

2022-02-20 11:23:56 2629

原创 OLAP场景之利器ClickHouse

OLAP场景的关键特性:大多数数据库访问都是读请求。 数据总是以批量形式写入数据库(每次写入大于10001行)。 已添加的数据一般无需修改。 每次查询都从数据库中读取大量的行,但是同时又仅需少量的列。 数据表多为宽表,即每个表均包含大量的列。 查询量一般较少(非高并发,通常每台服务器每秒有数百个查询或者更少)。 对于简单查询,允许的延迟大约为50毫秒(响应时间要迅速)。 列中的数据相对较小,一般为数字或者短的字符串。 处理单个查询时需要高吞吐量(每个服务器每秒高达数十亿行)。

2022-01-09 18:53:44 483

原创 MapReduce工作原理图解

Map在读取数据时,先将数据拆分成若干数据,并读取到Map方法中被处理。数据在输出的时候,被分成若干分区并写入内存缓存(buffer)中,内存缓存被数据填充到一定程度会溢出到磁盘并排序,当Map执行完后会将一个机器上输出的临时文件进行归并存入到HDFS中。当Reduce启动时,会启动一个线程去读取Map输出的数据,并写入到启动Reduce机器的内存中,在数据溢出到磁盘时会对数据进行再次排序。当读取数据完成后会将临时文件进行合并,作为Reduce函数的数据源 。HDFS的读流程Client先..

2021-11-14 19:01:10 1840

原创 YARN工作流程详解

YARN基本组成:YARN的基本结构由一个ResourceManager与多个NodeManager组成。ResourceManager负责对NodeManager所持有的资源进行统一管理和调度。当在处理一个作业时ResourceManager会在NodeManager所在节点创建一全权负责单个作业运行和监控的程序ApplicationMaster。ResouceManager(简称RM):资源管理器负责整个集群资源的调度,该组件由两部分构成:调度器(Scheduler)和Applica

2021-11-14 17:49:14 6116 1

原创 Hive分区表增加字段新增字段为NULL解决方案

背景:数仓开发过程中,经常会有需求变更,添加字段的情况很难免,添加完了字段需要重新写数据,重新将这个字段的数据overwrite进去,但是会出现一个问题,就是加载的数据为NULL。新分区正常,无论是内部表还是外部表均有该问题。原因:使用alter table语句更新表结构时,由于默认更新现有表结构,对原有分区无改动,导致原有分区改变数据时,新字段为NULL测试过程:创建测试表:CREATE TABLE DEFAULT. COMPANYLEVEL_TEST(IDSTRING,PAR.

2021-11-13 14:24:47 2462

原创 SparkSQL overwrite插入Hive表数据重复问题

问题描述使用Spark SQL将DataFrame调用其API overwrite写入Hive,如果存在多个任务同时往一张hive表overwrite,那么会导致只有其中一个任务成功,另外其他的任务都失败的问题,并且写入的结果存在同一张表有重复的行链接:https://www.jianshu.com/p/26467e77fa16(7条消息) SparkSQL并发写入orc、parquet表的异常问题排查_u013332124的专栏-CSDN博客...

2021-11-07 20:25:23 4333

原创 Sqoop 导出数据 job failed with state Failed due to : task failed问题详解

环境:Sqoop1.4.7- CDH6.3.2原有Hive表statdate date类型Loaddate timpstamp原有目标oracle表Statdate date类型Loaddate varchar(20)出现问题:测试过程:原以为sqoop脚本或者数据库账号密码的问题,测试hive string类型数据导出至oracle varchar类型,成功。经百度,分割符,null 空值处理都没有问题;猜测可能是数据长度的问题,查验数据,没有too...

2021-10-28 11:10:25 3436

原创 PostgreSQL 之爆炸函数

一、regexp_split_to_table以逗号切分,转为数据集select regexp_split_to_table('aa,bb,cc,dd', ',' )正则匹配regexp_split_to_table('E:\文件\test.txt','\\') 二、regexp_split_to_array以逗号切分,转为数组select regexp_split_to_array('aa,bb,cc,dd', ',' ) ...

2021-10-10 19:03:11 1253

原创 MySQL登录出现ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘

出现错误详情:解决办法:# 第一步:找到mysql的安装目录,我的默认在/usr/local/mysql (不用去bin目录下)# 第二步:执行 sudo ./support-files/mysql.server start# 第三步:启动MySQL[root@hadoop2 mysql]# mysql -u root -p大功告成!...

2021-08-31 22:53:43 203

原创 Hive提取身份证号中年龄和性别

身份证的组成和结构:18位的居民身份证号:1.号码的结构公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。2.地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。3.出生日期码表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。4.顺序码表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序

2021-08-03 16:58:30 1505

原创 PostgreSQL和MySQL对比

下面我将从以下几个方面阐述MySQL和PostgreSQL的异同和优劣:开源性:PostgreSQL:The world’s most advanced open source database。开源协议:PostgreSQL基于自由的BSD/MIT许可,组织可以使用、复制、修改和重新分发代码,只需要提供一个版权声明即可。 PG的开源协议特别灵活,任何公司的和个人都可以把PG作为一个产品销售,而不需要像MySQL那样必须修改大部分代码才可以作为公司的产品。MySQL:World’s Mo..

2021-07-23 15:18:19 19546

原创 Hive数据屏蔽函数mask使用大全

Hive在2.1.0版本后,支持数据屏蔽函数(Data Masking Functions),可以用于数据的快速脱敏掩码处理。比如mask函数,默认会将查询回的数据,大写字母转换为X,小写字母转换为x,数字转换为n。当然也可以添加参数自定义转换的字母mask(string str[, string upper[, string lower[, string number]]]) ,upper定义大写字母转换,lower定义小写字母转换,number定义数字转换函数调用:mask("a

2021-07-23 11:15:37 2259 1

原创 Redis安装与介绍(详解)

Redis官网:https://redis.ioRedis简介REmote DIctionary Server(Redis) 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。​Redis通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。Redis编译安

2021-07-22 16:19:41 180

原创 大数据算法-蓄水池抽样算法(Reservoir Sampling)

背景:给定一个数据流,数据流长度N很大,且N直到处理完所有数据之前都不可知,从 N 个样本中随机选择 K 个样本,其中 N 非常大(以至于 N 个样本不能同时放入内存)或者 N 是一个未知数,请问如何在只遍历一遍数据(O(N))的情况下,能够随机选取出k个不重复的数据:数据流长度N很大且不可知,所以不能一次性存入内存。 时间复杂度为O(N)。 随机选取k个数,每个数被选中的概率为k/N。思路:假设数据序列的规模为n,需要采样的数量的为k。首先构建一个可容纳k个元素的数组,将序...

2021-07-22 10:57:06 312

原创 Linux中操作文件的SQL利器

背景:平常再使用Linux过程中,大家可能对tail、head、cat、sed、more、less这些经典系统命令,或者awk这类三方数据过滤工具都不陌生,配合起来查询效率很高。但往往使用过程中命令参数过多,可能就比较让人头疼。今天分享的工具q,就实现了以写SQL的方式来查询、统计文本内容,一起来看看:介绍:q是一个命令行工具,它允许在csv/tsv(以及任何其他表格文本文件)上直接执行类似SQL的查询。它的目的是为Linux命令行带来SQL表达能力,并提供对文本作为实际数据的轻松访问。

2021-07-21 17:45:50 196

原创 python调用shell的几种姿势

大家都清楚,python是一门易上手、简单灵活的胶水语言,能与多种语言进行交互,易用、入门和上手都比较简单,所以一直都被广泛使用。Python开发一些devops的自动化作业也是非常方便的,在Linux环境下,我们用shell编写自动化脚本,通常自动化作业复杂的话,使用shell脚本就很难搞定了,一方面,shell脚本量大了之后就会比较难以工程化,维护和阅读,另外shell是不具有编程语言丰富的类库,如map list在shell这里有版本影响。因此,这个时候python+shell两者相结合,直接交互

2021-07-13 16:15:43 276

原创 一文读懂MySQL索引(全)

何为索引?有什么作用?索引是一种用于快速查询和检索数据的数据结构。常见的索引结构有:B树,B+树和Hash.索引的作用就相当于目录的作用。打比方:我们在查询字典的时候,如果没有目录,那我们就只能一页一页的去找我们需要查的那个字,速度很慢。如果有目录了,我们只需要先去目录里查找字的位置,然后直接翻到那一页就行了。索引的优缺点:优点:使用索引可以大大加快数据的检索速度(大大减少检索的数据量),这也是创建索引的最主要的原因。 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。缺点:

2021-07-12 19:42:52 155 2

空空如也

空空如也

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

TA关注的人

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