首页
Zcyoop
取消

Flink - Flink DataStream端到端的Exactly-Once保障

1. Exactly-Once概述 ​ 一个一直运行的Flink Stream程序不出错那肯定时很好的,但是在现实世界中,系统难免会出现各种意外,一旦故障发生,Flink作业就会重启,读取最近Checkpoint的数据,恢复状态,并继续接着执行任务。 ​ Checkpoint时可以保证程序内部状态的一致性的,但是任会有数据重新消费的问题,举个简单的例子: ​ 一个简单的计算总和的...

Flink — 状态(State)&检查点(Checkpoint)&保存点(Savepoint)原理

Flink DataStream—— 状态(State)&检查点(Checkpoint)&保存点(Savepoint)原理 [TOC] 1. 背景 ​ 最近一次项目当中需要将大量数据保存再Flink程序当中用作缓存数据一共后续数据使用,隧对最近使用到的状态、检查点、保存点等原理和使用进行一个总结 2. 状态 2.1 概述 ​ 首先,状态和算子是息息相关的,所以...

Flink — 时间概念与Watermark

1. Flink的三种时间概念类型 对于流式处理,最大的特点是数据上具有时间的属性特征,Flink根据时间产生的不同位置分为三个时间概念: Event Time(事件时间):每条数据或事件自带的时间属性。由于时间属性依附于数据本身,在高并发的情况下可能存在Event Time的到达为乱序的,即一个较早发生的数据延迟到达 Process Time(处理时间):对于某个算子来说...

Socks5代理工作原理

Socks5代理工作原理 [TOC] 1. Socks5协议 以下摘自维基百科 SOCKS是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。SOCKS是”SOCKetS”的缩写[注 1]。 当防火墙后的客户端要访问外部的服务器时,就跟SOCKS代理服务器连接。这个代理服务器控制客户端访问外网的资格,允许的话,就将客户端的请求发往外部的服务器。 这个协...

Clickhouse - 数据迁移

背景 ​ 数据报表即将上线,需准备一个Clickhouse测试库用作后续开发 方案调研 迁移集群实际上就是要把所有数据库(system 除外)的表结构和数据完整的复制一遍。ClickHouse 官方和社区有一些现成的解决方案,也可以自己实现。 拷贝数据目录 先观察一下 ClickHouse 在文件系统上的目录结构(配置文件 /ect/clickhouse-server/confi...

Clickhouse 常用命令

数据表基本操作 -- 追加新字段 ALTER TABLE tb_name ADD COLUMN [IF NOT EXISTS] name [type] [default_expr] [AFTER name_after] ALTER TABLE testtable ADD COLUMN colum1 String DEFAULT 'defaultvalue'; -- 修改字段类型 ALTE...

MongoDB 在集群模式下Count也真实数据量不一致

1. 背景 在同步Clickhouse数据时,发现MongoDB数据量与Clickhouse数据量不一致,经同事提醒,可能是分片MongoDB集群Count不一致导致吗,于是Google查询相关资料 2.相关信息 通过查看官网发现中有解释这种现象的解释 On a sharded cluster, db.collection.count() can result in ...

Java - Nio 基本概念&操作

1.概述 从JDK1.4开始,Java提供了一系列改进的输入/输出处理的新特性,被统称为NIO(即New I/O)。新增了许多用于处理输入输出的类,这些类都被放在java.nio包及子包下,并且对原java.io包中的很多类进行改写,新增了满足NIO的功能。NIO采用内存映射文件的方式来处理输入输出,NIO将文件或文件的一段区域映射到内存中,这样就可以像访问内存一样访问文件了。 Java...

字符编码与字符串表达式

字符编码与字符串表达式 背景 最近在看基本类型时,发现char类型是2个字节,也就是16bit,最多只能表达2^16的字符,显然字符是不止这么多的,也就意味着在Java中使用char可能存在精度丢失,且String中底层同样是用char[]进行来进行维护的,会不会同样存在丢失的问题呢? 字符编码 简单来说,字符编码的本质是建立整数和字符的映射。从而使得字符可以在计算机内以整数...

Java - 浮点数机制及所存在的问题

0. 背景 总所周知,即使是小朋友也知道0.1+0.2 = 0.3肯定是正确的,但是在Java中,如果输入 0.1+0.2 == 0.3,返回的却是false 在Java中,如果你动手尝试输入 0.1+0.2,可以看到返回的值是0.30000000000000004,至于为什么会发生这样的事情,这便是后面要探讨的了——Java浮点数机制。 1. Java浮点数机制 ...