当前位置: 首页 > article >正文

Temp123

MapDB:的持久化机制,以及源码分析和摘取

1、spark streaming--struct streaming 基于 时间间隔 攒批

2、kafka-connect-hdfs 控制 flush.size 和 interval.ms控制 攒批

        - 完全自研 攒批机制

        - 使用 embeded 版  https://lxblog.com/qianwen/share?shareId=cc89bb1e-0a59-42ef-a420-6b9a6c35e816

多个sql并行查询的结果,能生成有多个attachment?

- DT-A: 入sqlite查询并上传minio

- DT-T: 下载minio并转换和hash分片 上传minio

- DT-S: 下载minio前一天的和当天的数据 对比 ,并入库,推送,归档

确定DT-A流式处理框架,是每多少条数据调用一次groovy脚本?

- 假如5w条数据,for循环是写在groovy脚本外好,还是写在groovy内部好

        - spark.readStream -> foreach line row -> call groovy?

        - spark.readStream -> foreach 5k batch row -> call groovy? -> foreach line row in 5k batch -> process(line row)

探索高效稳定的排序算法:GrailSort

3、项目及技术应用场景
GrailSort适用于各种需要稳定排序的场合,特别是那些对内存使用敏感或处理大数据量的项目:

内存受限环境:由于GrailSort能够在常数额外空间内工作,因此特别适合于资源有限的嵌入式系统。
大规模数据处理:对于百万级甚至亿级元素的数据集,GrailSort可以提供比std::stable_sort更好的性能。
数据挖掘:在需要对大量记录进行预处理和排序的分析任务中,GrailSort的效率尤为突出。
并行计算:由于其优秀的分治特性,GrailSort也适合作为并行排序算法的基础。
4、项目特点
稳定性:GrailSort保证了相等元素的相对顺序不会改变,这是许多应用所必需的特性。
内存效率:提供了多种内存管理策略,包括无额外空间、固定大小缓冲区和动态缓冲区,适应不同需求。
高性能:在测试中,尤其在数据集中键值分布不均时,GrailSort的运行速度可与std::stable_sort媲美,甚至在某些情况下更快。
易用性:通过简单的API设计,用户可以方便地将其集成到自己的项目中。
————————————————
                        
原文链接:https://blog.csdn.net/gitblog_00064/article/details/139367454

opentelemetry   【IT老齐432】可观测性,优雅零侵入,Spring Boot接入OpenTelemetry_哔哩哔哩_bilibili

算力平台log采集方案:

iLogtail 回顾视频:开源两周年,感恩遇见,畅想未来_哔哩哔哩_bilibili

借鉴hdfs的逻辑写一套minio追加写的客户端,主要是控制 间隔时间、行数、以及主动提交

8.flume实时监控文件hdfs sink使用演示_哔哩哔哩_bilibili

DT-A的级联分发是不用走落盘的,直接走网络传输

DTN DT-A数据采集,解决flume的级联方式,并且flume支持事务,保证数据的一致性,可扩展用于以后的数据对账使用

https://www.cnblogs.com/typ1805/p/10405313.html

https://www.cnblogs.com/xuziyu/p/11004103.html

https://download.csdn.net/blog/column/1488183/52622685

值得注意的是,Flume提供了大量内置的Source、Channel和Sink类型。不同类型的Source,Channel和Sink可以自由组合。组合方式基于用户设置的配置文件,非常灵活。

  比如:Channel可以把事件暂存在内存里,也可以持久化到本地硬盘上。Sink可以把日志写入HDFS, HBase,甚至是另外一个Source等等。Flume支持用户建立多级流,

  也就是说,多个agent可以协同工作,并且支持Fan-in、Fan-out、Contextual Routing、Backup Routes,这也正是Flume强大之处。如下图所示:

数据清洗:

pandas、tablesaw

去重:

探索数据清洗新境界:csvdedupe - 精准去重利器-CSDN博客

GitHub - dedupeio/dedupe: :id: A python library for accurate and scalable fuzzy matching, record deduplication and entity-resolution.

https://github.com/dedupeio/dedupe?tab=readme-ov-file

Dedupe 2.0.17 — dedupe 2.0.17 documentation

csvdedupe、csvlink、csvkit

对于比较100GB无序CSV数据这类大规模数据比较任务,直接在内存中操作可能不太现实,因此需要采取更高效和可扩展的方法。以下是一些建议:

### 1. 使用分布式计算框架
- **Apache Spark**:Spark是一个强大的分布式计算框架,擅长处理大规模数据集。你可以将CSV数据加载到DataFrame中,使用Spark的`join`、`subtract`等操作来比较数据集。Spark支持在内存中进行计算,如果数据太大,它会自动溢写到磁盘。此外,Spark SQL也提供了丰富的比较功能。

