有什么区别?Elastic 和 Splunk 数据层
作者:来自 Elastic Ugo Sangiorgi, Matt Wehle

了解 Elastic 和 Splunk 数据管理方法之间的主要区别,以便做出明智的决策,实现高效的数据处理
在数据管理领域,在讨论如何根据不同的性能要求提供和/或保留数据时,经常会提到 “热 - hot”、“温 - warm” 和 “冷 - cold” 等术语。
Elastic® 和 Splunk 的产品都有独特的、有时甚至相互冲突的术语,我们的目标是解开这些差异,并呈现更清晰的图景,以便采用战略性、经济高效的方法满足你的数据管理需求。
什么是数据层?
从根本上讲,数据层是不同的存储级别,根据访问频率、成本效率和性能需求等标准对数据进行分类。它们允许优化数据组织,并可以通过将存储费用与信息的价值随着时间的推移保持一致来帮助降低成本。
数据层的概念存在于大多数数据平台中,尤其是那些处理可观察性和/或安全工具的数据平台。这些工具收集的数据量通常非常大,每秒处理数千甚至数百万个事件,并可用于搜索、仪表板和警报。可观察性和安全性也有一个共同的特点:最新的数据也是最有价值的,因为管理这些工具的团队依靠收集的信号在出现问题时立即采取行动。
因此,使用最快的硬件来提取和存储数据,并随着时间的推移将数据 “向下” 移动到更便宜、功能更弱的硬件上是有意义的。它也可以在需要时 “向上” 移动。
我们可以将 Elastic 和 Splunk 中的数据层分为 “数据蛋糕 - data cake” 中的三层:

- Layer A - A 层:数据通常首先写入此处,索引和搜索性能最佳。
- Layer B - B 层:数据从其他层移至此处,可搜索,但性能不如上层。数据备份到对象存储,归档或恢复无需用户操作 — 平台会自动完成。
- Layer C - C 层:移至此层的数据不会产生计算成本,因为不会主动索引。为了使用(搜索)数据,必须根据用户的明确操作将其恢复到更高层 — 在此之前,数据几乎是 “不可见的”。
由于 A 层是三者中最昂贵的,因此仅在需要时才将数据保留在其中是有意义的。例如,将数据在 A 层保留一周,然后将其移动到 B 层,在那里保留六个月,然后移动到 C 层,在那里存储三年,以达到合规性目的。
我们认为,可观察性和安全性解决方案必须让用户能够尽可能地选择如何在各层之间上下移动数据,因为在考虑预算和业务需求等多种因素时,如何平衡性能和成本最终取决于用户。
了解 Splunk 和 Elastic 中的数据层有助于制定适当的数据迁移策略。这包括确定应迁移哪些数据、应如何转换或重构数据以及如何确保迁移过程中的数据完整性和一致性。了解源数据层和目标数据层使你能够有效地将数据从一个系统映射到另一个系统。
Elastic 和 Splunk 中的数据层
现在我们有了一个用于比较数据层的单一框架,让我们比较一下 Elastic 和 Splunk 的本地解决方案 Elasticsearch® / Splunk Enterprise,以及它们的云解决方案 Elastic Cloud / Splunk Cloud。
但首先,先谈一下性能比较。 在这篇博客中,我们严格讨论数据管理,通过对比不同存储层,而不是从性能角度进行比较。 如果要推测性能差异,可以根据存储层级的高低来判断,但这仅适用于同一产品(例如,在 Elastic Cloud 中,Hot 层比 Cold 层更快,因为它使用了更强大的硬件,并且具有更好的可扩展性,可以将数据复制到多个节点上)。
比较:Elasticsearch 和 Splunk Enterprise
虽然 Elastic 和 Splunk 都有热、温、冷和冻结层,但它们在两种解决方案中的含义完全不同。让我们总结一下。
Elastic 有五层结构:
- 热(hot):这是新摄取数据的主要目的地,提供最佳性能和实时可用性。
- 温(warm):这里存放的是稍微不那么紧迫的数据,位于更经济实惠的硬件上,同时保持可扩展性和可用性。
- 冷(cold):这里,集群中只维护一个可搜索的数据副本,如果拓扑发生变化,可以自动从对象存储中恢复。
- 冻结(frozen):此层存放访问频率较低的数据,从而节省计算资源,并引入搜索的自动数据恢复。它提供了一种使用远程对象存储来存储数据的方法,例如 Amazon S3、Google GCS 或 Microsoft Azure Blob 存储。
- 快照(snapshot):作为数据备份,这些快照是可以手动恢复的副本,用于恢复或迁移目的。
Splunk Enterprise 具有四层结构:
- 热+温(hot + warm):这是新摄取数据的主要目的地,提供实时可用性和搜索性能。Splunk Enterprise 中的热和温之间的区别仅在于读写和只读 — 温数据仅可读(例如,用于搜索),因为索引器不会向其中写入新数据。
- 冷(cold):冷阶段允许管理员将不太可能被搜索的数据移动到更便宜(即更慢)的存储设备。
- SmartStore:此层存储访问频率较低的数据,从而节省计算资源,并引入搜索的自动数据恢复。它提供了一种使用远程对象存储来存储数据的方法,例如 Amazon S3、Google GCS 或 Microsoft Azure Blob 存储。这是在 Splunk 中构建数据层的一种完全不同的方式,因为大多数数据驻留在远程存储上,而索引器只维护本地缓存。
- 冻结(frozen):这些快照充当数据备份,是可手动恢复的副本,用于恢复或迁移目的。这里,Splunk 所称的冻结类似于 Elastic 的快照。

