Flink 的 API 大体上可以划分为三个层次:处于最底层的 ProcessFunction、中间一层的 DataStream API 和最上层的 SQL/Table API,这三层中的每一层都非常依赖于时间属性。时间属性是流处理中最重要的一个方面,是流处理系统的基石之一,贯穿这三层 API。在 DataStream API 这一层中因为封装方面的原因,我们能够接触到时间的地方不是很多,所以我们            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-21 06:33:21
                            
                                27阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # 教你实现Java Roaring Bitmap
## 一、什么是Roaring Bitmap?
Roaring Bitmap是一种高效的位图数据结构,用于存储和操作集合,特别在稠密集合或稀疏集合的场景中表现出色。相比传统的位图,Roaring Bitmap在空间效率和操作速度方面都有显著提升。这使它广泛应用于数据分析和搜索引擎等领域。
## 二、实现流程
实现Roaring Bitma            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-08-02 10:40:43
                            
                                107阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            何时以及如何在 Apache Flink 中使用 RocksDB 状态后端Flink中的状态什么是RocksDB?Flink中的RocksDB什么时候使用RocksDBStateBackend如何使用RocksDBStateBackend集群级别作业级别最佳实践和高级配置状态在RocksDB中的位置RocksDB故障诊断总结 流处理应用程序通常是有状态的,“记住”已处理事件中的信息,并使用它来影            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-13 17:22:29
                            
                                194阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1.前言  之前几篇文章都是围绕Rocksdb状态后端引申出来的一系列问题,本文主要介绍一下Rocksdb作为状态后端的一些技术细节,以及Flink的状态抽象是如何设计的,为开发一个新的状态后端做指导。  本文基于Flink 1.8.2,目前Flink版本处于一种快速变化的过程,所以可能不适用于高版本,但仍有借鉴意义。2.结构  Flink的状态定义都在flink-runtime包下,路径是org            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-02 21:17:05
                            
                                681阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Flink 性能调优SQL 是数据分析中使用最广泛的语言。Flink Table API 和 SQL 使用户能够以更少的时间和精力定义高效的流分析应用程序。此外,Flink Table API 和 SQL 是高效优化过的,它集成了许多查询优化和算子优化。但并不是所有的优化都是默认开启的,因此对于某些工作负载,可以通过打开某些选项来提高性能。1.MiniBatch 聚合默认情况下,无界聚合算子是逐条            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-10 15:55:05
                            
                                113阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言概述流处理应用程序通常是有状态的,通过保存已处理事件的信息,用于影响未来事件的处理。Flink中保存的事件信息,即状态,会被存储在已经配置的状态后端中。为避免应用程序故障时造成数据丢失,状态后端会定期将其快照持久化到预先配置的持久存储中。RocksDB状态后端(RocksDBStateBackend)是Flink三个内置状态后端之一。本文主要描述使用RocksDB管理Flink作业状态的好处、            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-24 13:05:30
                            
                                89阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Table of Contents监控State and Checkpoints调优Checkpointing网络缓存调优异步CheckpointingRocksDB调优增量备份RocksDB计时器预定义选项将选项工厂传递给RocksDB容量规划压缩本地恢复任务触发捷径主(分布式存储)和次(任务-本地)状态快照的关系task-local 配置恢复关于不同状态后端任务-本地恢复的详细信息配置保存调度            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-11 23:16:50
                            
                                930阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Flink rocksdb参数调整优化参考文档说明,rocksdb性能优化经验
    参数名说明 state.backend.rocksdb.block.blocksizeblock 的大小,默认值为4KB。在生产环境中总是会适当调大一些,一般32KB比较合适,对于机械硬盘可以再增大到128~256KB,充分利用其顺序读取能力。但是需要注意,如果 b            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-19 10:57:59
                            
                                164阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            下图是RocksDB的工作流程,一共进行三个步骤,①将数据写入内存中的活跃表 Active MenTable②将活跃表转化成只读表 ReadOnlyMemTable③将只读表flush到本地磁盘上 LocalDish   具体调优方法①增大整块缓存,减小刷写的频率。该块内存为flink的管理内存,默认为全部内存的0.4倍,可以根据使用情况调大。②增大block缓存&n            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-31 19:39:04
                            
                                82阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             .一 .前言二 .几个基本概念2.1. IntermediateDataset2.2. IntermediateResult 和 IntermediateResultpartition2.3. ResultPartition 和 ResultSubpartition2.4. InputGate 和 InputChannel三 .相关Class梳理3.1. ResultPartitionWrite            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-14 21:33:37
                            
                                19阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            what:  以一个“40亿个数据是4个字节的unsigned int 型的数据”为例。14.9GBbitmap)存储。40亿个数据都是位于[0, 2^32 - 1],每一位指的是一个bit位,而1byte(1字节)是8个bit,2^32bit = 2^29byte = 2^19kbyte=2^9Mb=512Mb;   如果数据很稀疏,例如:统计某个应用的用户数,用户id范围为[0, 2            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-19 23:19:36
                            
                                203阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # 在 Redis 中存储 Roaring Bit Map
## 什么是 Roaring Bit Map?
Roaring Bit Map 是一种高效的压缩位图结构,特别适用于处理大规模整数集合。它的设计考虑了空间和性能双重需求,在处理稀疏数据时非常高效。Roaring Bit Map 常用于数据库索引、去重和可计算性问题。将 Roaring Bit Map 存储在 Redis 中,可以利用            
                
         
            
            
            
            BitMap/BitSet被广泛的应用于数据查询中,但其由于数据稀疏造成的内存浪费也不可忽视,因此对压缩BitMap的探索一直在进行,比较知名的有WAH、EWAH、Roaring Bitmap等。其中性能最好并且应用最为广泛的当属Roaring Bitmap,比如Spark、Lucene、Redis、Influxdb等著名项目中都可以看到Roaring Bitmap身影,下面就谈谈Roaring            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-01 12:53:26
                            
                                477阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            本文结合个人理解梳理了BitMap及Roaring BitMap的原理及使用,分别主要介绍了Roaring BitMap的存储方式及三种container类型及Java中Roaring BitMap相关API使用。            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                            精选
                                                        
                            2024-06-20 10:37:02
                            
                                340阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Large states in our workload makes it infeasible to maintain everything in memory. Thus, we rely heavily on the RocksDB state backend to manage our gr            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2020-06-05 14:55:00
                            
                                311阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            Flink提供了不同的状态后端,用于指定状态存储的方式和位置。状态可以位于Java的堆上,也可以位于堆外。根据您的状态后端,Flink 也可以管理应用程序的状态,这意味着 Flink 处理内存管理(如果必要的话可能会溢出到磁盘),以允许应用程序保存非常大的状态。默认情况下,配置文件是 flink-conf.yaml 管理所有 Flink 作业的状态后端。也可以根据每个作业重写默认状态后端,如下所示            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-30 17:32:23
                            
                                112阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            请谈谈flink的checkpoint机制,checkpoint时,会否影响正常的数据处理Checkpoint 与 state 的关系Checkpoint 是从 source 触发到下游所有节点完成的一次全局操作。下图可以有一个对 Checkpoint 的直观感受,红框里面可以看到一共触发了 569K 次 Checkpoint,然后全部都成功完成,没有 fail 的。 state 其实就是 Che            
                
         
            
            
            
            目录0. 相关文章链接1. State Vs Checkpoint2. Checkpoint执行流程2.1. 简单流程2.2. 复杂流程3. State状态后端/State存储介质3.1. MemStateBackend3.2. FsStateBackend3.3. RocksDBStateBackend4. Checkpoint配置方式4.1. 全局配置4.2. 在代码中配置5. 代码            
                
         
            
            
            
            title: Flink的状态后端(State Backends) categories:Flink tags:flink date: 2019-08-23 11:38:00当使用checkpoint时,状态(state)会被持久化到checkpoint上,以防止数据的丢失并确保发生故障时能够完全恢复。状态是通过什么方式在哪里持久化,取决于使用的状态后端。可用的状态后端MemoryStateBac            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-25 17:25:28
                            
                                168阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            中文版见微信公众号:大数据从业者 18 Jan 2021 Jun Qin Stream processing applications are often stateful, “remembering” information from processed events and using it t            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-03-02 15:03:00
                            
                                459阅读
                            
                                                                                    
                                2评论