### 2. 分块处理
- 将CSV文件分割成多个小文件,然后逐个或并行处理这些小文件。这可以通过命令行工具(如split)预先处理,或者在读取时直接在程序中实现。处理完每个小块的数据比较后,汇总所有差异结果。

### 3. 外部排序
- 由于原始数据无序,直接比较困难,可以先对两个CSV文件进行排序(可以使用外部排序算法,因为数据量大,不适合一次性载入内存排序),然后再进行比较。虽然排序本身需要额外的时间和空间,但对于后续的差异检测会非常高效。

### 4. 使用数据库
- 导入CSV数据到数据库(如PostgreSQL、MySQL或大数据平台如Hadoop HDFS + Hive),利用数据库的比较和查询功能进行差异分析。数据库天生擅长处理大规模数据,并且提供丰富的SQL查询能力,可以方便地进行JOIN操作来发现差异。

### 5. 专用数据比较工具
- 一些专业的数据比较工具,如**DiffKit**或**Daff**,设计用于处理大规模数据集的比较,它们支持并行处理和高效的比较算法,适合处理GB甚至TB级别的数据。

### 6. MapReduce或Hadoop
- 如果你熟悉Hadoop生态系统,可以编写MapReduce作业来并行处理数据比较。将数据切分成块,Map阶段处理每一块内的比较,Reduce阶段整合差异结果。

### 7. Python + Dask
- Dask是一个并行计算库,适用于处理超出内存大小的数据集。结合Pandas,可以实现类似Spark的DataFrame操作,但更易于Python开发者上手。Dask可以将任务分解到多核CPU或分布式计算集群上执行。

### 注意事项
- 在处理前,确保有足够的磁盘空间用于临时文件和输出。
- 考虑数据的唯一标识符或键,这将直接影响比较的效率和准确性。
- 性能优化也很关键,比如使用高效的编码格式(如gzip压缩)来减少I/O开销,合理分配计算资源等。

综上所述,根据你的资源和技术栈选择最合适的方法,处理100GB无序CSV数据比较任务。


 

【JVM 监控工具】性能诊断--JProfiler的使用_逆流°只是风景-bjhxcc的博客-CSDN博客

lsieun | Every search begins with beginner’s luck. And every search ends with the victor’s being severely tested. – The AlchemistEvery search begins with beginner’s luck. And every search ends with the victor’s being severely tested. – The Alchemisthttps://lsieun.github.io/Pointofix,软件官网:https://www.pointofix.de/download.php



lsieun | Every search begins with beginner’s luck. And every search ends with the victor’s being severely tested. – The Alchemist

https://github.com/lsieunhttps://github.com/lsieun

java agent: GitHub - YorkHwang/exec-timer: 基于java agent实现无侵入方法执行时长打印

SkyWalking


http://www.kler.cn/a/508397.html

相关文章:

  • MERN全栈脚手架(MongoDB、Express、React、Node)与Yeoman详解
  • 从 0 开始实现一个 SpringBoot + Vue 项目
  • 《计算机网络》课后探研题书面报告_网际校验和算法
  • YoloV10改进策略:Neck层改进|EFC,北理提出的适用小目标的特征融合模块|即插即用
  • 解锁C#语法的无限可能:从基础到进阶的编程之旅
  • 无人机技术架构剖析!
  • 在MyBatis的XML映射文件中,<trim>元素所有场景下的完整使用示例
  • 12.接口和抽象类的区别
  • Python机器学习、深度学习技术提升气象、海洋、水文领域实践应用能力
  • Oracle 可观测最佳实践
  • 异步 HTTP 请求
  • Spring Boot使用WebSocket
  • 游戏引擎学习第79天
  • 零基础构建最简单的 Tauri2.0 桌面项目 Star 88.4k!!!
  • 【STM32-学习笔记-8-】I2C通信
  • mayavi -> python 3D可视化工具Mayavi的安装
  • GoLang教程003:数据类型介绍
  • Java基础(二)
  • 基于 Spring Boot 和 Vue.js 的全栈购物平台开发实践
  • 正则表达式基础知识及grep、sed、awk常用命令
  • 【JVM-10】IBM HeapAnalyzer 工具使用指南:深入解析 Java 堆转储分析
  • 【微服务】SpringCloud 1-9章
  • R语言绘图
  • go语言gui窗口应用之fyne框架-自定义容器实现自定义布局,更灵活的显示控件
  • sparkSQL练习
  • 使用FineBI进行数据分析(入门级)