自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 数仓|几种SQL隐藏的错误

本文分享几种书写SQL时常见的一些隐藏错误,主要包括:**在运算符中使用null值、在聚合数据时使用null值、求平均值时使用判断条件、滤条件中使用and和or、查询的列字段之间缺少逗号分隔、inner join与left join。**都是一些比较细节的点,希望本文对你有所帮助。在运算符中使用null值在SQL中常见的运算符有算术运算符(+,-),逻辑运算符(in,not in),比较运算符(>,<)等等。但是,如果参与运算的数据中存在null值,这个时候我们就要小心了,因为对于null值

2021-12-02 08:50:55 1409

原创 常见的存储格式

一般选用 orc 作为 数仓dw 的存储格式而采用avro的好处如下:1.数据附带schema2.hadoop和spark都通用3.sqoop抽取数据时,使用该格式,可以防止 数据含特殊符号 /t /n /r ,而自动换行

2022-02-15 23:26:22 1555

原创 Schema上传备份的shell/python脚本

直接上代码#!/usr/bin/env bash# 上传# /bin/bashworkhome=/opt/sqoop/one_makehdfs_schema_dir=/data/dw/ods/one_make/avscbiz_date=20210101biz_fmt_date=2021-01-01local_schema_backup_filename=schema_${biz_date}.tar.gzhdfs_schema_backup_filename=${hdfs_schema_di

2022-02-15 22:51:46 1109 1

原创 用sqoop将Oracle数据全量/增量导入到HIve的Shell/python脚本(第二版)

全量导入#!/usr/bin/env bash# /bin/bashbiz_date=20210101biz_fmt_date=2021-01-01dw_parent_dir=/data/dw/ods/one_make/full_impworkhome=/opt/sqoop/one_makefull_imp_tables=${workhome}/full_import_tables.txtmkdir ${workhome}/logorcl_srv=oracle.bigdata.cnor

2022-02-15 22:17:23 2355 1

原创 ODS层的数据清洗

关于ODS层是否做数据清洗一直是存在争议的,但有一点是可以确定的,对于比较重的清洗工作是要留到后面数仓的ETL过程中进行处理。但是,有这么一种情况:我们在长期的生产实际过程中,发现部分已知的数据问题的处理可以通过自动化的方式来处理,这种方式通常在数据入库之前,做额外的加工处理后再做入库操作。数据清洗的主要工作是处理那些不符合要求的数据,从而提升数据质量,比如一些常见的问题:错误的数据、重复的数据错误的数据这种错误通常是业务系统处理不够健全造成的,比如字符串数据后面有回车空格、日期格式不正确、日期

2022-01-23 13:41:07 2968

原创 Spark中广播变量

1.广播变量的意义广播变量的好处,不需要每个task带上一份变量副本,而是变成每个节点的executor才一份副本。这样的话, 就可以让变量产生的副本大大减少,从而减少传输过程中的IO,减少存放变量的内存占用.2.下面一张高清大图说明广播的过程,Driver将数据collect到一起,然后将完整的数据分发到executors上,进行相应的处理3.广播变量的用法广播变量用法很简单,其实就是SparkContext的broadcast()方法,传入你要广播的变量,即可。context.broadca

2022-01-22 14:07:33 3118

原创 Spark的调度执行过程

以企业中常用的SparkOnYarn的cluster模式为例,解释Spark的调度执行过程:

2022-01-22 13:24:09 1517 2

原创 用sqoop将Oracle数据全量导入到HIve的Shell脚本(第一版)

前言: 这是本人写的Shell脚本,可用于 sqoop将Oracle数据全量/增量 导入到HIve中,也为大家提供了详细的注释运行条件:在linux中运行下面脚本时,需要传入时间参数,来记录每次导入的时间,来减少工作失误.#!/bin/bash##-----------------------------------------------------------------------------------------##--程序名称:抽取ORACLE表数据到HIVE##--功能描述: 每日

2022-01-14 12:59:00 929

原创 maven项目导入后右键无法运行main方法问题

maven项目在idea界面右侧有收起来的工具栏,其中有一个是 Maven Projects,点开点击 “+” ,选择需要启动工程的 pom 文件,点击 ok在右侧栏中就会出现该工程以及该工程下的所有子工程点击展开需要启动的工程 -> Lifecyle双击 instalIDEA ERROR:找不到或无法加载主类解决:检查你的编译输出路径File----project struture,如图...

2021-12-13 11:53:24 1091

原创 Flink的集群的搭建