使用 Splunk Enterprise,热层和温层之间的区别不那么明显,其冷层在硬件利用率方面可与 Elastic 的温层相媲美。Elastic 仍然以可扩展的热层领先,促进了向温层的过渡,而不会放弃可用性。
Elastic 的冷存储和冻结存储策略确保数据可立即查询,这要归功于对象存储备份,这些备份可自动执行检索过程,类似于 Splunk 的 SmartStore。但是,Splunk 的冻结类别需要手动恢复,类似于 Elastic 的快照。
在 Elastic 中,冷存储和冻结存储都依赖于可搜索快照功能,该功能允许搜索早至 5.0(早在 2016 年就已发布!)的快照,而无需将其恢复到活动集群 — 这对于治理和合规性、安全调查和历史回顾非常有用,无论你使用的是哪个 Elasticsearch 版本。
Elastic Cloud 和 Splunk Cloud
在 Elastic Cloud 中,数据从热层开始其旅程,该层以其可扩展性、高可用性和复杂操作(如索引和搜索)的峰值性能而闻名。相比之下,Splunk Cloud 在热层和温层方面不提供与 Elastic Cloud 相对的分层选项;相反,它有 DDAS,这似乎优先考虑节省成本,可能会以牺牲速度为代价。
Elastic 在 Elasticsearch 和 Elastic Cloud 中具有相同的五个层,但 Splunk Cloud 具有三层结构:
- DDAS:此层优先考虑节省成本而不是性能,因为它利用了 SmartStore。Splunk 表示,“Splunk Cloud Platform 利用多层存储架构并管理数据移动以根据用户搜索模式优化性能。通常,最近处理的数据(最近提取、搜索、分析机器学习等)的性能将优于一段时间未处理的数据。”
- DDAA:数据可以配置为存档在 DDAA 中,Splunk 将管理存储,用户必须主动请求恢复。恢复的 DDAA 数据通常在恢复请求后 24 小时内即可搜索,并且最多可搜索 30 天。大量 DDAA 数据恢复可能需要超过 24 小时才能完成。
- DDSS:此层中的数据专门存储在对象存储中,需要手动恢复(或 “重新恢复数据”)才能搜索。用户将在与其 Splunk Cloud Platform 相同的区域中的 Amazon S3 或 Google Cloud Storage 中管理存储。

