NoSQL
文章平均质量分 92
wzy0623
25年的数据库、数据仓库、大数据相关工作。《Hadoop构建数据仓库实践》、《HAWQ数据仓库与数据挖掘实战》、《SQL机器学习库——MADlib技术解析》、《MySQL高可用实践》、《Kettle构建Hadoop ETL》、《Greenplum构建实时数据仓库实践》作者。
展开
-
Redis Cluster FlushAll失败
转自:http://longlongblog.cn/2017/11/01/58/问题背景Flush是一个极少用到的操作,不过既然碰到过诡异的现象,也记录在此。问题场景是在Reids Cluster中使用主从模式,向主节点发送flush命令,预期主从节点都会清空数据库。但是诡异的现象出现了,我们得到的结果是主从节点发生了切换,并且数据并没有被清空。问题分析分析以上case,Red...转载 2019-05-29 14:35:36 · 3649 阅读 · 1 评论 -
触类旁通Elasticsearch:安装
目录一、安装并启动ES二、安装head1. 安装 nodejs2. 安装head插件 3. 为head配置ES4. 使用head三、装载数据1. 装载elasticsearch-in-action示例2. 装载elastic...原创 2019-01-03 11:29:35 · 1070 阅读 · 0 评论 -
触类旁通Elasticsearch:简介
目录一、概念1. 基本概念2. 分布式相关概念二、功能特性总结三、ES架构 准备写一个Elasticsearch的专题,记录和总结一下这段时间对Elasticsearch的学习过程。之所以叫做触类旁通,是希望和RDBMS作比较,这里的“类”指的就是数据库。当然刚看了一个月,“通”是不敢说了,只是借用这个词而已。Elasticsearch的强项是解决搜索问题,但...原创 2019-01-02 14:42:20 · 839 阅读 · 0 评论 -
触类旁通Elasticsearch:操作
一、索引数据1. 使用映射定义文档 映射里包含了一个索引的文档中所有字段的定义,并告诉ES如何索引一篇文档的多个字段。例如,如果一个字段包含日期,可以定义哪种日期格式是可以接受的。映射的概念类似于DB中的表字段定义。 ES会自动识别字段,并根据数据相应地调整映射。但是在生产应用中,通常需要预先定义自己的映射,而不依赖于自动的字段识别。向类型的_mapping...原创 2019-01-11 16:35:56 · 1670 阅读 · 0 评论 -
初学乍练redis:使用redis-migrate-tool做redis在线数据迁移
目录一、问题提出二、关于redis-migrate-tool三、实验1. 建议集群redis2. 建立单实例redis3. 源码安装redis-migrate-tool4. 配置redis-migrate-tool5. 测试四、业务切换五、注意事项参考:一、问题提出 随着业务量的增长,主从复制的redis架构中,单实例的OPS已经接...原创 2018-11-16 14:32:34 · 5456 阅读 · 1 评论 -
初学乍练redis:两行shell脚本实现slowlog持久化转储(去重保留历史条目、时间戳格式化)
两行shell脚本实现slowlog持久化转储(去重保留历史条目、时间戳格式化)原创 2018-11-02 11:35:56 · 2553 阅读 · 1 评论 -
浅尝辄止MongoDB:复制
目录一、复制基础1. 主动成员与被动成员2. master3. secondary4. arbiter5. oplog二、配置副本集1. 创建副本集2. 向副本集添加服务器3. 设置辅助服务器4. 向副本集添加仲裁服务器5. 设置被动服务器6. 在服务器上检查和执行操作一、复制基础 副本集是一种创建多个MongoDB实例的方...原创 2018-10-17 17:14:35 · 668 阅读 · 0 评论 -
浅尝辄止MongoDB:管理(1)
目录一、控制访问权限1. 添加admin用户2. 启用身份认证3. 在mongo控制台中执行身份验证5. 修改用户凭据6. 添加只读用户7. 删除用户二、备份与还原1. mongodump的各种备份方式2. mongodump示例3. 自动备份脚本4. mongorestore的各种还原方式5. mongorestore示例三、导入与导出...原创 2018-10-10 17:06:01 · 1867 阅读 · 1 评论 -
浅尝辄止MongoDB:分片
目录一、架构二、配置1. 启动配置服务器2. 启动分片控制器3. 启动两个分片服务器4. 在分片控制器中添加分片5. 设置块大小6. 创建分片集合7. 向分片添加数据三、维护1. 添加新分片2. 删除分片 大部分摘自《MongoDB大数据处理权威指南》(第3版)。 使用MongoDB时,水平数据分割是唯一可采用的方...原创 2018-10-19 13:23:18 · 590 阅读 · 0 评论 -
浅尝辄止MongoDB:高级查询
目录一、全文检索1. 建立索引2. 执行搜索二、聚合三、MapReduce1. 最简MapReduce2. 求和3. 求平均4. 调试一、全文检索1. 建立索引 MongoDB一个集合上只能建立一个文本索引。 建立文本索引:在集合texttest上的body键上建立文本索引。db.texttest.createI...原创 2018-10-09 15:53:58 · 811 阅读 · 0 评论 -
触类旁通Elasticsearch:原理
目录一、逻辑设计1. 文档2. 类型3. 索引二、物理设计1. 节点2. 主分片与副本分片3. 分布式索引和搜索三、索引数据四、搜索数据1. 在哪里搜索2. 回复的内容3. 如何搜索4. 通过ID获取文档 ES被设计为处理海量数据的高性能搜索场景。海量数据具体说至少应该是数亿文档,而高性能具体说就是从数亿文档中任意搜索需要的...原创 2019-01-08 15:48:45 · 1088 阅读 · 1 评论 -
触类旁通Elasticsearch:聚合
目录一、聚合的结构二、度量集合三、桶型聚合四、嵌套聚合1. 多桶聚合2. 单桶聚合《Elasticsearch In Action》学习笔记。 熟悉SQL的用户一定对聚合不会陌生,简单说任何应用于group by的查询都会执行一个聚合操作。ES的聚合(aggregation)加载和搜索相匹配的文档,并且完成各种统计型的计算。 ES聚合...原创 2019-02-01 15:13:15 · 1551 阅读 · 0 评论 -
初学乍练redis:Redis 5.0.3单实例数据迁移到Cluster
在使用redis 3时,可以使用redis-migrate-tool工具做redis在线数据迁移(参考https://wxy0327.blog.csdn.net/article/details/84138537)。但是我们现在使用的redis server已经升级到5.0.3版本,再用redis-migrate-tool做迁移会报错:[2019-04-19 13:26:35....原创 2019-04-19 18:16:28 · 2292 阅读 · 2 评论 -
初学乍练redis:使用rdr查看Redis key内存使用
一、问题提出 有一个生产系统的Redis实例内存使用超限引发报警,需要查看各个key所使用的内存分布情况,以便采取进一步的措施。二、安装RDR Redis原生并没提供查看单个Key的内存占用情况的命令。经过简单快速地调研,决定试一下RDR(Redis Data Reveal),主要原因是想体验一下其图形化的表示。RDR是用go语言开...原创 2019-04-18 15:59:12 · 4313 阅读 · 2 评论 -
初学乍练redis:Redis 5 Cluster手工指定主从关系
1. 检查当前Cluster的主从关系/home/redis/redis-5.0.3/src/redis-cli -a 123456 --cluster check 140.210.73.39:20001 结果如下:140.210.73.39:20001 (a1addf19...) -> 929146 keys | 5461 slots | 1 slaves....原创 2019-04-21 16:25:50 · 2146 阅读 · 1 评论 -
触类旁通Elasticsearch:优化
目录一、合并请求1. 批量操作(bulk)2. 多条搜索和多条获取二、优化Lucene分段的处理1. refresh和flush2. 合并以及合并策略三、缓存1. 过滤器和过滤器缓存2. 分片查询缓存3. JVM堆和操作系统缓存四、其它的性能权衡1. 非精确匹配2. 脚本3. 网络4. 分页《Elasticsearch In Acti...原创 2019-02-19 17:22:22 · 1061 阅读 · 0 评论 -
触类旁通Elasticsearch:关联
目录一、文档间关系概览1. 对象类型2. 嵌套类型3. 父子关系4. 反规范化二、将对象最为字段值1. 映射和索引对象2. 搜索对象三、嵌套类型1. 映射并索引嵌套文档2. 搜索和聚合嵌套文档四、父子关系1. 子文档的索引、更新和删除2. 在父文档和子文档中搜索五、反规范化1. 反规范化使用案例2. 索引、更新和删除反规范化的数据...原创 2019-02-12 17:20:53 · 2075 阅读 · 1 评论 -
触类旁通Elasticsearch:管理
目录一、模板二、动态映射三、分配感知四、监控1. 检查集群健康状况2. 慢日志、热线程和线程池3. 内存4. 操作系统缓存5. 存储限流五、备份与恢复1. 快照API2. 将数据备份到共享的文件系统3. 从备份中恢复《Elasticsearch In Action》学习笔记。一、模板(1)创建模板 当待创建的索引与之前...原创 2019-02-22 16:08:07 · 1464 阅读 · 0 评论 -
触类旁通Elasticsearch:打分
目录一、ES打分机制1. TF-IDF2. 其它打分方法二、boosting三、explain四、再打分五、function_score六、使用脚本排序《Elasticsearch In Action》学习笔记。 使得ES查询与select * from users where name like 'bob%'查询不同的是其为文档赋予相关性得分...原创 2019-01-30 16:06:27 · 2102 阅读 · 0 评论 -
触类旁通Elasticsearch:分析
目录一、什么是分析二、分析文档三、分析API四、分析器、分词器、分词过滤器1. 内置分析器2. 分词器3. 分词过滤器五、N元语法、侧边N元语法、滑动窗口七、IK中文分词插件《Elasticsearch In Action》学习笔记。一、什么是分析 分析(analysis)是在文档被发送并加入倒排索引之前,ES在其主体上进行的操作。在文...原创 2019-01-29 18:09:59 · 1300 阅读 · 0 评论 -
触类旁通Elasticsearch:扩展
目录一、添加节点二、节点发现1. 广播2. 单播3. 选举主节点4. 错误识别三、删除节点1. 丢失节点2. 停用节点四、升级节点五、使用_cat API六、扩展策略1. 过度分片2. 将数据切分为索引和分片3. 最大化吞吐量七、别名1. 添加和删除别名2. 查看别名3. 使用别名过滤器来屏蔽文档八、路由《Elas...原创 2019-02-14 17:01:52 · 1290 阅读 · 0 评论 -
触类旁通Elasticsearch:搜索
目录一、搜索请求的结构1. 确定搜索范围2. 搜索请求的基本模块3. 基于请求主体的搜索请求4. 回复的结构二、查询和过滤器1. match2. term3. query_string三、复合查询1. bool查询2. bool过滤器四、其它查询和过滤器1. range查询和过滤器2. prefix查询和过滤器3. wildcard查...原创 2019-01-28 17:29:13 · 946 阅读 · 0 评论 -
浅尝辄止MongoDB:优化
目录一、查询分析器1. 启用查询分析器2. 禁用查询分析器3. 查找慢查询4. 增大分析器集合的大小二、explain三、使用索引优化查询1. 管理索引2. 索引选择三步法3. 指定索引选项4. 使用hint()5. 使用索引过滤器一、查询分析器1. 启用查询分析器> use test;switched to db test&...原创 2018-10-15 16:38:15 · 1218 阅读 · 0 评论 -
浅尝辄止MongoDB:GridFS
一、为什么使用GridFS GridFS是MongoDB的一个子模块,使用GridFS可以基于MongoDB来持久存储文件,并且支持分布式应用(文件分布存储和读取)。作为MongoDB中二进制数据存储在数据库中的解决方案,通常用来处理大文件,对于MongoDB的BSON格式的数据(文档)存储有尺寸限制,最大为16M。但是在实际系统开发中,上传的图片或者文件可能尺寸会很大,此时我们...原创 2018-09-29 11:19:13 · 5263 阅读 · 2 评论 -
初学乍练redis:一键部署集群
目录一、需求二、安装redis1. 安装gcc2. 建redis用户3. 解压并编译4. 限制redis用户登录三、建立配置文件模板1. master模板2. slave模板3. 哨兵模板四、编写创建集群的shell脚本1. master2. slave五、其它准备1. 配置SSH登录无密码验证2. 禁用requiretty3. ...原创 2018-08-16 18:05:28 · 2049 阅读 · 0 评论 -
浅尝辄止MongoDB:操作(3)
目录5. 批处理数据6. 重命名集合7. 删除数据8. 引用数据库9. 使用与索引相关的函数 大部分摘自《MongoDB大数据处理权威指南》(第3版)。 5. 批处理数据 MongoDB允许批量执行写入操作。通过这种方式,可首先定义数据集,再一次性写入它们。批量写入操作只能处理单一集合,可用于插入、更新或删除数据。 在批...原创 2018-09-28 14:32:22 · 1419 阅读 · 1 评论 -
浅尝辄止MongoDB:操作(2)
目录4. 更新数据 大部分摘自《MongoDB大数据处理权威指南》(第3版)。 4. 更新数据(1)update() 在MongoDB中可以使用update()函数执行数据更新操作。该函数将接受3个主要参数:criteria、objNew和option。参数criteria可用于指定一个查询,该查询选择将要更新的目标记录。使用objNew参数指定更新信...原创 2018-09-27 17:45:13 · 2961 阅读 · 0 评论 -
浅尝辄止MongoDB:操作(1)
目录1. 浏览数据库2. 插入数据3. 查询数据 大部分摘自《MongoDB大数据处理权威指南》(第3版)。 1. 浏览数据库 MongoDB在第一次存储数据时会自动创建数据库和集合。要切换到已有数据库或者创建新的数据库,可使用use函数,在命令后加上数据库名,无论它是否存在:> use library;switched to db...原创 2018-09-27 10:56:11 · 564 阅读 · 0 评论 -
浅尝辄止MongoDB:管理(2)
目录四、验证与修复1. 修复服务器2. 验证单个集合3. 修复集合验证错误4. 压缩集合的数据文件五、监控1. 查看服务器状态2. 查看命令行参数3. 查看数据库/表状态4. 查看当前Query执行情况5. 监控MongoDB状态六、其它常见任务1. 启动服务器2. 获取服务器版本3. 关闭服务器4. 轮换日志文件5. 刷写并锁...原创 2018-10-11 15:15:36 · 668 阅读 · 0 评论 -
浅尝辄止MongoDB:基础
目录一、简介1. 基本概念2. 存储格式二、安装1. 选择版本2. 安装三、数据模型1. 设计数据库2. 构建索引三、使用地理空间索引 大部分摘自《MongoDB大数据处理权威指南》(第3版)。 一、简介 MongoDB(源自单词humongous)是一个只用于处理文档的数据库。不同于关系数据库管理系统(Relatio...原创 2018-09-25 16:17:55 · 745 阅读 · 0 评论 -
初学乍练redis:分片与集群
目录一、配置集群二、增加节点三、分配插槽四、获取与插槽对应的节点五、故障恢复 大部分摘自Redis入门指南(第2版)。 即使使用哨兵,redis集群的每个数据库依然存有集群中的所有数据,从而导致集群的总数据存储受限于可用内存最小的数据库节点,形成木桶效应。由于redis中的所有数据都基于内存存储,这一问题尤为突出,特别是把redis用作持久化...原创 2018-09-14 18:13:34 · 16427 阅读 · 1 评论 -
初学乍练redis:复制与哨兵
目录一、复制1. 配置2. 原理3. 乐观复制4. 无硬盘复制5. 增量复制二、哨兵1. 什么是哨兵2. 配置3. 原理4. 部署三、脑裂 大部分摘自Redis入门指南(第2版)。一、复制 持久化使redis在服务器重启情况下尽量少丢数据,但持久化生成的文件是存储在redis同一机器上的。为避免单点故障,...原创 2018-09-07 18:10:01 · 1038 阅读 · 0 评论 -
初学乍练redis:持久化
目录一、RDB1. 触发条件2. 快照原理二、AOF1. 开启AOF2. AOF的实现3. 同步硬盘数据三、RDB迁移到AOF 大部分摘自Redis入门指南(第2版)。 redis是一个内存数据库,如果没有持久化功能,当redis重启、宕机、掉电等情况发生时,所有存储在内存中的数据就会丢失,这种情况在某些应用场景下是不允许发生的,...原创 2018-09-06 17:23:16 · 571 阅读 · 0 评论 -
初学乍练redis:事务与脚本
目录一、事务1. 概述2. 错误处理3. watch命令二、redis脚本1. 脚本介绍2. 实例:自定义incr3. redis与Lua(1)在脚本中调用redis命令 (2)从脚本中返回值 (3)脚本相关命令(4)KEYS和ARGV(5)沙盒与随机数(6)原子性和执行时间 大部分摘自Redis入门指...原创 2018-09-03 17:41:19 · 3534 阅读 · 0 评论 -
初学乍练redis:主从复制及哨兵维护脚本
目录一、创建redis主从复制集群脚本二、删除redis主从复制集群脚本三、启动redis主从复制集群脚本四、停止redis主从复制集群脚本五、重启哨兵脚本 环境:103.244.233.166(master、sentinel)103.244.233.167(slave、sentinel)103.244.233.168(slave、sentinel)...原创 2018-08-24 10:37:38 · 1187 阅读 · 1 评论