部署方式分类1.Local 本地部署2. Standalone 使用Flink自带的资源调度平台进行任务的部署3. Standalone-HA高可用的部署方式4. Yarn 部署1. Local 本地部署应用场景:开发环境部署步骤:设置 JDK运行环境配置 SSH 免密登录下载并解压缩 Flink-1.13.1 到 /export/server修改配置文件jobmanager.rpc.address: node1开启flink环境查看web UI监控开启集群[root@n

2021-12-11 15:34:55 4333

原创 Flink实现高温预警

import com.google.common.collect.Lists;import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.api.common.state.ListState;import org.apache.flink.api.common.state.ListStateDescriptor;import org.apache.flink.api.common.typeinfo.

2021-12-08 20:45:59 619

原创 JavaFlink的相关依赖

FLINK依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org

2021-12-07 21:12:08 582

原创 Flink端对端的仅一次语义

数据处理语义的概念**批处理:**批处理任务失败,支持replay重跑就可**流处理:**需要机制能够保证任务出错或数据出错时能够保证数据是正确有效的。批注数据出现故障了(计算错误),还能进行恢复并重新计算,保证数据有效处理一次.在计算时:比如1+2+3+4+,在+5的时候报错,恢复后重新从+5开始计算,所以我们需要把中间结果通过checkpoint存起来在写出端,出现写入错误,重写时会出现重复,需要幂等写入或事务机制数据处理语义的分类At-least-Once 至少一次语义,允许重复At-M

2021-12-07 21:02:53 1840

原创 IDEA设置类注释和方法注释

- 类注释点击:File—>Settings---->Editor---->File and Code Templates —>Includes—>File Header:上图模板配置内容:/** * Created with IntelliJ IDEA. * @Author: 你的名字 * @Date: ${YEAR}/${MONTH}/${DAY}/${TIME} * @Description: 效果:/ + Tab 键*:- 方法注释点击

2021-12-02 13:18:21 204

原创 HBase集群的安装及其开启

HBase集群的安装和配置//详见安装文档, 注意: 在搭建HBase集群之前, 先把你的集群还原到教育项目之前的状态. 1. 上传. 拖拽 hbase-2.1.0.tar.gz 到 Linux系统的 /export/software 下2. 解压 tar -zxvf hbase-2.1.0.tar.gz -C /export/server/3. 修改配置文件. cd /export/server/hbase-2.1.0/conf vim hbase-env.sh export JAV

2021-11-12 18:21:33 757

原创 轻松理解字符串切片

s = 'abcdefg'print(s[0])print(s[-2])print(s[1:4])print(s[1:4:2])print(s[-1:1:-1]) # 数值依次表示 起始值,结束值,步长print(len(s))afbcdbdgfedc7# 注意左闭右开,起始下标从0开始

2021-09-02 18:00:40 1606

原创 RuntimeWarning: Glyph 19979 missing from current font.

出现汉字字体问题,需要设置如下代码:import matplotlib as mplmpl.rcParams['font.sans-serif'] = ['KaiTi', 'SimHei', 'FangSong'] # 汉字字体,优先使用楷体,如果找不到楷体,则使用黑体mpl.rcParams['font.size'] = 12 # 字体大小mpl.rcParams['axes.unicode_minus'] = False # 正常显示负号...

2021-09-02 15:01:47 463

转载 CAS底层实现原理

CAS底层实现原理1.首先什么是CAS?Compare And Swap =========>compareAndSwapInt,它是一条CPU并发原语。它的功能时判断内存的某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的。CAS并发原语体现在JAVA语言中就是sunmisc.Unsafe类中的各个方法。调用Unsafe类的CAS方法,JVM会帮我们实现CAS汇编指令。这是一种完全依赖于硬件的功能。通过它实现了原子操作,再次强调,由于CAS是一种系统原语,原语属于操作系统英语范畴

2021-08-17 16:23:11 682

原创 关于SELECT子句中使用聚合函数

在JPA查询语句中,可以通过SELECT子句返回一个聚合函数,如下所示:SELECT COUNT(app) FROM Bpp bpp,IN(bpp.apps) app语句将会统计app返回的数量。若通过SELECT子句返回多个列,并且其中某个列中使用聚合函数,如下所示,将会出现错误,例如:SELECT bpp.name,bpp.sex,COUNT(app) FROM Bpp bpp,IN(bpp.apps) app在SELECT子句中,若返回列中存在聚合函数,则非聚合函数部分一定需要在Group.

2021-07-23 10:59:58 1980

原创 虚拟机无法上网的原因

原因之一:虚拟机网关和镜像系统默认网关不一致1.将虚拟机网关和系统默认网关保持一致,即可。下图是虚拟机网关配置位置下图是系统配置网络中配置网关原理:虚拟机系统如果不能上网,需要借助网关来向外连接网络原因之二:虚拟机系统与主机系统配置问题1.让虚拟机IP地址与主机IP地址 前三段保持一致,后一段不同,如下图案例所示,两者IP分别是192.162.88.100和192.168.88.5具体操作详情如下1.1在虚拟机中 打开终端 键入:vim /etc/sysconfig/network-sc

2021-07-21 19:31:48 34248 8

转载 IO与NIO

1、阻塞与非阻塞阻塞与非阻塞是描述进程在访问某个资源时,数据是否准备就绪的的一种处理方式。当数据没有准备就绪时:阻塞:线程持续等待资源中数据准备完成,直到返回响应结果。非阻塞:线程直接返回结果,不会持续等待资源准备数据结束后才响应结果。2、同步与异步同步与异步是指访问数据的机制,同步一般指主动请求并等待IO操作完成的方式。异步则指主动请求数据后便可以继续处理其它任务,随后等待IO操作完毕的通知。老王烧开水:1、普通水壶煮水,站在旁边,主动的看水开了没有?同步的阻塞2、普通水壶煮水,去干点别

2021-07-08 19:26:11 62

原创 IDEA快捷键大全

-----------自动代码--------常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码例如要输入for(User user : users)只需输入user.for+Tab再比如,要输入Date birthday = user.getBirthday();只需输入user.getBirthday().var+Tab即可。代码标签输入完成后,按Tab,生成代码。Ctrl+Alt+O 优化导入的类和包Alt+Ins.

2021-07-07 16:41:24 543

原创 原反补码的经典题目解决过程

一 进制转换进制转换 答案1.二进制100110转八进制和十六进制 046与0x262.八进制25转二进制 0b10101 3.二进制10011转上十六进制 0X13 4.十六进制1f转二进制 0b111115.十六进制22转八进制 042 6.十六进制C转八进制

2021-07-06 22:13:21 355

php_redis各版本大全,从2.2.7到3.1.4版本

该下载包涵盖多个不同版本的php_redis拓展。Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

2019-04-21

空空如也

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

TA关注的人

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