Elastic Cloud 的层级与 Splunk Cloud 有着根本的不同。主要区别在于两者在部署灵活性方面采取了截然不同的方法 —— Elastic 提供了 AWS、Google Cloud 和 Azure 的详细实例类型列表,你可以随时选择,甚至可以随时更改数据层的实例类型而无需停机。在 Splunk 中,你有两个选项:AWS 或 Google Cloud,每个选项都有不同的功能集,并且无法查看硬件。
此外,Elastic 本地可用的所有内容在 Elastic Cloud 上也可用,因为它们是完全相同的产品,而 Splunk 对你可能在 Cloud 上使用的功能施加了限制。根据你的订阅级别,实时搜索默认情况下也不会启用,可能需要支持票才能启用。
总结:Elastic 和 Splunk 数据层
命名惯例可能会产生误导,在尝试将业务需求与提供商之间的数据存储选项相匹配时,会造成可以理解的混乱。了解这些层的实际功能可以帮助你做出更明智、更具成本效益的数据管理决策。
此细分旨在消除 Elastic 和 Splunk 之间数据层命名重叠所带来的误解。通过此数据层描述,你将能够更好地战略性地组织数据,以获得性能和成本效益。超越名称并了解每个层的基本机制至关重要,以确保你的数据策略既强大又高效。
本文中描述的任何特性或功能的发布和时间均由 Elastic 自行决定。任何当前不可用的特性或功能可能无法按时交付或根本无法交付。
Splunk 和其他相关标志是 Splunk Inc. 在美国和其他国家/地区的商标或注册商标。所有其他品牌名称、产品名称或商标均属于其各自的所有者。
原文:What’s the difference? Elastic and Splunk data tiers | Elastic Blog
相关文章:
有什么区别?Elastic 和 Splunk 数据层
作者:来自 Elastic Ugo Sangiorgi, Matt Wehle 了解 Elastic 和 Splunk 数据管理方法之间的主要区别,以便做出明智的决策,实现高效的数据处理 在数据管理领域,在讨论如何根据不同的性能要求提供和/或保留数据时,经常会…...
Tips :仿真竞争条件 指的是什么?
文章目录 **为什么会出现仿真竞争条件?****典型场景举例****System Verilog 如何解决竞争条件?****1. 使用 `program` 块隔离测试平台****2. 使用 `clocking` 块明确时序关系****3. 非阻塞赋值(`<=`)的合理使用****竞争条件的根本原因****总结****代码结构****1. 设计模…...
BGP状态和机制
BGP邻居优化 为了增加稳定性,通常建议实验回环口来建立邻居。更新源:建立邻居和邻居所学习到的路由的下一跳。多跳:EBGP邻居建立默认选哟直连,因为TTL=1,如果非直连,必须修改TTL。命令备注peer 2.2.2.2 connect-interface lo1配置更新源peer 2.2.2.2 ebgp-max-hop 2配置T…...
【电机控制器】PY32F00BF15U6TR-从KEIL5中计算资源消耗资源
【电机控制器】PY32F00BF15U6TR-从KEIL5中计算资源消耗资源 文章目录 [TOC](文章目录) 前言一、MCU芯片手册二、实验三、实验结论四、参考资料总结 前言 使用工具: 1.KEIL5编译器 提示:以下是本篇文章正文内容,下面案例可供参考 一、MCU芯片…...
CaffeineCache自定义缓存时间
文章目录 1、POM文件依赖2、声明缓存3、缓存使用4、测试缓存5、自定义缓存过期时间6、测试自定义超时时间 1、POM文件依赖 <dependency><groupId>com.github.ben-manes.caffeine</groupId><artifactId>caffeine</artifactId><version>3.1…...
python实战项目58:采集蜻蜓FM热门音频top排行榜
python实战项目58:采集蜻蜓FM热门音频top排行榜 一、采集流程介绍二、数据接口采集三、使用xpath提取页面数据1、抓包,找到数据接口2、发送请求,获取数据3、提取数据4、保存数据一、采集流程介绍 蜻蜓FM热门音频top排行榜的链接为: https://m.qingting.fm/rank/,首页如下图…...
STM32【3】芯片的底层组成概论
关于单片机的组成 单片机的意思是,小小计算电脑,麻雀虽小,五脏俱全,里面包含了CPU,ROM,RAM,各种外设。 CPU地位最高,可以访问ROM和RAM,Flash,GPIO等外设&…...
基于django图书信息管理系统的搭建(增删改查)
✍django项目搭建教程 ☞ ----------------- 教程 本文主要讲解django如何连接数据库MySQL并且可视化展示,实现增删改查功能 目录 一. 创建django应用 二. 数据库配置 三. 查看数据库 四. 编写代码 4.1视图函数 4.2 配置URL 4.3创建模板文件 4.…...
Kotlin 知识点二 延迟初始化和密封类
对变量延迟初始化 Kotlin 语言的许多特性,包括变量不可变,变量不可为空,等等。这些特性 都是为了尽可能地保证程序安全而设计的,但是有些时候这些特性也会在编码时给我们带来不 少的麻烦。 比如,如果你的类中存在很多…...
基于SpringBoot的“古城景区管理系统”的设计与实现(源码+数据库+文档+PPT)
基于SpringBoot的“古城景区管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统整体功能图 系统首页界面 系统注册界面 景…...
QT C++ QtConcurrent::run 异步任务 简单例子
QtConcurrent命名空间提供了高级API,使得无需使用低级线程原语即可编写多线程程序。 QtConcurrent::run是Qt框架中用于简化并发编程的一个功能,主要用于在后台线程中异步执行函数或成员函数。其主要用途包括: 异步执行函数…...
力扣hot100 —— 电话号码字母组合; 子集 (非回溯做法)简单易懂
由于博主对回溯也不是很熟悉,这里提出一种简单易懂的解法(有点暴力) 解题思路: 每个数字对应有自己的字母串; 首先遍历将每个字母存入也就是 res{{a},{b},{c}} 然后遍历后续数子对应的字母,让每个字母与…...
企业业务安全进阶之路:AI技术与数据分析的应用
在数字化时代,企业业务安全面临着前所未有的挑战。从网络安全到数据保护,每一个环节都至关重要。本文将探讨如何通过AI技术和数据分析来提升企业业务安全防护能力,确保企业在不断变化的安全威胁面前保持领先地位。 企业业务安全的重要性 企…...
windows本地升级npm
## 在管理员身份的cmd中: 运行以下命令来安装npm-windows-upgrade工具: npm install --global --production npm-windows-upgrade运行以下命令来升级到最新版本的npm: npm-windows-upgrade --npm-version latest如果你想升级到特定版本的n…...
【Redis】在Java中以及Spring环境下操作Redis
Java环境下: 1.创建maven 项目 2.导入依赖 <!-- redis --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.3.2</version></dependency> 此处使用的是Jedis&…...
Sqlserver安全篇之_隐藏实例功能和禁用SQL Server Browser服务
总结: 1、隐藏实例功能和禁用SQL Server Browser服务的功能一样,对应非默认实例(且这个默认实例是1433端口)的情况下,都是需要在连接字符串中提供端口号才能连接到实例 2、隐藏实例功能后,就算开启了SQL Server Browser服务&#…...
Directx上传堆和默认堆注意事项
前景 之前我用directx写上传堆上传给默认堆Index,但是我发现数据无法被GPU读取 void HelloTriangle::createDefaultBuffer(const void* data, const UINT byteSize, ComPtr<ID3D12Resource>& defaultBuffer) {ThrowIfFiled(m_Device->CreateCommitte…...
Java封装弱密码校验工具类
弱密码校验工具类 通过检查密码是否符合某些安全策略来判断其强度 ● 密码长度 ● 字符类型 ● 常见密码组合 import java.util.Arrays; import java.util.HashSet; import java.util.Set;public class WeakPasswordCheckUtil {// 常见弱密码列表(可根据需求扩展&…...
Figure自研模型Helix发布,人形机器人迈向新纪元?
Figure 公司自 2022 年成立以来,便在人形机器人领域崭露头角,成为行业内备受瞩目的新星。公司由连续创业者 Brett Adcock 创立,总部位于美国加利福尼亚州桑尼维尔,汇聚了来自波士顿动力公司、特斯拉、谷歌 DeepMind 等知名企业的顶…...
vue3.0将后端返回的word文件流转换为pdf并导出+html2pdf.js将页面导出为pdf
实现思路 1.将Word文档转换为HTML:mammoth.js,它可以将.docx文件转换为HTML 2.将HTML转换为PDF:使用html2pdf.js将HTML转换为PDF 如果想要相同的效果,也可以把前端页面直接导出转换为pdf: 运用的插件:html2pdf.js 后端…...
(Arrow)试时间处理变得更简单
前言 Arrow库并不是简单的二次开发,而是在datetime的基础上进行了扩展和增强。它通过提供更简洁的API、强大的时区支持、丰富的格式化和解析功能以及人性化的显示,填补了datetime在某些功能上的空白。如果你需要更高效、更人性化的日期时间处理方式,Arrow库是一个不错的选择…...
SV基础(一):System Verilog与Verilog核心区别详解
文章目录 **1. 设计增强功能****数据类型扩展****接口(Interface)****2. 验证功能增强****断言(Assertions)****约束随机测试****功能覆盖率****3. 面向对象编程(OOP)****4. 测试平台(Testbench)改进****5. 语法简化****6. 其他关键区别****学习建议**System Verilog 是…...
锂电池使用和存储电压
表格补充说明: 每列数据中,2S和3S电池的数值都是单电芯数值的2倍和3倍;对于其他电压的电池,将单电芯数值乘以相应S数即可;理论上单个电芯过放电压为3.0V,实际中为了保险,电压降到3.6V即需充电。…...
【docker】namespace底层机制
Linux 的 Namespace 机制是实现容器化(如 Docker、LXC 等)的核心技术之一,它通过隔离系统资源(如进程、网络、文件系统等)为进程提供独立的运行环境。其底层机制涉及内核数据结构、系统调用和进程管理。以下是其核心实…...
欧拉回路与哈密尔顿回路: Fleury算法与Hierholzer 算法(C++)
图论中的回路是指一个路径, 它从某个顶点开始, 经过所有边恰好一次, 并回到起始顶点. 定义 欧拉回路: 从一个顶点出发, 经过每条边恰好一次, 并且最终回到起始顶点. 哈密尔顿回路: 从一个顶点出发, 经过每个顶点恰好一次, 并且最终回到起始顶点. 欧拉路径: 从一个顶点出发, …...
20250221 NLP
1.向量和嵌入 https://zhuanlan.zhihu.com/p/634237861 encoder的输入就是向量,提前嵌入为向量 二.多模态文本嵌入向量过程 1.文本预处理 文本tokenizer之前需要预处理吗? 是的,文本tokenizer之前通常需要对文本进行预处理。预处理步骤可…...
https:原理
目录 1.数据的加密 1.1对称加密 1.2非对称加密 2.数据指纹 2.1数据指纹实际的应用 3.数据加密的方式 3.1只使用对称加密 3.2只使用非对称加密 3.3双方都使用对称加密 3.4非对称加密和对称加密一起使用 4.中间人攻击 5.CA证书 5.1什么是CA证书 CA证书的验证 6.https的原理 1.数据…...
cmake命令记录
1.project(HELLO) project命令用于设置工程的名称,括号里的参数HELLO便是我们要设置的工程名称;设置工程名称并不是强制性的,但是最好加上。 2.add_executable(hello ./main.c) add_executable用于生成一个可执行文件,第一个参数代表生成的可…...
【Python模块】——pymysql
pymysql是python操作mysql的标准库,可以通过pip install快速导入pymysql包操作数据库 使用pymysql操作mysql 简单demo import pymysql connect pymysql.connect(host"localhost",port3306,user"root",password"root",database&quo…...
在Spring Boot中如何使用Freemaker模板引擎
在 Spring Boot 中使用 FreeMarker 模板引擎可以帮助你创建动态的 Web 页面。以下是详细的步骤和示例代码,介绍如何在 Spring Boot 项目里集成和使用 FreeMarker。 1. 添加依赖 如果你使用的是 Maven 项目,需要在 pom.xml 文件中添加 FreeMarker 相关依赖。Spring Boot 提供…...
