Elasticsearch vs. Hadoop For Advanced Analytics

A Tale of Two Platforms Elasticsearch 是卓越的文档索引以及全文检索工具。其基于JSON的DSL(Domain Specific query Language)简单而又强大(我觉得比SQL还差得远,好在近期新的版本发布了Elastic SQL :),使得其成为web app中集成搜索引擎的事实上的标准。那么作为analytics 后端是否胜任呢? 我们是否真的找到了一个“Hadoop”杀手呢? 首先来回忆一下一个高级“分析”系统一般都是如何构建的。开始的时候,你的app可能只需要像“mixpanel”或者“Google Analytics”这样的功能就够了,随着系统发展,产品经理的问题变得越来越难以回答: “What's the completion rate for femail Chinese users in my newly defined cohort X through the revamped user action funnel Y?” 这一问题需要cohort X的用户数据被摄取、标记出来后,再执行自定义查询来回答。为解答此问题,你需要开始收集访问日志数据,构建一个完全的“分析流水线”。经过一番调研后你会发现,有不少已有的解决方案是构建于Hadoop基础之上的,但是越来越多的开发者开始考虑使用Elasticsearch来做这件事情。怎么会这样的?一个搜索引擎真的会适合“分析”工作么? Elasticsearch For Analytics Elastic的ELK分析套件,包括Logstash(负责搜集服务器端日志)、Kibana(可视化窗口)在web分析应用中,得到了很多应用,因为: 1. 首先你非常容易运行起一个Elasticsearch实例 2. Elasticsearch 基于JSON的查询语言比Hadoop的MapReduce要容易操作的多 3. 对于应用开发者,Elasticsearch是工具箱中的一个已有工具,而Hadoop套件可能需要他们去全新的学习 这些原因,导致那些需要快速启动、运行分析需求解决方案的,会更倾向于选择Elasticsearch。但是一个搜索引擎,用他们执行“数据摄取”、数据分析工作,比起像Hadoop这样的具备高度扩展能力的分布式数据处理平台,其表现如何呢? Streaming Ingestion(流式数据摄取) 很多团队,会被Elasticsearch

删除Oracle Undo表空间

近期处理了一次删除、重建Undo表空间的事情,有些细节还是值得记下来备忘。事情的起因是工程师需要将分布在不同ASM磁盘组里的Oracle数据库文件,迁移到新建的ASM磁盘组,操作过程中,错误的删除了Undo磁盘组的所有文件。版本 11.2.0.4, RAC环境——测试、准生产环境;下文操作不保证在“生产环境”无害。 Step 1: 考虑新建Undo Tablespace,然后修改各个实例(Instance)的Undo_Tablespace 参数,使用新的Undo,然后删除老的Undo 表空间。 Step 2: 发现,此时无法新建表空间,报错Undo表空间的数据文件不可访问。 分析:我没有去细究原因,我想原因可能有两个,1是因为使用自动Undo管理,创建表空间的操作也需要获取Undo,所以报错??2是因为新建表空间,会触发类似checkpoint之类操作,有Active Tx还需要访问Undo?? Step 3:   修改undo_management=manual,再重试之前步骤 alter system set undo_management=manual sid=‘*’; Step 4: drop tablespace undotbs1 including contents and datafiles; Step 5: drop tablespace UNDOTBS2 including contents and datafiles * ERROR at line 1: ORA-01548: active rollback segment ‘_SYSSMU1_3780397527$’ found, terminate dropping tablespace