首页 > 编程知识 正文

千万级数据量批量java(java数据处理能力)

时间:2023-05-04 10:12:33 阅读:70802 作者:109

分类表的目的是解决两个问题。

第一个问题是数据量太大,查询太慢。 其中我们说的“查询”其实主要是事务中的查询和更新操作。 因为只读查询可以通过缓存和主从分离来解决。 这是在以前的“MySQL如何应对高并发性”两门课中说的。 那就像上节课提到的,解决查询很慢,减少每个查询的数据总量就可以了。 也就是说,可以通过划分表格来解决问题。

二是为了应对高并发性问题。 关于对高并发的响应,正如前面所述,一个数据库实例无法响应,因此必须将并发请求分布在多个实例上。 因此,要解决高并发性问题,就需要划分库。

简而言之,数据量大的话,就划分表格; 合并高的话,分库。

常用的三种分片算法

范围分片容易引起热点问题,但对查询更友好,适用于并发量少的场景

哈希片易于将数据和查询均匀地分布在所有片上

检针法更灵活,但性能有点差。

MySQL to Redis同步

MQ消息同步

使用Binlog实时更新Redis缓存(使用Canal )

如何在不停机的情况下交换数据库?

在线同步程序,用于将数据从旧库复制到新库并实时保持同步;

双写订单服务,只读写旧库;

打开双重写入,同时停止同步过程;

打开比较和补偿流程,确保新旧数据库数据完全相同

逐步向新库提出请求;

下划线比较补偿程序,关闭双灯,读写同时切换到新库;

脱机旧库和订购服务的双写功能。

像“点击流”这样的大量数据应该如何存储?

存储大量原始数据的存储系统需要非常高的写/读性能和几乎无限的容量,因此对数据的查询能力不高。 在生产环境中,可以选择Kafka或HDFS。 Kafka的优点是提高了读写性能,可以在单节点上支持高吞吐量。 HDFS真的提供了无限的存储容量,对查询很有用。

目前有几个开源项目

一个是分布式流数据存储,比较活跃的项目是Pravega和Pulsar存储引擎Apache BookKeeper。 这些分布式流数据存储系统遵循类似Kafka的流存储路线,基于高吞吐量提供真正无限的扩展能力和良好的搜索能力。

另一个是“时间序列数据库”(Time Series Databases ),它有一些活跃的项目,如InfluxDB和OpenTSDB。 这些时间序列数据库不仅具有非常好的读写性能,而且提供了轻松查询和聚合数据的能力。 但是,并不是任何数据都可以存储,而是侧重于具有时间特征、数据内容为数字的数据,如监控数据。 如果需要存储大量监视数据,请关注这些项目。

关于寻找教程网

本网站文章只是代表的观点,不代表本网站的立场,所有文章都是非盈利的、免费共享的。

本网站提供软件编程、网站开发技术、服务器运维、人工智能等IT技术文章。 很多程序员努力学习,希望我们能用科技改变世界。

[海量数据处理] http://www.zyiz.net/tech/detail-142989.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。