自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (5)
  • 收藏
  • 关注

原创 数据建模方法论

如何理解数据仓库从事数据开发后,再回头来看一看数据仓库的定义:数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。那么如何理解这几个关键词:面向主题的:主题(topic),即分类,专题分析。这里引入了主题模型的思想,实际操作中将数据按照业务线、业务模块层层细分。比如先划分大的业务域,每个业务域再按照业务过程划分数据域(一级、二级、三级数据域)。集成的:数仓系统和生产系统通常是隔离的,把跨源的、分散的多个业务DB的数据同步到数仓系统,按照一系列模...

2021-08-23 01:51:30 1394

原创 数仓模型-数据同步模型

数仓模型中ods层最容易忽略的就是数据删除操作,本文将介绍数据同步过程中对于删除数据的几种处理方法。首先假定我们的数据都是从mysql binlog同步到数仓的ods层。那么拉取binlog有两种方式(增量和全量),如果再细分的话就是每天增量或全量同步,和一次性增量或全量同步。如果是增量同步,则还需要和历史全量进行merge,在merge的时候要处理的问题有:1.如何处理insert、update、delete数据?2.如何处理数据飘移问题?先假设mysql表的结构如下:--mys

2021-04-08 23:42:37 634

原创 数仓模型-实时数据中台

模型演进:维度建模-> 宽表模型 -> dw模型 -> 子域模型数据模型子域模型:借鉴领域建模,面向领域对象,将稳定的子域业务逻辑进行沉淀,每一个子域都是dwd,再将所有的子域dwd合成数据中台dwd,最后再分流到各业务线,进行业务逻辑的开发。 事实表:事务事实表、周期快照事实表、累计快照事实表 实时数据中台:抽取业务系统中的公共部分成为服务,具备了对于前台业务变化及创新的快速响应能力。 中台既要全链路统一拉横,又要做薄 中台覆盖率80%,提效降本,快速支撑业务 子域

2021-04-08 23:39:43 718

原创 数仓模型-实时-合单模型

父子订单混合在一个表是一种比较常见的模型,按道理说一个事实表最好不要混用不同粒度的行,但是现在存在这种模型,对于实时任务的关联成本比较高。本文主要记录一下对于这种合单模型的优化,以减少关联次数。问题描述:A0是父订单,A1和A2是子订单,最终要把A0打横在A1和A2上。--合单===>主表:a(id)A0A1A2===>关系:relation(id1,id2)A1 ,A0A2 ,A0由于父子单混合,所有的表里面都区分不出来主子单,只能先全部关联。a是主表,b和c都是从

2021-04-08 23:18:47 297

原创 数仓模型-增全量合并

ods层数据同步时经常会遇到增全量合并的模型,即T-1天增量表 + T-2全量表 = T-1全量表。可以通过full outer join脚本来完成合并,但是数据量很大时非常消耗资源。本文将为您介绍在做增量数据的增加、更新时如何通过full outer join改写left anti join来实现的最佳实践。常规合并方法:insert overwrite table tb_test partition(ds='${bizdate}')select case when a.id is not n

2021-03-29 20:44:44 1565 1

原创 Proxmox集群网络配置

用过vmware和virtualbox的人大概都知道虚拟机是怎么回事儿,这种虚拟化软件通常装在windows环境下,而且是单机环境。那么随着云计算与大数据的发展,虚拟化技术也是得到了极大的发展,比如分布式的虚拟化软件OpenStack和Proxmox VE等。对于这4种常用的虚拟化软件我的使用感受就是在windows上virtualbox比vmware好用,服务器上Proxmo...

2018-12-16 20:14:10 28395 2

原创 VMware NAT模式连接hadoop/spark集群

VMware的网络模式一直不好配置,参考了很多教程也讲得不是很清晰,于是自己折腾了很久终于整理出一个清晰的版本供大家参考。配置坑爹的vm网络配置说明:vm三个虚拟网卡对应三种网络模式1.Vmnet0 桥接模式:虚拟机和主机ip在同一个网段,虚拟机拥有独立的ip,可以双向访问;2.Vmnet1 主机模式:虚拟机处于独立网段,虚拟机不能上网,只能宿主机单向访问虚拟机;3.Vm...

