- 博客(216)
- 资源 (6)
- 收藏
- 关注
转载 mysql全量同步到postgresql中
1 rds_dbsync (推荐使用)《MySQL准实时同步到PostgreSQL, Greenplum的方案之一 - rds_dbsync》这个效率最高,支持不落地,支持流式导入,支持单表并发(通过配置文件,写WHERE条件,拆成多个并发导同一张表)。用法以CentOS 7.x x64为例。mysql2pgsql已打包所有依赖包,可以不安装pgsql和mysql。不过你如果想...
2019-11-29 10:27:42
2343
转载 MySQL准实时同步到PostgreSQL, Greenplum的方案之一 - rds_dbsync
背景rds_dbsync是阿里云数据库内核组开源的一个数据实时同步工具。可以解析MySQL的binlog,或者PostgreSQL的WAL日志,实现增量的实时同步。同时支持全量不落地迁移功能。rds_dbsync功能介绍1、全量不落地迁移(从mysql到pgsql,从pgsql到pgsql,从mysql或pgsql到Greenplum)。支持并行。2、DDL转换3、增量...
2019-09-11 11:43:01
4237
转载 强监管下 协议支付会是互金平台救命稻草?(协议支付是代扣协议的升级版)
近期,第三方支付的快捷支付、代扣代付渠道骤然收紧,导致多个行业不同程度受到影响,互金受到的冲击最为直接明显。尤其是消费金融和P2P网贷行业,因为对监管尺度的负面预期,情绪上的恐慌大于对业务的实际影响。第三方支付再出重磅文件 银行直连“一刀切”据南方都市报报道,3月20日网联刚刚下发了“42号文”,督促第三方支付机构接入网联渠道。文件同时要求6月30日前,所有第三方支付机构与银行的直连都...
2019-04-08 15:47:25
568
转载 聊聊Greenplum的那些事
开卷有益——作者的话有时候真的感叹人生岁月匆匆,特别是当一个IT人沉浸于某个技术领域十来年后,蓦然回首,总有说不出的万千感慨。笔者有幸从04年就开始从事大规模数据计算的相关工作,08年作为Greenplum 早期员工加入Greenplum团队(当时的工牌是“005”,哈哈),记得当时看了一眼Greenplum的架构(嗯,就是现在大家耳熟能详的那个好多个X86框框的图)...
2019-03-28 19:51:19
1635
1
原创 关于一条sql从mysql或postgresql等数据库中查出大量数据而不造成内存溢出的方法
场景:我们在做大量数据导出的时候,单条sql导出几千万级别以上数据容易造成内存溢出,采用limit有时候也不方便,而且如果在数据仓库中做这种操作的时候,复杂sql可能会很慢,这样分成limit后,每条sql都执行几分钟,那效率可也太低了。解决关键: jdbc驱动的fetchsize,然后查询使用resultset遍历1.对于mysql,我们只需要在driverurl后面加上:useCurs...
2019-03-13 16:27:48
4572
原创 关于jdbc向mysql和postgresql批量插入大量数据时候的优化!
1.对于mysql数据库,driverurl中加入:allowMultiQueries=true&rewriteBatchedStatements=true; 这样在使用jdbctemplate插入的时候,类似:private void insertData(JdbcTemplate insertJdbcTemplate, String insertCoreSql, List<...
2019-03-13 16:05:34
6494
2
转载 MySQL binlog 增量数据解析服务
1. 起因做过后端开发的同学都知道, 经常会遇到如下场景:后端程序根据业务逻辑, 更新数据库记录 过了几天, 业务需求需要更新搜索索引 又过了几天, 随着数据需求方的增多, 结构改成发送数据到消息中间件(例如 Kafka), 其他系统自行从消息中间件订阅数据传统程序结构所有涉及到类似需求的代码中都写了各种发送消息中间件的代码, 冗余, 易错, 而且难以保证一致性. 那么问题来...
2018-10-22 15:49:11
2290
原创 常用lambda表达式
package othertest;import org.junit.Before;import org.junit.Test;import org.springframework.test.context.TestPropertySource;import java.util.*;import java.util.function.Function;import java.ut...
2018-08-31 15:42:43
667
转载 数字证书原理,公钥私钥加密原理
文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出! 1、基础知识 这部分内容主要解释一些概念和术语,最好是先理解这部分内容...
2018-08-22 16:17:04
388
原创 easypoi大数据导出,感觉真的好用
我用的这个poi版本<!-- poi依赖 --> <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-base</artifactId> <versi...
2018-08-21 16:00:06
18114
4
原创 linux shell脚本连接mysql数据库并使用sftp上传文件
#!/bin/bashdb_host="xxx.xxx.xxx.xx"db_port="3870"db_user="xx"db_pwd="xxxxxxxxxx"db_name="xx"#当天文件对应id,需配置report_id="301"date=`date --date='0 days ago' "+%Y-%m-%d"`db_sql="
2018-08-21 15:37:35
771
转载 linux grep正则表达式与grep用法详解
正则表达式只是字符串的一种描述,只有和支持正则表达式的工具相结合才能进行字符串处理。本文以grep为例来讲解正则表达式。grep命令功能:输入文件的每一行中查找字符串。基本用法:grep [-acinv] [--color=auto] [-A n] [-B n] '搜寻字符串' 文件名参数说明:-a:将二进制文档以文本方式处理-c:显示匹配次数
2018-02-05 15:04:29
35466
原创 mycat-web使用
先去 http://dl.mycat.io/ 下载mycat-web-1.0的linux包上传到服务器并解压。安装zookeeper到对应服务器,快速安装可参考: http://blog.youkuaiyun.com/u012572955/article/details/78910393 然后进入mycatweb 解压目录 ,运行 : ./start.sh然后配置mycat服务管理:
2018-01-24 11:51:12
874
原创 mycat配置全局系列号,采用db方式
先要在对应datanode节点上创建相关表(我这里用的是dn1):#创建表CREATE TABLE MYCAT_SEQUENCE ( name VARCHAR (50) NOT NULL comment "名称", current_value INT NOT NULL comment "当前值", increment INT NOT NULL DEFAULT 100
2018-01-23 18:03:02
439
原创 linux下mycat快速安装与简单使用
建议学习mycat之前先下载mycat权威指南一书,先整体看一遍。先去mycat官网:http://dl.mycat.io/下载对应版本的mycat-server,我这里使用的是Mycat-server-1.6.5-release-20180122220033-linux.tar.gz上传到linux服务器。解压:tar -zxvf Mycat-server-1.6.5-release
2018-01-23 16:21:00
522
原创 mysql安装报错:The server quit without updating PID file.
一般是因为没有创建mysql数据系统数据表或创建mysql系统表失败。进入对应目录执行以下语句:./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql如果提示没有权限,请赋予mysql目录最高权限。如果提示缺少模块,请安装: yum -y
2018-01-23 10:35:04
324
原创 kafka伪分布式安装
必须先安装zookeeper,参考:解压文件至 /usr/local/tanlei/kafkacluster/tar -zxvf kafka_2.11-0.9.0.1.tgz这里只创建了2个节点,复制两个节点:cp -r ./kafka_2.11-0.9.0.1/ ./kafka1cp -r ./kafka_2.11-0.9.0.1/ ./kafka2
2017-12-27 15:06:20
575
原创 zk伪分布式集群快速安装
zk伪分布式集群:将文件拷贝至:/usr/local/tanlei/zkcluster 下并解压:tar -zxvf zookeeper-3.4.10.tar.gz复制3个节点zk1,zk2,zk3,cp -f ./zookeeper-3.4.10/ ./zk1/cp -f ./zookeeper-3.4.10/ ./zk2/cp -f ./zookeeper-3.
2017-12-27 11:35:28
666
原创 idea基本设置
1.设置maven仓库file -> other settings -> default settings 搜索maven,修改maven home directory和User settings file 和local respository和对应setting.xml里面一样2.设置jdkfile -> other settings -> default project...
2017-11-30 14:12:33
651
转载 常用正则表达式
正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。正则表达式经常被用于字段或任意字符串的校验,如下面这段校验基本日期格式的JavaScript代码:var reg = /^(\\d{1,4})(-|\\/)(\\d{1,2})\\2(\\d{1,2})$/; v
2017-08-24 10:40:38
586
原创 spring boot配置logback日志输出
文件目录结构:application.properties内容:#默认使用application-local.properties,logback-my.xml中也将使用name="local"输出日志spring.profiles.active=localserver.port=8090#定义logback的名字,否则默认名字必须为:logback-spring.xml
2017-08-09 15:36:24
3130
1
原创 ajax(cors跨域)最简单输出json数据方法,无需第三方框架或代码
/** * cors输出json数据 * @param response * @param json json字符串 * @param domain 需要跨域的域名 */ protected void outputCrossString(final HttpServletResponse response, final String json, final String do
2017-06-07 17:33:16
1397
原创 zookeeper的java操作方式详解
1.创建会话://zk创建会话public class ZkSessionDemo1 implements Watcher{ private static CountDownLatch latch = new CountDownLatch(1); //计数器为1 @Override public void process(WatchedEvent event) { Sys
2017-04-25 14:32:33
831
原创 zookeeper客户端命令操作
1.创建:create [-s] [-e] path data acl-s或-e分别指定节点特性:顺序或临时节点。默认情况不添加的时候创建的是持久节点。执行:create /zk-book 123会在根节点下创建一个/zk-book的节点,并且节点内容数据为123.create最后一个参数是ack,它是用来控制权限的,缺省状态下不做任何权限控制。2.读取:l
2017-04-25 11:26:38
374
原创 zookeeper安装
1.下载zookeeper-3.4.6.tar.gz并解压在固定目录2.重命名并复制解压后的zookeeper为3份,并创建对应的目录,如下:在zk1_data,zk2_data,zk3_data下分别创建myid文件,内容分别为1,2,3.在zookeeper1,zookeeper2,zookeeper3目录下分别创建zoo.cfg文件,内容如下:zookeeper1
2017-04-25 10:34:41
292
原创 poi之大数据量导出
dom4j dom4j 1.6.1 mysql mysql-connector-java 5.1.35 org.apache.poi poi 3.10-FINAL org.apache.poi poi-ooxml 3.10-FINAL org.apache.poi poi
2017-03-15 10:01:38
1904
转载 cookie 跨域访问的解决方案
Cookie 同域单点登录 最近在做一个单点登录的系统整合项目,之前我们使用控件实现单点登录(以后可以介绍一下)。但现在为了满足客户需求,在不使用控件情况下实现单点登录,先来介绍一下单点登录。 单点登录:多个不同系统整合到统一加载个平台,用户在任何一个系统登录后,可以访问这个统一加载上的所有系统。登录之后,用户的权限和信息不再受某个系统的限制,即使某个系统出现故障(包
2017-03-10 15:59:24
3738
转载 nginx+keepalive实现高可用负载均衡
一:实验环境主nginx负载均衡器:10.192.203.201 (通过keepalived配置了VIP:10.192.203.106供外使用)副nginx负载均衡器:10.192.203.102(通过keepalived配置了VIP:10.192.203.106供外使用)后端代理的web服务器:10.192.203.201:8110.192.203.102:81--由于
2017-02-28 11:34:02
1097
转载 内置锁和显式锁的区别(java并发编程第13章)
任何java对象都可以用作同步的锁, 为了便于区分, 将其称为内置锁.JDK5.0引入了显式锁: Lock及其子类(如ReentrantLock, ReadWriteLock等). 内置锁和显式锁的区别有: 1. 可中断申请如果使用synchronized申请一个内置锁时锁被其他线程持有, 那么当前线程将被挂起, 等待锁重新可用, 而且等待期间无法中断. 而
2017-02-17 16:06:03
1631
转载 配置ThreadPoolExecutor(java并发编程第8章)
Executors的静态方法newCachedThreadPool, newFixedThreadPool, newScheduledThreadPool所返回的线程池都是ThreadPoolExecutor对象或者其子类对象. ThreadPoolExecutor提供了多种配置, 可以根据实际定制合适的线程池. 线程的创建和销毁ThreadPoolExecutor构造函数
2017-02-17 10:02:28
918
转载 中断线程(java并发编程第7章)
启动线程之后, 大多数时候我们等待线程运行完成后自动结束. 但是有时我们希望可以提前终止线程的运行:1. 用户申请取消时. 比如用户点击了取消按钮.2. 时间限制的任务. 有些任务具有时间限制, 如果在一定的时间内仍然没有得到想要的结果, 我们可能希望终止该任务的运行.3. 发生特定的事件时. 比如多个线程同时在不同的位置搜索某一文件, 当其中一个线程搜索到了想要的文件,
2017-02-16 15:31:17
338
转载 处理不可中断的阻塞(java并发编程第7章)
并不是所有的阻塞都是可中断的, 比如InputStream.read方法. 在检测到输入数据可用, 到达流末尾或者抛出异常前, 该方法一直阻塞. 而且阻塞的时候不会检查中断标记, 所以中断线程无法使read从阻塞状态返回. 但是关闭流可以使得read方法抛出异常, 从而从阻塞状态返回. Java代码 public class ReaderThread extends
2017-02-15 19:15:04
1964
原创 Java正确处理InterruptedException的方法(java并发编程第7章)
要想讨论正确处理InterrupedtException的方法,就要知道InterruptedException是什么。根据Java Doc的定义Thrown when a thread is waiting, sleeping, or otherwise occupied, and the thread is interrupted, either before or durin
2017-02-15 16:39:51
3711
1
转载 使用CompletionService批处理任务(java并发编程第6章)
如果你向Executor提交了一个批处理任务,并且希望在它们完成后获得结果。为此你可以保存与每个任务相关联的Future,然后不断地调用timeout为零的get,来检验Future是否完成。这样做固然可以,但却相当乏味。幸运的是,还有一个更好的方法:完成服务(Completion service)。CompletionService整合了Executor和BlockingQueue的功能。你
2017-02-15 09:49:00
356
原创 java线程池介绍(java并发编程实战第6章)
为什么需要使用线程池? one-thread-per-request可能带来的问题:1. 线程的创建和销毁会占用一定的资源. 如果请求频繁而对请求的处理是轻量级的(大多的web请求符合该情形), 创建一个线程处理请求后将其销毁的方式是不划算的.2. 过多的线程导致线程切换频繁, 用于处理请求的CPU时间反而会减少. 如果当前的线程数已经让CPU处于忙碌状态, 那么增加更多的线程不会
2017-02-10 18:03:57
328
原创 一个线程通信问题(sub运行10次,然后main运行100次,这样交替循环50次)
/** * sub运行10次,然后main运行100次,这样交替循环50次 * @author Administrator * */ public class TraditionalThreadCommunication { /** * @param args */ public static void
2017-02-10 17:46:00
565
转载 设计高效的线程安全的缓存(java并发编程实战5.6)
几乎每一个应用都会使用到缓存, 但是设计高效的线程安全的缓存并不简单. 如:Java代码 public interface Computable { V compute(A arg) throws InterruptedException; } public class ExpensiveFunction
2017-02-10 16:58:49
3024
转载 信号量(java并发编程实战5.5.4)
用途:用来控制同时访问某个特定资源的操作数量,或者同时执行某个指定操作的数量。计数信号量可以用来实现某种资源池,或者对容器施加边界。 public class SemaphoreTest { private final Set set; private final Semaphore sema; public SemaphoreTest(int bound){ t
2017-02-10 16:25:37
315
原创 栅栏(java并发编程实战5.5.4)
栅栏类似于闭锁,它能阻塞一组线程直到某个事件发生。栅栏与闭锁的关键区别在于,所有线程必须同时到达栅栏位置,才能继续执行。闭锁用于等待事件,而栅栏用于等待其他线程,且能够重复执行。import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;public clas
2017-02-10 15:42:49
1413
原创 闭锁之future(java并发编程实战5.5.2)
1、FutureTask计算通过Callable实现,等价于一个可携带结果的Runnable,并有3个状态:等待、运行和完成。完成包括所有计算以任意的方式结束,包括正常结束、取消和异常。2、一旦FutureTask进入完成状态,会永远停止在这个状态。3、Future.get的行为依赖于任务的状态。如果已经完成,get得到返回结果。否则被阻塞直到任务转入完成状态,然后返回结果或抛出异常。
2017-02-10 14:31:20
374
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人