- 博客(134)
- 资源 (8)
- 收藏
- 关注
翻译 SQL中的各种Join
本文简单说明一下SQL中两张表的各种关联(不包括cross Joins和自关联),主要简单说明一下以下7种关联INNER JOINLEFT JOINRIGHT JOINOUTER JOINLEFT JOIN EXCLUDING INNER JOINRIGHT JOIN EXCLUDING INNER JOINO
2017-02-14 18:24:16
1142
原创 CentOS6/7安装MySQL5.7
1、添加MySQL Yum源使用MySQL官方提供的Yum源,包含了最新的MySQL server。CentOS 7wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpmCentOS 6wget http://dev.mysql.com/get/mysql57-comm
2017-01-02 14:30:52
1015
原创 MySQL JSON检索
MySQL5.7版本开始支持JSON格式,在创建表时,可以指定列表的数据类型为JSON,但是如何在JSON格式上创建索引呢??本人做了一个简单测试。第一步:建立一个包含JSON类型的表:CREATE TABLE `json_test` ( `id` int(8) NOT NULL AUTO_INCREMENT, `
2016-12-31 20:53:31
1355
原创 online db如何做字段扩充
声明:部分内容来自网络收集需求 线上User表目前存在四个字段user(uid, name, passwd, nick),现在需要增加两个字段age, sex,变为user(uid, name, passwd, nick, age, sex)背景 目前user表数据量较大,且并发请求量较大解决方案:方案一、alte
2016-12-17 16:30:36
955
原创 浅谈服务化
最近一直从事公司服务化改造,服务标准化和服务治理相关的工作,再次期间有幸和公司技术大牛探讨了服务化和微服务相关的知识。 服务并非与生俱来的,微服务的概念也是近一两年才不断发扬光大,早期的系统可以成为单体应用,非常简单,前面是View层,中间是业务层,最底层就是DB,如下图所示: 这个架构非常简单,适合一般小型系统,调试也很简单,而且能够快速实现需求。此时Service也可以理解为一个服务
2016-07-08 00:12:16
769
2
原创 浅谈flywaydb
一般来说,软件发布应该包含文档、代码和DB脚本等,在发布上线时,一般都需要先执行DB脚本,再启动软件,犹豫一些疏忽之类,经常容易出现数据库未升级导致软件发布失败的场景,因此一些组件提供了启动自动执行DB的操作,例如hibernate提供了auto_ddl的属性,能够根据实体类自动进行DDL操作,但是对于数据的升级,例如需要插入初始数据或者修改数据库数据时,一般只能靠发布者手动执行。 flywayd
2016-04-02 21:40:27
7986
原创 程序员与创业公司的那些事儿-----写在离职当天
很不幸,今天又要办离职手续了.....又一次创业公司的失败经历......在连续待过2家创业公司之后,宝宝的心是累的,同时也总结了一些程序员在选择创业公司时应当注意的事项。虽说待过的两家公司不太靠谱,但是与其他初创公司相比,已经相当好了,至少不用讨薪,年终也有点年终奖,从这个方面来说,也算是一种幸运,但是从某些方面来讲,也不是很靠谱。如果程序员进入初创公司只是为了一份工作的话,那其实完全没有必
2016-03-04 16:41:00
1362
原创 简单说说服务治理
一般在系统比较小或者业务初期,传统的系统就是一个单机的J2EE,分为DB层、业务层、接入层。这种结构在较小项目或者初期能够满足绝大部分需求,但是随着业务量或者用户量的增加,发现这种原始结构以及无法满足,可能是业务层的业务逻辑过重,也可能是用户规模的扩大,导致单机已经无法满足。因此需要进行分布式拆分,一般都会想到按照业务模型,将业务层拆分成各个模块,分别部署,各个模块之间通过RPC之类的协议调用
2016-02-20 14:11:26
3176
原创 Dubbo spring mvc整合示例
Dubbo是阿里开源的一套SOA框架,开源在GitHub上,地址:https://github.com/alibaba/dubbo,目前我司主要用thrift做RPC调用,一直想研究一下dubbo,抽时间写了写了一个简单的demo,已经开源到本人GIT,地址https://github.com/michael8335/dubbo-demo,基于最新版本的dubbo实现,其中只需要配置zookeep
2016-01-10 22:26:47
700
原创 MySQL批量快速写
MySQL写速度确实不敢恭维,但是通过MySQL自带的一些功能,可以提高其写的执行效率。1、将insert into tab(col1,col2) value(value1,value2)的单条写修改为insert into tab(col1,col2) values(value1,value2),(value3,value4),...(valueN,valueN+1)批量写2、如果一次需
2015-12-17 15:38:49
1378
原创 关于程序员面试的一点点看法
最近稍微有点忙,博客也许久没有更新了,主要是进入初创公司,业务发展较快,版本迭代也较快,工作上的事儿比较多,而且人手比较短缺,所以把博客给荒废了。来新公司半年多了,加之在老东家也做过一些招聘,就简单说一下招聘中遇到的一些事儿吧,当然主要是谈谈招聘Java研发过程中的事儿首先,Java经过多年的发展,已经有一大批Java技术人员,程序猿里面,估计1/3都是搞Java的,所以导致现在Java技
2015-07-25 11:44:34
935
原创 Apache Drill1.0安装
Apache Drill已经关注一段时间了,之前一直在孵化器中,现在终于发布了第一个正式版本,其实现主要参考了Google Dremel。Drill 是Apache开源的一个大数据查询引擎,设计用于支持大数据应用快速查询半结构数据和不规则数据,其提供了ANSI SQL,同时内置了Apache Hive和Apache HBase插件。在大数据处理方面,其提供了一直新的解决方案。目前虽未对其
2015-05-21 19:54:39
1436
原创 对HBase的一些个人看法
HBase是Google Big Table的一个开源实现,关于其基础和架构网上很多,这里就不一一说明,转一篇,这里主要谈谈我个人对Hbase的看法1、查询:都知道HBase查询快,因为其实基于内存查询,Hbase在写入的时候,优先写入MemStore,这个MemStore就是内存了,查询的时候也就是从内存中返回,所以从这个方面Hbase可以理解为一个分布式缓存,跟平时的缓存没有差别
2015-03-07 17:36:02
1379
原创 流式计算-Jstorm提交Topology过程(下)
紧接上篇流式计算-Jstorm提交Topology过程(上),5、上篇任务已经ServiceHandler.submitTopologyWithOpts()方法,在该方法中,会实例化一个TopologyAssignEvent,相当于创建了一个topology级别的作业,然后将其保存到TopologyAssign的任务队列中,具体代码如下:TopologyAssignEven
2014-11-20 21:18:39
2657
原创 流式计算-Jstorm提交Topology过程(上)
Topology是Jstorm对有向无环图的抽象,内部封装了数据来源spout和数据处理单元bolt,以及spout和bolt、bolt和bolt之间的关系,它可以被提交到Jstorm集群。本文以Jstorm自带的SequenceTopology简单介绍一下Jstorm提交topology的过程,本文主要介绍提交过程,不涉及具体业务,1、 SequenceTopology核心方法c
2014-11-18 18:41:16
3961
原创 流式计算-Jstorm简介
流式计算:对大规模流动数据在不断变化的运动过程中实时地进行分析,捕捉到可能有用的信息,并把结果发送到下一计算节点。
2014-11-17 20:12:36
2769
1
原创 Apache Commons IO简介
虽然Google的guava对Java的IO操作进行了一定封装,但是它更偏向于集合、并发和缓存,在实际项目中,我非常喜欢guava,同时我也非常喜欢Apache的一个工具包org.apache.commons.io,这两个工具包提供非常强大的工具能力,能够简化代码逻辑,提高开发效率和质量,是每个Java程序员都应该掌握的工具包。此文简单介绍一下org.apache.commons.io,详细的可参
2014-11-08 21:59:46
3313
原创 Zookeeper原理与实战
目录Zookeeper简介ZooKeeper安装Curator常用API及其原理Zookeeper在PtBalancer中的应用演讲文档
2014-09-10 14:22:12
1808
原创 Java GC专家之路-浅析GC
1、对象不可达:没有任何其他对象引用该对象由于Java 自动垃圾回收机制的存在,所以使得Java程序员不必关心代码申请的内存空间需要释放的问题,但是,如果我们代码写的不好还是存在内存泄露的风险,因此熟悉GC能够应该是一个优秀Java程序员必备的技能,同时,选择合适的GC算法对我们开发的系统也很重要。本篇是Java GC专家之路的第一篇,主要对GC做一个简单的介绍,下一篇将介绍分析GC的状态和G
2014-07-16 14:48:03
947
1
原创 Hadoop源码导入Eclipse
需要进一步学习hadoop、需要看看内部源码实现,因此需要将hadoop源码导入都eclipse中,简单总结一下,具体步骤如下:首先确保已经安装了git、maven3、protobuf2.5、如果没有安装需要提前安装一下1、下载hadoop源码git clone git://git.apache.org/hadoop-common.git2、进入hadoop-common目录,
2014-07-04 17:03:22
2888
1
原创 浅析Java CompletionService
JDK的CompletionService提供了一种将生产新的异步任务与使用已完成任务的结果分离开来的服务,生产者 submit 执行的任务。使用者 take 已完成的任务,并按照完成这些任务的顺序处理它们的结果。例如,CompletionService 可以用来管理异步 IO ,执行读操作的任务作为程序或系统的一部分提交,然后,当完成读操作时,会在程序的不同部分执行其他操作,执行操作的顺序可能与
2014-06-12 22:01:34
2496
1
原创 谨慎使用MySQL auto_increment
在使用MySQL中,经常会在表中建立一个自增的ID字段,利用自增ID能够快速建立索引,也是MySQL官方比较推荐的一种方式,但是,这种方式在大量数据且配置主从时,可能会出现由于自增ID导致同步失败的情况首先需要了解一点Mysql主从同步主要通过bin log来同步,而MySQl中bin log最大值为1G, 这种情况触发条件如下:1、数据库配置主从同步2、表存在自增ID
2014-06-09 19:34:19
4056
3
原创 Redis学习笔记-Java连接Redis
在Redis官方给出了下列Java客户端这里主要介绍一下两种使用Jedis来连接Redis的方法:1、通过Jedis对象,每次创建一个连接2、通过Jedis提供的连接池,用连接池连接Redis源码如下:package com.yf.redis;import redis.clients.jedis.Jedis;import redis.clients.jedis.J
2014-03-24 21:30:18
2587
原创 Redis学习笔记-Redis安装
Redis 是完全开源免费的,遵守BSD协议,先进的key - value持久化产品。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets)和 有序集合(sorted sets)等类型。由于在未来可能使用该产品,所以提前开启学习征程。Redis现在稳定版本为2.8.7,下面就简单说一下安装步骤,本人操作系统为Ce
2014-03-23 17:10:25
737
原创 利用JExcelAPI操作Excel Sheet
有时候,需要用Java读写(很多时候是写)Excel,生成报表之类的需求,JExcelAPI是一个开源的Java操作Excel工具,其还能对多个Sheet进行操作,且API非常简单易懂下面是一个利用JExcelAPI写入和读取Excel的例子,非常简单package com.yf.jxl;import java.io.File;import java.io.IOException;
2014-03-23 15:12:39
1055
原创 使用Java8优化Fibonacci数
Fibonacci数的定义如下:在Java中,该算法的非常好容易实现public static long fibonacci(int x) { if(x==0 || x==1) return x; return fibonacci(x-1) + fibonacci(x-2);}但是该算法存在严重的效率问题:对于每一个数字,该算法会递归调用自身两次,其中每次
2014-03-22 19:34:05
1068
原创 MySQL字符串追加和截取
一些Python脚本保存数据库中,今天需要将MySQL数据库中,“Python XXXX.py”修改为绝对路径,即“/usr/bin/python XXXX.py”,这里就需要用到MySQL的字符串连接函数CONCATCONCAT(str1,str2)返回字符串str1,str2连接后的结果,例如原表:mysql> select * from student;+----
2014-03-19 13:56:36
1075
原创 MapReduce编程实例(二)-MR2操作MySQL
MR2中如果需要从数据库中读取或者写入数据,需要自己实现Writable和DBWritable两个接口,同时还需在DBConfiguration对数据库的元信息做相应配置。下面这个例子是Hadoop自带的,只是将数据库改为MySQL,在执行之前需要将Java连接MySQL的驱动上传到每台机器的${HADOOP_HOME}/share/hadoop/common路径下这里需要说明两点:1
2014-03-18 17:29:00
1244
原创 图文详解Apache Ambari 1.4.4安装
Apache Ambari 1.4.4安装指南操作系统:CentOS6集群机器列表:hadoop.master.com(192.168.1.204)hadoop.slave1.com(192.168.1.205)hadoop. slave2.com(192.168.1.206)ambari server安装节点及用户hadoop.master.com/root前
2014-03-14 17:00:10
2744
YARN内存配置计算脚本
2014-07-14
slf4j-nop-1.5.8
2010-07-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人