2018-10-14 21:51:52 809

原创 动态规划与排列组合二项式的关系

前言:最近做各大厂的笔试题,发现动态规划和排列组合的题挺多的,于是认真研究了一下,写在这里备忘。1.先抛出数学上的公式当a=b=1的时候,该二项式变成了,这就是二进制下的递推关系了。虽然二项式有很多特性,但是在计算机中我们只关注两个特征:即递推关系和边界条件,对应着两个公式:也就是动态规划的状态方程和初始状态,如上图所示的两个关系,这样看着很抽象,那么先看如下图的推导:...

2018-08-10 22:04:15 1742

原创 CCProxy是个好东西

我在之前的博客里提到了用Teamviewer + CCProxy做内网穿透,当时只是简单提了一下,因为发现这种方式网速比较慢。今天又用到了它,虽然慢点,但是总比没的用好,哈哈哈。不得不感叹CCProxy是个好东西,小巧灵活,好多次用学校的ip下论文都靠它的,设置也比较简单。代理上网本质上和代购一样,只要内网机器能访问的网络,你的机器通过代理连上它,就都能远程访问。A. 可以直接使用CCProxy开...

2018-05-30 16:52:52 107543 4

原创 Spark SQL的ThriftServer服务和图形化客户端

通常我们是在控制台输入命令:spark-sql进入命令行界面:这是大多数人最喜欢用的,也最熟悉的界面。除了这种方式,还可以借助第三方的客户端来接入Spark SQL,常用的windows下图形客户端有:SQuirreL SQL Client、DbVisualizer和Oracle SQL Developer等。那么这三个图形界面都是用的ThriftServer作为服务端,而客户端的SQL请求实际是...

2018-05-26 00:28:34 4726 2

原创 spark之kryo 序列化

几乎所有的资料都显示kryo 序列化方式优于java自带的序列化方式,而且在spark2.*版本中都是默认采用kryo 序列化。因此本文将做kryo 做一个测试以验证其性能。1.先给出定义:    把对象转换为字节序列的过程称为对象的序列化。    把字节序列恢复为对象的过程称为对象的反序列化。通俗地说序列化就是把内存(jvm)中一个对象的状态通过网络传输,或者保存到磁盘上,反序列化与之相反。2....

2018-05-26 00:12:19 10459 2

原创 Spark读取hbase表的几种方式

刚刚五一节,差点忘了还有个博客需要更新,赶紧上来码点字。开工把!!!环境:hadoop3.0+Spark2.2+hbase1.2+phoenix4.12基本上是都是比较新的环境,而且也比较稳定。但是hbase相对来说有点老了,但也还好。这个版本的hbase1.2还没有提供spark直接访问的api,我在github上面看到新版的提供了,但是没安装成功(:-),于是将就了。在spark中读取hbas...

2018-05-02 22:47:24 23219 3

原创 win7利用cygwin配置sshd服务

linux服务器可以很方便的ssh。但是如果是window server的话,要想使用ssh服务,就需要先安装一个模拟终端环境,注意是按在sshd服务端,而不是ssh客户端。只有安装了服务端才有ssh的环境,才能通过客户端如(xshell)登上去。首先下载cygwin_setup-x86_64.exe链接:点击打开链接安装过程中要手动选择SSH 包:输入ssh查找,Net default里面的op...

2018-04-23 16:51:40 1583

原创 内网穿透和远程开机

今天讲一个比较使用的技巧:内网穿透和远程开机应用场景:回家之后想访问公司内网的服务器或者其他资料;或者不在学校时想通过学校的内网下载论文、远程选课等等;或者在寝室想要远程控制实验室的电脑,远程开机等等。这里就分为几种情况了:1.内网出口由固定公网ip (百度ip即可看到你的公网ip),一般公司都会购买一个固定的公网ip 2.内网出口没有固定公网ip,一般是拨号上网(每次拨号ip都会变化)其次搞清楚...

