![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
大数据
文章平均质量分 75
大数据是指在一定时间范围内,由于快速的数据生成、收集和传输,使得数据的量级、速度和多样性超过传统数据处理软件和硬件能力范围,需要采用新的技术和方法进行有效管理和处理的数据集合。它具有规模性(Volume)、高速性(Velocity)、多样性(Variety)、价值性(Value)和准确性
奔向理想的星辰大海
这个作者很懒,什么都没留下…
展开
-
使用 TiDE 进行时间序列预测
时间序列预测一直是数据科学领域的一个热门研究课题,广泛应用于能源、金融、交通等诸多行业。传统的统计模型如ARIMA、GARCH等因其简单高效而被广泛使用。而近年来,随着深度学习的兴起,基于神经网络的预测模型也备受关注,表现出了强大的预测能力。其中,Transformer模型因其出色的捕捉长期依赖关系的能力,一度被认为是解决时间序列预测问题的利器。但最新研究发现,这些基于Transformer的模型在长期预测任务中,性能并不如人意,反而被一些简单的线性模型超越。原创 2024-07-19 09:54:40 · 11 阅读 · 0 评论 -
MongoDB在AI和大数据中的应用
通过本文的讲解,我们深入探讨了MongoDB在AI和大数据中的应用,包括在机器学习中的应用、大数据处理、AI与大数据结合的实践例子以及面临的挑战和解决办法。通过结合代码示例,我们展示了如何使用MongoDB高效地存储和处理大规模数据,并在实际应用中实现推荐系统等功能。原创 2024-07-14 16:36:19 · 6 阅读 · 0 评论 -
探索流式数据库的动态特性
因此,流式数据库的基本特征是它们管理动态数据的能力,即能够实时捕获和处理事件,确保数据的即时性和有效性。实际上,与具有严格模式的传统数据库不同,流式数据库适应流数据的流动性,其中模式可能随着新字段或属性的引入而改变:这种灵活性允许处理不同的数据格式并满足流应用程序不断变化的需求。这种时间感知能力是基于时间的聚合和处理无序事件的基础,有助于对数据的时间动态进行更细致的理解。最后,Materialize提供了强大的一致性和正确性保证,即使在并发数据更新的情况下也能确保查询结果的准确性和可靠性。原创 2024-07-11 09:48:39 · 34 阅读 · 0 评论 -
深入理解MySQL InnoDB中的页分裂与页合并
正如,如上所说。InnoDB 的数据页是存储引擎中用于保存数据的基本单位,通常大小为 16KB。B+树的每个节点对应着一个数据页,包括根节点、非叶子节点和叶子节点。B+树通过节点之间的指针连接了不同层级的数据页,从而构建了有序的索引结构。我们知道,B+树是按照索引字段建立的,并且在 B+树中是有序的。然而,如果索引字段的值并不是连续的,那么在 B+树的结构中会如何呢?图片假设现在我们要插入一个索引值为 3 的新记录,它需要按顺序插入到页号为 20 的数据页中,放在索引值为 1 和 2 的记录之后。原创 2024-07-11 09:46:02 · 118 阅读 · 0 评论 -
提升SQL查询效率的终极指南
在面试中,SQL 调优经常是被问及的问题,它可以考察候选人对于 SQL 整体性能优化的理解和掌握程度。一般来说,SQL 调优的步骤可以从以下几个方面入手。首先,需要准确地定位问题。在面试中,最好能结合具体的业务场景进行说明,例如某次线下报警引发的慢 SQL 问题,或者性能分析显示接口响应时间过长,根源是 SQL 查询效率不佳。无论何种情况,都需要提供背景信息。一旦问题定位清楚,接下来就是对问题进行深入分析。首先,需要通过各类监控平台或工具准确定位到具体的 SQL 语句。原创 2024-07-11 09:40:21 · 8 阅读 · 0 评论 -
利用 MySQL 克隆插件搭建主从
克隆插件的工作原理是创建存储在 InnoDB 中的 schema、table、tablespaces 和 data dictionary metadata的物理快照。这个快照实际上是一个完整的数据目录,MySQL克隆插件可以使用这个目录来配置并恢复一个 MySQL 服务器。本地克隆:将数据从启动克隆操作的 MySQL 服务器克隆到该服务器主机上的指定目录下。远程克隆:涉及到本地 MySQL 服务器(接收方)和远程 MySQL 服务器(发送方),克隆的数据通过网络从发送方传输到接收方。原创 2024-07-10 09:36:47 · 6 阅读 · 0 评论 -
MySQL用了函数到底会不会导致索引失效
很多人认为,在使用函数后就无法使用索引。这主要是因为索引是按照列值的原始顺序组织和存储的。当对列应用函数时(如数学运算、字符串操作或日期函数等),函数会改变原始数据的值或格式,使得数据库无法直接定位到这些经过函数转换后的值。因此,数据库不得不执行全表扫描,以确保能够评估所有行上的函数操作,这导致查询性能下降。在 MySQL 8.0 之后,引入了函数索引,这改变了以往对函数使用索引的限制。原创 2024-07-03 11:08:41 · 8 阅读 · 0 评论 -
存储过程的细粒度访问控制
存储过程本身通常必须提供复杂的访问控制作为其实现的一部分,以确保调用有效,即使底层数据本身受到细粒度访问控制的保护。大多数企业数据库都提供了细粒度的安全机制,确保只有经过授权的用户才能对数据进行访问和修改,而且可以控制到具体的行和列级别。这些都是简单的示例,但可以让人们了解:使用可编程数据库代理保护存储过程相当简单,如果不能(或不想)更改存储过程,那么它尤其有用。用户可以执行给定的存储过程,也可以不执行。一旦执行了存储过程,它可能会返回一些数据,这些数据可能是单独的值,也可能是一个或多个结果集。原创 2024-06-28 09:35:04 · 25 阅读 · 0 评论 -
数据库 MySQL 是否需要容器化?
不要将数据储存在容器中,这也是 Docker 官方容器使用技巧中的一条。容器随时可以停止、或者删除。当容器被rm掉,容器里的数据将会丢失。为了避免数据丢失,用户可以使用数据卷挂载来存储数据。但是容器的 Volumes 设计是围绕 Union FS 镜像层提供持久存储,数据安全缺乏保证。如果容器突然崩溃,数据库未正常关闭,可能会损坏数据。另外,容器里共享数据卷组,对物理机硬件损伤也比较大。大家都知道,MySQL 属于关系型数据库,对IO要求较高。原创 2024-06-27 10:06:45 · 16 阅读 · 0 评论 -
数据仓库中的七种建模方法
事务型数据库虽然非常适合日常运营,但并不适合分析数据以发现有助于业务增长的趋势和见解。这就是数据仓库的作用所在。数据仓库是一个单独的数据库,经过优化,可用于存储大量历史数据以及快速查询和分析。挑战在于如何构建仓库中的数据,以便进行高效分析,同时保持足够的灵活性以应对不断变化的业务需求。数据仓库中的数据建模有几种常见和不太常见的方法。在本文中,我们将介绍七种关键的建模技术,权衡它们的优缺点,并帮助您为数据仓库选择正确的方法。原创 2024-06-19 09:25:46 · 114 阅读 · 0 评论 -
全面解读MySQLDump参数与实战技巧
启用选项--skip-add-drop-table、--skip-add-locks、--skip-comments、--skip-disable-keys、--skip-set-charset。禁用--add-drop-table、--add-locks、--create-options、--quick、--extended-insert、--lock-tables、--set-charset和--disable-keys。默认情况下启用,使用--skip-network-timeout禁用。原创 2024-06-14 09:25:44 · 94 阅读 · 0 评论 -
大数据实时分析:Flink 连接 Kafka 和 Flink SQL
使用 SQL 语句定义一个 Kafka 表,该表描述了如何从 Kafka 主题中读取数据以及数据的格式。首先,我们需要定义一个 Kafka 表。假设我们有一个 Kafka 主题 input_topic,它包含 JSON 格式的数据。我们可以使用 CREATE TABLE 语句来定义这张表。) WITH (首先,需要定义一个 Kafka 表,该表描述了如何从 Kafka 主题中读取数据以及数据的格式。) WITH (接下来,需要定义一个输出表,用于存储分析结果。原创 2024-06-06 10:50:20 · 27 阅读 · 0 评论 -
Java中实现MongoDB的Group功能
接口方法如下:/** * keyColumn : new String[]{"xxxName","xxxType"} * condition : 查询条件 ,可为空 * initial : 分组统计初始变量,为空时自动为每列提供初始变量 * reduce : 记录处理function * finalize : finalize函数,原创 2016-07-10 16:33:35 · 357 阅读 · 0 评论 -
【Mongodb】Mongodb 批量操作命令
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。批量操作命令及相关样例代码原创 2023-08-14 13:13:37 · 1149 阅读 · 0 评论 -
MySQL数据库锁:共享锁和独占锁
共享锁(shared lock,S锁),也叫读锁。它是指当对象被锁定时,允许多个事务同时读取该资源,也允许其它事务从该对象上再次获取共享锁,但不能对该对象进行写操作。共享锁是InnoDB存储引擎的行级锁,在MyISAM存储引擎中不存在;共享锁是尽管是行级别锁,但是当锁加在整个表时(表中所有的行,一种特殊的行),排他锁也会在表级别生效;当排他锁加在表上,则其它事务无法对该表进行等更新操作;当排他锁加在行上,则其它事务无法对该行进行等更新操作;通过上述 3个示例及其运行结果可以看出:排他锁有。原创 2024-06-06 09:31:34 · 16 阅读 · 0 评论 -
工作中使用缓存遇到过的7个坑
工作中使用缓存遇到过的7个坑,还是非常有参考价值得,希望对你会有所帮助。原创 2024-06-04 10:18:29 · 12 阅读 · 0 评论 -
MySQL 索引完全指南:提升性能的黄金法则
例如,WHERE 子句中同时使用 col1 和 col2,则可以创建 (col1, col2) 的组合索引,遵循最左原则,锁定最少数据索引字段放在最左边。索引是提高 MySQL 查询性能的重要工具,但在使用索引时需要遵循一定的规则和最佳实践,以避免常见的索引失效问题。覆盖索引(Covering Index)指的是索引中包含查询所需的所有列,这样在执行查询时可以直接从索引中获取数据,无需访问数据表。MySQL 中几种常见的索引类型,包括主键索引、唯一索引、普通索引、全文索引和组合索引。原创 2024-05-24 09:15:49 · 117 阅读 · 0 评论 -
Web应用的SQL注入攻击与应对策略
SQL注入攻击是一种相当严重的安全风险。攻击者可以通过利用系统漏洞,绕过应用防火墙,未经授权地访问到底层数据库,并窃取各种敏感的数据信息。因此,我们需要制定一套针对SQL注入攻击的有效应对措施,来提高Web应用的整体安全态势。原创 2024-05-22 09:44:05 · 93 阅读 · 0 评论 -
PageHelper使用小窍门
但是没有执行对应的sql,那么就表明,当前线程ThreadLocal被设置了分页参数,可是没有被使用,当下一个使用此线程的请求来时,就会出现问题。假设线程1持有没有被清除的page参数,不断调用同一个方法,后面两个请求使用的是线程2和线程3没有问题,再一个请求轮到线程1了,此时就会出现问题了。有些同学会问,这也没没传分页参数啊,并且实体类当中也没有,这就是比较有意思的点,下一小结就来聊聊源码。所以,官方给我们的建议,在使用PageHelper进行分页时,执行sql的代码要紧跟。原创 2024-05-14 11:12:30 · 165 阅读 · 0 评论 -
SpringBatch高阶应用:大数据批处理框架实战指南
当程序恢复后你希望能够接着程序终止前的进度继续执行,这时候你需要进行如下的操作(本人没有发现有什么API能够操作的,可能文档没看仔细)。要想重复启动Job,我们可以在启动Job时设置不同的JobParameters参数,只要参数不同那么就可以重复的启动Job。当你调用该接口时,你会发现接口一直不会返回,一直阻塞,下图是Job的启动序列。// 节流限制10,这里配置的大小应该与你的数据库连接池大小及使用的线程池核心线程数一致。通过上面配置后,Job启动将是异步的会直接返回JobExecution。原创 2024-05-06 09:46:35 · 216 阅读 · 3 评论 -
让公司的MySQL支撑亿级流量的策略
从库越多,从库连接上来的I/O线程越多,主库也要创建同样多log dump线程处理复制的请求,对于主库资源消耗较高,同时受限于主库的网络带宽,所以一般一个主库最多挂3~5个从库。使用独立的log dump线程是异步,避免影响主库的主体更新流程,而从库在接收到信息后并不是写入从库的存储,是写入一个relay log,这是为避免写入从库实际存储会比较耗时,最终造成从库和主库延迟变长。在同步写DB的同时,把朋友圈数据写Cache,这样Consumer在获取朋友圈信息时,优先查询Cache,这也能保证数据一致性。原创 2024-04-29 09:39:54 · 10 阅读 · 0 评论 -
多个MySQL实例之间进行数据同步和复制
通过正确配置和管理,可以实现数据在主节点和从节点之间的自动同步,提高系统的可用性和性能。这种复制方式提供了最低的延迟,但主节点和从节点之间的网络连接必须稳定。2)、使用自动故障切换(Failover): 监控主节点的状态,一旦主节点宕机,自动将可用的从节点提升为新的主节点,确保系统的持续运行。3)、 使用读写分离: 在从节点上启用只读模式,并将读操作分配到从节点上,减轻主节点的负载并提高系统的整体性能。1)、使用主从节点集群: 通过将多个主节点和多个从节点组成集群,实现数据的水平扩展和故障容错。原创 2024-04-29 09:35:41 · 120 阅读 · 0 评论 -
阿里巴巴出的MqSQL数据库设计规范
设计数据库时请记住:清晰的规范和一致的实践是确保数据库长期稳定运行的关键。原创 2024-04-25 09:37:14 · 99 阅读 · 1 评论 -
MySQL别再用 offset 和 limit 分页了,性能太差!
这意味着,如果你有 1 亿个用户,OFFSET 是 5 千万,那么它需要获取所有这些记录 (包括那么多根本不需要的数据),将它们放入内存,然后获取 LIMIT 指定的 20 条结果。要使用这种基于游标的分页,需要有一个惟一的序列字段 (或多个),比如惟一的整数 ID 或时间戳,但在某些特定情况下可能无法满足这个条件。如果我们的表没有主键,比如是具有多对多关系的表,那么就使用传统的 OFFSET/LIMIT 方式,只是这样做存在潜在的慢查询问题。思考完后,可以在思考下,如果分库分表,你会这么去分页呢?原创 2024-04-23 09:46:07 · 71 阅读 · 0 评论 -
Java开发改了MySQL表后,所有的索引都消失了
但当一些耗时SQL执行时,就会出现同步延迟。重新考虑这个问题,我们需要保留的数据仅仅只有千万中的不到10万条非bad_group的数据,因此除了删除bad_group数据这种方法,更简单的是将有效数据先copy到一张临时表中,然后drop原表,再重新创建表,将临时表中数据拷贝回来。按照这个思路,回忆起之前在日常环境写假数据的时候,如果指定了一个比较大的id,那么后续所有新数据都会在这个id基础上生成(比如当前表中只有10条记录,id=10,插入一条id=100的数据,后续数据就会接着id=101继续生成。原创 2024-04-19 10:03:08 · 122 阅读 · 0 评论 -
Redis,Memcache、MongDB 三者的区别
原创 2024-04-19 09:27:41 · 11 阅读 · 0 评论 -
为什么数据库连接池不采用 IO 多路复用?
当然,如果有特定的需要,希望使用IO多路复用管理DB连接,是完全可行的。JDBC是一个出现了近20年的标准,它的设计核心是BIO(因为199X年时还没有别的IO可以用):调用者在通过JDBC时执行比如query这样的API,在没有执行完成之前,整个调用线程被卡住。他们的NIO的驱动方式是其运行时的基础——所有要在这个基础上开发的代码都必须遵守同样的NIO+异步开发规范,使用同一个NIO的驱动。先纠正一个常见的误解。对于使用DB的程序来讲,不管使用多路复用,还是连接池,都要维护一组网络连接,支持并发的查询。原创 2024-04-16 09:50:39 · 16 阅读 · 0 评论 -
MySQL不推荐使用uuid或者雪花id作为主键
从开篇的提出问题,建表到使用jdbcTemplate去测试不同id的生成策略在大数据量的数据插入表现,然后分析了id的机制不同在mysql的索引结构以及优缺点,深入的解释了为何uuid和随机不重复id在数据插入中的性能损耗,详细的解释了这个问题。那么为什么会出现这样的现象呢?因为uuid相对顺序的自增id来说是毫无规律可言的,新行的值不一定要比之前的主键的值要大,所以innodb无法做到总是把新行插入到索引的最后,而是需要为新行寻找新的合适的位置从而来分配新的空间。原创 2024-04-13 14:33:53 · 125 阅读 · 0 评论 -
一文带你熟悉MySQL索引
想象一下,你正在图书馆找一本特定的书。如果没有索引,你需要走过每一个书架,查看每一本书的标题,这会非常耗时。但如果有一个索引卡片,告诉你每本书的位置,你就可以直接走到那本书所在的书架,快速找到你想要的书。在MySQL数据库中,索引就类似于这个索引卡片,它帮助数据库快速定位到存储在表中的数据。原创 2024-04-11 14:48:15 · 14 阅读 · 0 评论 -
MySQL递归查询:处理层次结构数据
在数据库管理中,处理具有层次结构的数据一直是一项常见任务。MySQL的递归查询功能通过公用表表达式(CTE)为处理这类数据提供了便捷的方式。递归查询可以用于管理组织结构、目录树等数据,使您能够轻松地查询任意节点的子节点、父节点或整个路径。原创 2024-04-09 09:45:29 · 106 阅读 · 0 评论 -
MySQL 主从 AUTO_INCREMENT 不一致问题分析
官方对于 REPLACE INTO 的定义如下:摘选自这里可以看到一张表包含主键或者唯一键的情况下,replace操作会判断原有的数据行是否存在,如果存在的话,就先删除旧的数据,然后进行insert操作,如果不存在的话,就和insert操作时一样的。第二段也提到了INSERT ... ON DUPLICATE KEY UPDATE Statement ,其实这个操作也会造成上面的主从autoincrement不一致现象,这里就不展开讨论了。!Note。原创 2024-04-07 09:47:51 · 18 阅读 · 0 评论 -
数据库日志采集:SQL Server篇
如果我们使用 SQL Server 代理来管理作业、警报和计划任务,那么 SQL Server 代理日志记录了这些作业执行的结果、警报触发的信息以及计划任务执行的详细日志。以上是配置 SQL Server 日志的一般步骤,具体的配置方法会根据具体的需求和环境而有所不同。事务日志的配置通常涉及到数据库的设置,包括数据库的恢复模式和事务日志的大小限制。以下是一个事务日志的简化示例。这些是 SQL Server 中常见日志的一些示例,实际的日志内容会更加详细,并包含更多的信息以便于故障排除、性能优化等工作。原创 2024-04-02 10:06:14 · 227 阅读 · 0 评论 -
在MySQL中实现数据的大规模并行处理和高速计算
在MySQL中实现数据的大规模并行处理和高速计算通常涉及到多种策略和技术的应用,这些策略包括但不限于优化查询性能、合理设计数据库架构、利用数据库内建的并发控制机制、部署分布式数据库解决方案,以及结合应用程序层面的并行处理技术。原创 2024-04-01 13:55:11 · 11 阅读 · 0 评论 -
Redis事务的概念及相关命令的使用
然后,依次执行了三个set命令,将键"aa"设置为值"22",将键"bb"设置为值"33",将键"cc"设置为值"44"。然后,依次执行了两个set命令,将键"aa"设置为值"11",将键"ee"设置为值"EE"。然后,依次执行了四个set命令,将键"aa"、“bb”、“cc"和"dd"分别设置为对应的值"AA”、“BB”、“CC"和"DD”。当事务中命令知识逻辑错误,就比如给字符串做加减乘除操作时,只能在执行过程中发现错误,这种事务执行中失败的命令不影响其他命令的执行。原创 2024-03-27 10:10:34 · 14 阅读 · 0 评论 -
十个优秀的开源免费数据库管理SQL客户端
是个现代化的SQL工具。Adminer是一个基于PHP的数据库管理工具,适用于MySQL、PostgreSQL、SQLite、MS SQL、SimpleDB、Elasticsearch和MongoDB等数据库。它集成了对MySQL、PostgreSQL、SQL Server、Redshift和SQLite等数据库的管理、查询和可视化工具。DBeaver是一个强大的跨平台SQL客户端,支持的数据库包括MySQL、Oracle、SQL Server和PostgreSQL等,是最好的开源SQL客户端之一。原创 2024-03-20 09:47:44 · 333 阅读 · 0 评论 -
解决 Redis 并发竞争 Key 问题
当然,分布式锁可以基于很多种方式实现,比如zookeeper、redis等,不管哪种方式实现,基本原理是不变的:用一个状态值表示锁,对锁的占用和释放通过状态值来标识。watch这里表示监控该key值,后面的事务是有条件的执行,如果从watch的exec语句执行时,watch的key对应的value值被修改了,则事务不会执行。且从业务层面,有些是不可接受的场景。如果只有一个连接的情况下,这种方式没有问题,可以工作得很好,但如果有两个连接时,两个连接同时想对还price进行+10操作,就可能会出现问题了。原创 2024-03-18 09:10:20 · 317 阅读 · 1 评论 -
MySQL 的 redo log 保证数据不丢的原理
反之,redo log 有,binlog 没有,如果开启了主从模式,主服务器因为 redo log 恢复了数据,但从服务器靠消费 binlog 保证和主服务器数据一致,这就导致从服务器比主服务器数据少。这样的好处是,如果我们频繁修改某一个位于磁盘的数据页,我们可以不用每次都去磁盘读写(注意是读和写)该页,而是直接对缓冲池中的内容修改,在一定的时机再把数据刷新到磁盘。第二,即便可以,也增加了很大的复杂度, redo log 中记录的数据(物理日志)能不能复原 SQL 语句,如何复原,这都是需要思考的问题。原创 2024-03-15 09:22:59 · 15 阅读 · 0 评论 -
10个高级的 SQL 查询技巧
如果您注意到,CTE很有用,因为您可以将代码分解为较小的块,但它们也很有用,因为它允许您为每个CTE分配变量名称(即。递归CTE尤其有用,它涉及查询组织结构图,文件系统,网页之间的链接图等的分层数据,尤其有用。示例问题:给定下面的员工表,写出一个SQL查询,了解员工的工资,这些员工比其管理人员工资更多。例如,如果您有一个月列,并且您希望为每个月创建一个单个列,则可以使用语句追溯数据的情况。示例问题:给定天气表,写一个SQL查询,以查找与其上一个(昨天)日期相比的温度较高的所有日期的ID。原创 2024-03-14 13:45:53 · 18 阅读 · 0 评论 -
SQL优化的七大策略
limit分页查询在大数据量的时候,查询效率同样会非常的慢,例如一个常见又非常头疼的问题就是limit 2000000,10 此时需要MySQL排序前200010条记录,仅仅返回200000-2000010的记录,其他记录丢弃,查询排序的代价非常大。我们的InnoDB存储引擎的聚集索引结果中,B+Tree的叶子结点下存储的是row,行数据,并且是根据主键顺序存放。count()是一个聚合函数,对于返回的结果集,一行行地判断,如果count函数的参数不是NULL,累计值就加1,否则不加,最后返回累计值。原创 2024-03-11 14:06:23 · 99 阅读 · 0 评论 -
MySQL 分库分表设计及常见问题
在实际应用中,可能需要根据实际情况结合多种策略来满足不同的查询需求。同时,随着业务的发展和数据量的增长,可能需要不断调整和优化分库分表策略。如何解决热点数据倾斜问题?热点数据倾斜通常发生在某些特定的数据项(例如,用户激增、促销订单峰值等)等,导致这些数据的查询和更新操作集中在些某特定的数据库或表上,从而造成性能瓶颈。解决方案:采用Range分库+Hash分表图片如何解决跨库关联查询?分库分表后,数据被分散到了不同的数据库或表中。跨库关联查询成为新的问题。原创 2024-03-11 13:45:40 · 26 阅读 · 0 评论