- 博客(31)
- 收藏
- 关注
原创 lsm tree@hbase
众所周知传统磁盘I/O是比较耗性能的,优化系统性能往往需要和磁盘I/O打交道,而磁盘I/O产生的时延主要由下面3个因素决定寻道时间(将磁盘臂移动到适当的柱面上所需要的时间,寻道时移动到相邻柱面移动所需时间1ms,而随机移动所需时间位5~10ms)旋转时间(等待适当的扇区旋转到磁头下所需要的时间)实际数据传输时间(低端硬盘的传输速率为5MB/ms,而高速硬盘的速率是10MB/ms)...
2016-05-06 15:35:55
204
原创 linux bash基础之文本处理
通配符和正则表达式中有一定差异,通配符一般用于find、cp、ls等命令匹配文件名,而正则表达式是用来匹配文件中的字符串。文件匹配通配符作用?匹配一个任意字符*匹配0个或任意多个任意字符,也就是可以匹配任何内容[]匹配中括号中任意一个字符。例如:[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c。[-]匹配中括号中任意一个...
2016-05-04 21:00:15
277
原创 工厂模式
工厂模式分为:工厂方法模式和抽象工厂模式。 工厂方法模式先介绍下工厂方法模式,工厂方法从字面上来理解就是一个方法,根据传递的参数来构造对象。下面是一个例子:我们向工厂传递 “boy”,则会返回一个男员工,反之则返回女员工。 工厂方法类图 抽象工厂方法代码interface Human { public void Talk(); ...
2016-04-29 11:56:00
103
原创 数据开发方法论
由于公司数据平台对ETL开发工具做了比较好的封装,较大程度上面提升了开发效率,数据开发同学的主要工作集中在写SQL,疲于应付各种各样庞大的业务需求。不少同学认为做数据开发没技术含量,技术上面没提升,久而久之产生厌烦感。个人认为造成这种想法的主要原因是:通过ETL方式解决一个点的需求,没有站在一个全局的角度来思考问题,建设数据,没有任何沉淀和反思。对数据开发没有一个清晰...
2016-04-28 18:13:55
297
原创 java泛型之通配符
java语言是符合里氏替换原则的,即任何基类可以出现的地方,子类一定可以出现。 为了获取更大限度的灵活性,要在表示生产者或者消费者的输入参数上使用通配符类型,PS:通配符用于声明形参,不能用于类和创建对象上。 声明上下界list<? extends Number>:定义下界,说明List中可能包含的元素类型是Number及其子类List<? su...
2016-04-27 15:11:26
192
原创 jts使用整理
平时用过jts,但用到的只是局部功能,停留在简单使用阶段,对jts没有一个全面系统的认识,遇到问题不知道如何通过jts解决,这里通过jts做下简单梳理,希望以后遇到gis问题能借助jts来解决掉,避免重复造车。jts是围绕几何图形以及几何图形之间的算法、数据结构展开的,我们从几何图形数据结构算法以及常用操作来切入代码。关键组件:Geometry所有几何图形的抽象,且方法都是线...
2016-04-21 18:13:08
1538
原创 异步I/O编程
场景:9点上班时,发现9点半有一个需求评审会场景理解JAVA NIO之前先了解下Linux IO类型是非常有帮助的。缓存 I/O缓存 I/O 又被称作标准 I/O,大多数文件系统的默认 I/O 操作都是缓存 I/O。在 Linux 的缓存 I/O 机制中,操作系统会将 I/O 的数据缓存在文件系统的页缓存( page cache )中,也就是说,数据会先被拷贝到操作系统内核的缓...
2016-04-21 14:05:08
221
原创 分布式系统基础
所谓分布式系统简单来说就是通过一些手段将计算能力以及存储能力分散到多台服务器上面,随之带来了一些问题涉及数据分布、数据复制、一致性、容错等。分布式系统面临的第一个问题就是数据分布,即将数据均匀地分布到多个存储节点。另外,为了保证可靠性和可用性,需要将数据复制多个副本,这就带来了多个副本之间的数据一致性问题。分布式系统中的服务器故障率很高,要求系统能够在软件层面实现自动容错。比如当存储节...
2016-04-21 11:55:06
231
原创 hive分析函数
遇到以下问题如何解决?查询客户各个日期的历史累积购买金额查询每个客户第一次(首购)或前N次购买记录查询每个客户最后一次购买记录某活动推广后,每天的累积数据查询客户每天的历史累积购买金额历史累积hive 语法:SELECT userid user_id, pay_datekey pay_datekey, pay_amount pay_amou...
2016-04-19 11:12:04
198
Lru Cache
题目:https://leetcode.com/problems/lru-cache/大学课本在讲操作系统的时候提及LRU可基于双向链表以及map来实现: 其中双向链表用于调整优先级,根据LRU规则淘汰对象; map主要用于快速查询。 将题目分解:get 操作涉及优先级调整set 操作涉及优先级调整以及淘汰操作将题目转化为实现head()以及evict()...
2016-04-19 10:48:25
100
原创 java多线程
现在的计算机,cpu在计算的时候,并不总是从内存读取数据,它的数据读取顺序优先级是:寄存器-高速缓存-内存。线程耗费的是CPU,线程计算的时候,原始的数据来自内存,在计算过程中,有些数据可能被频繁读取,这些数据被存储在寄存器和高速缓存中,当线程计算完后,这些缓存的数据在适当的时候应该写回内存。当多个线程同时读写某个内存数据时,就会产生多线程并发问题,涉及到三个特性:原子性,有序性,可见性。 支...
2016-04-19 09:54:21
168
原创 mysql索引解析
在mysql中,索引是存储引擎用于快速查找到目标记录的一种数据结构。常见的索引类型包含B树索引、哈希索引、空间索引(R-Tree)、全文索引等。索引是在存储引擎层实现的,不同的存储引擎对索引的工作方式并不一样。下面重点介绍B树索引以及innodb和myisam存储引擎。选择B树的原因读写磁盘代价最高的环节是寻道,按照顺序访问范围数据是很快的,这有两个原因:顺序I/O不需要...
2016-04-19 09:53:07
115
原创 linux bash基础之流程控制
条件语句算术比较条件通常被放置在封闭的中括号内。一定要注意在[或]与操作数之间有一个空格。如果忘记了这个空格,脚本就会报错。例如:[ $var-eq 0 ] var等于0时,返回真 ; [ $var-ne 0 ]var为非0时,返回真重要的操作符:语法作 用-gt大于。-lt小于。-ge大于或等于。-le小于或等于-...
2016-04-19 09:52:57
123
原创 linux性能监测
一个完整运行的 Linux 系统包括很多子系统(介绍,CPU,Memory,IO,Network,…),监测和评估这些子系统是性能监测的一部分。我们往往需要宏观的看整个系统状态,也需要微观的看每个子系统的运行情况。系统由若干子系统构成,通常修改一个子系统有可能影响到另外一个子系统,甚至会导致整个系统不稳定、崩溃。所以说优化、监测、测试通常是连在一起的,而且是一个循环而且长期的过程,通常监测...
2016-04-18 15:40:39
130
原创 并发编程底层
本文从操作系统层面和硬件层面介绍了并发编程需要了解的一些底层内容,知道底层知识对理解并发和写好多线程程序有较大的帮助,做到知其然并知其所以然。操作系统任务类型任务可以划分为I/O消耗性和处理器消耗型:I/O消耗型是指进程大部分时间用来提交I/O请求或者等待I/O请求,这样的进程经常处于可运行状态,但是通常都是运行短短的一会儿,因为他在等待更多的I/O请求时最后会阻塞。...
2016-04-18 15:38:47
93
原创 地理信息检索
在工程实践中需要解决以下问题:1)检索门店附近一定范围内的活跃顾客,之后可以对顾客进行营销,比如通过push方式给顾客发送促销消息,从而达到拉新的目的 2)检索空间指定区域内,如某个商圈内或者某个商场内的顾客,进行有针对性的营销 3)判断点在哪个区域内,比如查询用户所在的商圈、所在的大学等等。这些功能作为基础服务,需要系统具备很高的性能,低时延、高吞吐。本文主要介绍如何实现:1)检索指定坐...
2016-04-18 15:38:16
440
原创 数据仓库基础
数据仓库是一个面向主题的、集成的、稳定的、反映时间变化的,用于支持管理决策的数据集合, 需要具备可读性,保证数据一致。数据仓库有两位大师 William H.Inmon 和 Ralph Kimball。Inmon 是正统的学术派,比较强调自上而下的建模,强调从源系统的业务与数据出发,在企业全局高度进行业务对象抽象,建立企业级数据仓库系统。Kimball 是强调从数据仓库应用角度出发,自...
2016-04-18 15:36:44
251
原创 数据仓库建设碎念
数据仓库呈现给数据应用人员的是一张张数据表,而仓库建设人员要解决的关键问题是:如何对客观世界的复杂业务逻辑进行建模,高效组织数据,将模型转化成数据表,最大化的发挥数据价值,应对业务变更以及进行上层业务支撑。如果数据组织不好,将会产生大批垃圾数据, 如果数据不被使用,建设数据仓库也就毫无用处。数据开发数据仓库严格来说是一种体系结构,在工作过程中,有的同学认为数据开发相对系...
2016-04-07 12:03:39
184
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人