2018-04-23 16:01:51 12392 2

原创 Storm 多语言支持

Storm作为真正的实时流处理系统比spark的伪实时流更好。Storm用java开发很方便,但是除了支持java语言,还支持其他多种语言。1.对于JVM语言比较简单, 直接提高DSL封装Java即可。2.对于非JVM语言就稍微复杂一些, Storm分为两部分, topology和component(blot和spout):对于topology用其他语言实现比较easy, 因为nimbus是thr...

2018-04-22 22:10:17 2115

原创 linux Web控制台

前段时间做一个hadoop+Spark的性能监控页面时,需要一个web控制台远程登陆到master节点上去,后来发现这方面资料太少,于是自己参照着零散的东西修修改改,终于做出了一个简单的web shell,记录一下以免时间长了忘记。大概像这个样子的:这样就可以在网页上直接访问linux服务器了,初衷是用来远程关闭正在运行的spark任务的,做发现出来之后一般的linux命令都能执行。首先讲一下后台...

2018-04-18 17:03:57 11430 7

原创 hadoop+Spark+hbase集群动态增加节点

如果一个集群资源不够用需要扩展的时候怎么办,那么是可以不关机动态扩展的,具体操作如下:已有集群:192.168.111.11 lyy1 ---master节点192.168.111.12 lyy2192.168.111.13 lyy3192.168.111.14 lyy4新增:192.168.111.15 lyy5192.168.111.16 lyy6开始:1.从lyy1节点克隆出两台...

2018-04-17 11:38:47 893

原创 Hbase压缩文件

首先来点Hbase常用命令:查看所有表:list查看表结构 describe 'stu'统计条数:count 'stu', INTERVAL => 100000hbase org.apache.hadoop.hbase.mapreduce.RowCounter 'stu'清空表:truncate 'stu'删除表:disable 'int_s6a'drop 'int...

2018-04-15 23:29:52 905

原创 Spark SQL常用读写接口

Spark2.0以后都是SparkSession作为程序入口的,这样的好处是便于使用Dataset<Row>的接口。按照日常需求,将其大致分为三类:1.读接口,即取数据2.写接口,即存数据3.操作接口,即计算数据这三类大致将Spark使用频率很高一些方法整理到一起,可以在使用的时候方便查阅。-----end-----...

2018-04-15 23:06:09 1631

原创 Spark sql 数据迁移

数据迁移当然可以使用sqoop,但是我使用的时候发现配置不当有很多错误,使用起来很麻烦,于是自己就用了最原始的方法来迁移数据,熟练步骤了其实也很快,给大家一个参考一、迁移一张表查看表结构:desc table tb1;查看建表sql语句:show create tabletb1;1.同一个数据仓库中复制表和数据,使用CTAS语句;常用的三种方案:a.完全复制拷贝:create table tb2 ...

2018-04-12 22:05:40 2546

原创 Phoenix命令及语法

基本命令:首先sqlline.py lyy1,lyy2,lyy3,lyy4:2181登录到Phoenix的shell中,可以使用正常的SQL语句进行操作。!table查看表信息 !describe tablename可以查看表字段信息!history可以查看执行的历史SQL!dbinfo!index tb;查看tb的索引help查看其他操作导入数据: 在phoenix 目录下执行hado...

2018-04-12 17:16:32 23864

原创 Hbase+Phoenix 安装及基本操作

1.安装Hbase:     解压:tar-zxvf hbase-1.2.1-bin.tar.gz     重命名:mvhbase-1.2.1  hbase 2.配置环境变量exportJAVA_HOME=/usr/local/software/jdk1.8.0_66exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar...

2018-04-12 17:08:31 6801 1

原创 java GC垃圾回收机制

垃圾收集器(collector)主要关注两个方面:1. 找到所有存活的对象2. 清除掉不可用对象在所有收集器中,都是通过标记(Marking)的方法找到存活对象的。 一、标记可访问对象现在JVM中所有的GC算法都是从找出存活对象开始的。下图形象的展示了JVM中各对象之间的引用关系:      首先,GC定义了一些GC Roots对象。一般来说,GC Root是由以下对象组成:本地变量以及当前正在执...

