AWS Elasticsearch 和 AWS Redshift 之间有什么不同
What is the different between AWS Elasticsearch and AWS Redshift
我阅读了关于数据分析和集群结构的文档,但我不明白用例有什么不同。
Amazon Elasticsearch 是一种流行的开源搜索和分析引擎,适用于日志分析、实时应用程序监控和点击流分析等用例。Amazon Elasticsearch
Amazon Redshift 是一种完全托管的 PB 级云端数据仓库服务。您可以从几百 GB 的数据开始,然后扩展到 PB 或更多。 Amazon Redshift
Amazon Redshift 是托管数据仓库产品,而 Amazon Elasticsearch 是托管 ElasticSearch 集群。
Redshift 基于 PostgreSQL 和 (afaik) 主要用于 BI purpuses 和其他计算密集型工作,Amazon Elasticsearch 是开箱即用的 ElasticSearch 托管集群(您不能将其用于 运行 SQL 查询,因为 ES 是一个 NoSQL 数据库)。
Amazon Redshift 和 Amazon ES 都是托管服务,这意味着您无需执行任何操作即可管理您的服务器(这是您支付的费用)。使用 AWS 控制台,您可以添加新集群,并且不需要 运行 任何命令来安装任何软件 - 您只需要选择 运行 您的集群所在的服务器(节点数、磁盘、内存等)。
如果您不熟悉 ElasticSearch,您应该查看他们的网站。
编辑:现在可以在 ElasticSearch 上编写 SQL 查询:SQL Support for AWS ElasticSearch
我觉得这就像在问“苹果和橙子有什么区别?我听说它们都是水果。”
AWS 有 an overview of the analytics products they offer, which at the time of writing lists 21 different services. They also have a list of database products,其中包括 Redshift 和其他 10 个。没有特别明显的理由为什么要比较这两个,而忽略两个页面上的其他内容。
这些工具的功能之间不可避免地存在很多重叠,因此无法为每个工具编写详尽的用例列表。它们的长处和短处,以及它们容易集成的其他工具,会随着时间而改变,一些差异是“品味”或“风格”的问题。
关于问题中选出的两个:
- Elasticsearch 是 elastic.co 构建的产品,AWS 可以为其管理安装和配置。顾名思义,其核心功能基于搜索——例如,它可用于为电子商务网站构建灵活但快速的产品搜索。它也常与其他工具一起使用来搜索和汇总日志和监控数据。
- Redshift 是 AWS 构建的数据库系统,基于 PostgreSQL,但针对超大数据集进行了优化。它专为“数据仓库”应用程序而设计,您可以在其中针对数据编写复杂的逻辑查询,例如“今年与去年相比,每个城市有多少人同时购买了牙刷和牙膏”。
与其尝试对所有可用的不同服务进行抽象比较,不如从您实际拥有的用例开始,看看哪种工具最适合该需求。
我同意@IMSoP 的上述论断...
比较两者就像比较大象和老虎 - 您还没有真正提出正确的问题。
您真正应该问的是 - 首先,为了最好地满足利益相关者/客户的需求,我对用例的要求是什么,其次,哪种数据存储技术最符合我的要求...
需要明确的是——无论是说 AWS ElasticSearch 服务,还是 FOSS/Enterprise ElasticSearch(两者之间甚至有显着差异)——ElasticSearch 不是关系数据库 (RDBMS),也不是一个完全不SQL(文档存储)数据库,要么...
ElasticSearch 是一个搜索引擎/索引。对于非常具体的用例,它在某些方面做得很好,但是与 RDBMS 数据模型最重要的不同,ElasticSearch 或 NoSQL 不会为您提供 FULL ACID 合规性或事务处理语句处理,因此如果您的用例优先考虑数据完整性、可约束性、可靠性、审计能力、合规性、恢复能力(甚至是时间点)和数据模型的规范化以提高性能和减少数据重复,同时提供深度基数和强制模型约束以实现最佳完整性,”不 SQL 和 Elastic 不是您正在寻找的 Droids...”并且您应该实施 RDBMS 解决方案。如前所述,AWS Redshift 服务基于 PostgreSQL - 这是目前最流行的开源 RDBMS 风格之一,AWS 刚刚作为完全托管的解决方案/服务为其客户提供。
Elastic 介于 RDBMS 和 NoSQL 类别之间,因为它是一种搜索引擎/索引,最适合“单一索引”类型的用例,其中大量内容一次被索引并且在初始批量索引之后,这些文档不会经常更新,但也许我可以强调的最重要的事情是,根据我的经验,如果您希望集群运行良好,它通常不会非常经济高效地扩展(即使是托管集群服务) ,不会随着时间的推移而降级,保留大量历史数据集,并为您的消费者保持高可用性 - 对于大多数人来说,可能会很快变得成本高昂。也就是说,Elastic Search 确实仍然有非常理想的用例,因此始终值得根据您的独特需求进行评估 - 这样做时请牢记可扩展性和成本。
最后让我们称呼 NoSQL 它是什么,一个存储文档集合的文档存储(通常以 JSON 格式),虽然它们也做索引,但提供一些类似的身份验证和授权模型,提供 CRUD 可操作性(甚至现在 SQL 支持,这让我这个职业企业数据工程师傻笑,SQL 现在是从他们的 No[=30= 中查询数据的首选方式] 实例!:D )- 仍然不是传统数据库,可能不会为您提供对数据完整性的太多控制 - 但这正是“NoSQL”文档存储最适合工作的地方 - 非结构化数据——您可能并不总是从一开始就知道您的数据模型会是什么样子,或者您的用例优先考虑数据模型的灵活性而不是一般情况下强制执行数据完整性(非关键任务数据)。最后 - 虽然大多数现代 NoSQL 文档存储可能具有一些表面上看起来类似于 RDBMS 的功能,但我目前不知道该类别中的任何功能可以声称提供关系数据库所做的一切,在我看来,Oracle MySQL 的 DocumentStore 可能是两全其美的(不仅仅是因为我在过去十年中每天都在使用它......)。
所以 - 我希望遇到类似问题的开发人员会遇到这个线程,并且在阅读之后能够更好地了解他们的用例做出最佳设计决策 - 因为如果我们都对自己诚实 - 我们所做的一切在我们的职业中,我们所做的就是数据——无论是生成数据、传输数据、渲染数据、转换数据……这一切都以数据开始和结束,为您的应用程序做出最佳数据存储决策将真正定义您的其余部分项目!
干杯!
我阅读了关于数据分析和集群结构的文档,但我不明白用例有什么不同。
Amazon Elasticsearch 是一种流行的开源搜索和分析引擎,适用于日志分析、实时应用程序监控和点击流分析等用例。Amazon Elasticsearch
Amazon Redshift 是一种完全托管的 PB 级云端数据仓库服务。您可以从几百 GB 的数据开始,然后扩展到 PB 或更多。 Amazon Redshift
Amazon Redshift 是托管数据仓库产品,而 Amazon Elasticsearch 是托管 ElasticSearch 集群。
Redshift 基于 PostgreSQL 和 (afaik) 主要用于 BI purpuses 和其他计算密集型工作,Amazon Elasticsearch 是开箱即用的 ElasticSearch 托管集群(您不能将其用于 运行 SQL 查询,因为 ES 是一个 NoSQL 数据库)。
Amazon Redshift 和 Amazon ES 都是托管服务,这意味着您无需执行任何操作即可管理您的服务器(这是您支付的费用)。使用 AWS 控制台,您可以添加新集群,并且不需要 运行 任何命令来安装任何软件 - 您只需要选择 运行 您的集群所在的服务器(节点数、磁盘、内存等)。
如果您不熟悉 ElasticSearch,您应该查看他们的网站。
编辑:现在可以在 ElasticSearch 上编写 SQL 查询:SQL Support for AWS ElasticSearch
我觉得这就像在问“苹果和橙子有什么区别?我听说它们都是水果。”
AWS 有 an overview of the analytics products they offer, which at the time of writing lists 21 different services. They also have a list of database products,其中包括 Redshift 和其他 10 个。没有特别明显的理由为什么要比较这两个,而忽略两个页面上的其他内容。
这些工具的功能之间不可避免地存在很多重叠,因此无法为每个工具编写详尽的用例列表。它们的长处和短处,以及它们容易集成的其他工具,会随着时间而改变,一些差异是“品味”或“风格”的问题。
关于问题中选出的两个:
- Elasticsearch 是 elastic.co 构建的产品,AWS 可以为其管理安装和配置。顾名思义,其核心功能基于搜索——例如,它可用于为电子商务网站构建灵活但快速的产品搜索。它也常与其他工具一起使用来搜索和汇总日志和监控数据。
- Redshift 是 AWS 构建的数据库系统,基于 PostgreSQL,但针对超大数据集进行了优化。它专为“数据仓库”应用程序而设计,您可以在其中针对数据编写复杂的逻辑查询,例如“今年与去年相比,每个城市有多少人同时购买了牙刷和牙膏”。
与其尝试对所有可用的不同服务进行抽象比较,不如从您实际拥有的用例开始,看看哪种工具最适合该需求。
我同意@IMSoP 的上述论断...
比较两者就像比较大象和老虎 - 您还没有真正提出正确的问题。
您真正应该问的是 - 首先,为了最好地满足利益相关者/客户的需求,我对用例的要求是什么,其次,哪种数据存储技术最符合我的要求...
需要明确的是——无论是说 AWS ElasticSearch 服务,还是 FOSS/Enterprise ElasticSearch(两者之间甚至有显着差异)——ElasticSearch 不是关系数据库 (RDBMS),也不是一个完全不SQL(文档存储)数据库,要么...
ElasticSearch 是一个搜索引擎/索引。对于非常具体的用例,它在某些方面做得很好,但是与 RDBMS 数据模型最重要的不同,ElasticSearch 或 NoSQL 不会为您提供 FULL ACID 合规性或事务处理语句处理,因此如果您的用例优先考虑数据完整性、可约束性、可靠性、审计能力、合规性、恢复能力(甚至是时间点)和数据模型的规范化以提高性能和减少数据重复,同时提供深度基数和强制模型约束以实现最佳完整性,”不 SQL 和 Elastic 不是您正在寻找的 Droids...”并且您应该实施 RDBMS 解决方案。如前所述,AWS Redshift 服务基于 PostgreSQL - 这是目前最流行的开源 RDBMS 风格之一,AWS 刚刚作为完全托管的解决方案/服务为其客户提供。
Elastic 介于 RDBMS 和 NoSQL 类别之间,因为它是一种搜索引擎/索引,最适合“单一索引”类型的用例,其中大量内容一次被索引并且在初始批量索引之后,这些文档不会经常更新,但也许我可以强调的最重要的事情是,根据我的经验,如果您希望集群运行良好,它通常不会非常经济高效地扩展(即使是托管集群服务) ,不会随着时间的推移而降级,保留大量历史数据集,并为您的消费者保持高可用性 - 对于大多数人来说,可能会很快变得成本高昂。也就是说,Elastic Search 确实仍然有非常理想的用例,因此始终值得根据您的独特需求进行评估 - 这样做时请牢记可扩展性和成本。
最后让我们称呼 NoSQL 它是什么,一个存储文档集合的文档存储(通常以 JSON 格式),虽然它们也做索引,但提供一些类似的身份验证和授权模型,提供 CRUD 可操作性(甚至现在 SQL 支持,这让我这个职业企业数据工程师傻笑,SQL 现在是从他们的 No[=30= 中查询数据的首选方式] 实例!:D )- 仍然不是传统数据库,可能不会为您提供对数据完整性的太多控制 - 但这正是“NoSQL”文档存储最适合工作的地方 - 非结构化数据——您可能并不总是从一开始就知道您的数据模型会是什么样子,或者您的用例优先考虑数据模型的灵活性而不是一般情况下强制执行数据完整性(非关键任务数据)。最后 - 虽然大多数现代 NoSQL 文档存储可能具有一些表面上看起来类似于 RDBMS 的功能,但我目前不知道该类别中的任何功能可以声称提供关系数据库所做的一切,在我看来,Oracle MySQL 的 DocumentStore 可能是两全其美的(不仅仅是因为我在过去十年中每天都在使用它......)。
所以 - 我希望遇到类似问题的开发人员会遇到这个线程,并且在阅读之后能够更好地了解他们的用例做出最佳设计决策 - 因为如果我们都对自己诚实 - 我们所做的一切在我们的职业中,我们所做的就是数据——无论是生成数据、传输数据、渲染数据、转换数据……这一切都以数据开始和结束,为您的应用程序做出最佳数据存储决策将真正定义您的其余部分项目!
干杯!