2018-04-12 16:50:26 285

原创 Java分页思想在分批次入库和多线程操作中的应用

    java web分页思想很常用,本质思想是:由于数据量太大,一页显示不完的,所以需要分页显示。那么分页核心就是如何计算每一页的起始下标。    分页思想总结起来就是分批次处理,除了用在web页面的分页,还适用于数据库入库和多线程操作等应用场景。    只要掌握了其原理,便可举一反三。    解析开始:   1.总共有 len 条数据,但每次只能处理 batchSize 条记录,所以需要分为...

2018-04-12 15:10:38 823

原创 Java实现掷骰子控制台和窗体两种实现方法

程序目标:同时3掷骰子,让骰子转动若干次后停下来的正面朝上的数字之和大于9 则为大,小于等于9则为小用于需要提前选择押大还是小,程序结束返回是否押中的结果。1.掷骰子控制台实现本程序分为三层:表示层 :用类Player2 实现                                业务逻辑层:类DiceGame2 实现                                数据/技...

2016-10-19 17:15:01 9856 6

原创 Java反射的简单例子

 反射技术: 通过配置文件动态获取类,仅在配置文件中添加类名,而不用修改源码当程序写好后直接在配置文件里添加新增类名就可以了public class ReflectTest { public static void main(String[] args) throws Exception { NoteBook nb = new NoteBook(); nb.run(); // nb...

2016-10-19 13:27:07 500

原创 Java正则表达式之网页爬虫

这是一个爬虫简单示例:到网络中获取指定规则的数据 像贴吧、天涯里面的留邮箱发资料的帖子里面有很多号码、邮箱。就可以通过这个程序获取显示到控制台通过传一个url地址,程序将获取网页里面的所有邮箱。 如果要获取电话号码,将正则表达式改动一下就可以public class NetSpider { public static void main(String[] args) throw

2016-10-19 13:19:58 981

原创 Java窗体实现飞机躲子弹游戏

前几天做了Java窗体实现飞机躲子弹游戏,我觉得很有必要做个笔记方便以后自己和他人查阅。主要功能是:在一个窗体里面,用方向键盘控制飞机图片移动来躲避满屏的子弹。由于篇幅的关系,这里主要做一个整体的文字介绍,代码在连接里,有详细注释。http://download.csdn.net/detail/sinadrew/9657817Java飞机躲子弹游戏 定义工具类在cn.util包下面1.Consta...

2016-10-19 12:00:16 5682

机器学习数学教程,高数、线代、概率论

机器学习相关的数学教程合集,总共四本:高数上 下、线代、概率论

2018-12-16

windows终端模拟环境cygwin

win7配置sshd服务。 windows终端模拟环境,类似于linux的ssh

2018-04-23

Spark SQL分批入库

List list= spark.sql(sql).collectAsList(),获或者其他方法将数据存在List里面,然后就list转为 Dataset分批入库

2018-04-13

WEKA应用技术与实践.pdf

《数据挖掘与机器学习:WEKA应用技术与实践》借助代表当今数据挖掘和机器学习高水平的著名开源软件Weka,通过大量的实践操作,使读者了解并掌握数据挖掘和机器学习的相关技能,拉近理论与实践的距离。全书共分8章,主要内容包括Weka介绍、Explorer界面、KnowledgeFlow界面、Experimenter界面、命令行界面、Weka高级应用、WekaAPI和学习方案源代码分析。  作为国内第一本系统讲解Weka的书籍,《数据挖掘与机器学习:WEKA应用技术与实践》内容全面、实例丰富、可操作性强,做到理论与实践的统一。本书适合数据挖掘和机器学习相关人员作为技术参考书,也适合作为计算机专业高年级本科生和研究生教材或教学参考用书。

2017-09-26

Java窗体实现飞机躲子弹游戏

主要功能是:在一个窗体里面,用方向键盘控制飞机图片移动来躲避满屏的子弹。

2016-10-19

空空如也

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

TA关注的人

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