【问题标题】:What is the different between AWS Elasticsearch and AWS RedshiftAWS Elasticsearch 和 AWS Redshift 有什么不同
【发布时间】:2016-09-19 10:49:11
【问题描述】:

我阅读了用于数据分析和集群结构的文档,但我不明白有什么不同的用例。

Amazon Elasticsearch 是一种流行的开源搜索和分析引擎,适用于日志分析、实时应用程序监控和点击流分析等用例。Amazon Elasticsearch

Amazon Redshift 是一种完全托管的 PB 级云数据仓库服务。您可以从几百 GB 的数据开始,然后扩展到 PB 或更多。 Amazon Redshift

【问题讨论】:

  • Amazon Elasticsearch、Amazon Redshift AWS Elastic 和 AWS Elastic MapReduce 是集群,用于数据分析。

标签: amazon-web-services elasticsearch amazon-redshift


【解决方案1】:

我同意@IMSoP 的上述断言...

比较两者就像比较大象和老虎 - 你还没有真正问对正确的问题。

您真正应该问的是 - 首先,我对我的用例有什么要求才能最好地满足我的利益相关者/客户的需求,其次是哪种数据存储技术最符合我的要求...

要明确 - 无论是谈到 AWS ElasticSearch 服务,还是 FOSS / Enterprise ElasticSearch(两者之间甚至存在显着差异) - ElasticSearch 不是关系数据库 (RDBMS),也不是 NoSQL(文档存储)数据库,或者...

ElasticSearch 是一个搜索引擎/索引。对于非常特定的用例,它在某些方面做得很好,但与 RDBMS 数据模型最显着不同的是,ElasticSearch 或 NoSQL 不会为您提供 FULL ACID 合规性或事务性语句处理,因此如果您的用例优先考虑数据完整性、可约束性、可靠性、审计能力、法规遵从性、恢复能力(甚至到时间点)以及数据模型的规范化,以实现性能和最少的数据重复,同时提供深度基数并强制执行模型约束以实现最佳完整性,“NoSQL 和 Elastic 不是你正在寻找的机器人......”,你应该实施一个 RDBMS 解决方案。如前所述,AWS Redshift 服务基于 PostgreSQL - 这是目前最流行的开源 RDBMS 风格之一,由 AWS 作为完全托管的解决方案/服务提供给客户。

Elastic 介于 RDBMS 和 NoSQL 类别之间,因为它是一种搜索引擎/索引,最适用于“单一索引”类型的用例,在这种用例中,大量内容被一次全部编入索引,而这些文档没有更新经常在初始批量索引之后,但也许我要强调的最重要的事情是,根据我的经验,如果您希望集群运行良好,而不是随着时间的推移而降级,保留它通常不会非常经济有效地扩展(即使是托管集群服务)大型历史数据集,并为您的消费者保持高度可用 - 对于大多数人来说,可能会很快变得成本过高。也就是说,Elastic Search 仍然有非常理想的用例,因此始终值得根据您的独特要求进行评估 - 只需在这样做时牢记可扩展性和成本。

最后让我们将 NoSQL 称为它是什么,一个存储文档集合(通常以 JSON 格式)的文档存储,同时它们还进行索引,提供一些身份验证和授权模型的外观,提供 CRUD 可操作性(甚至 SQL现在的支持,这让我的职业企业数据工程师咯咯笑,SQL 现在是从他们的 NoSQL 实例中查询数据的首选方式!:D )- 仍然不是传统数据库,可能不会让你对你的数据的完整性——但这正是“NoSQL”文档存储最适合的设计——非结构化数据——你可能并不总是知道你的数据模型从一开始就会是什么样子,或者你的用例优先考虑数据模型的灵活性通常过度执行数据完整性(非关键任务数据)。最后——虽然大多数现代 NoSQL 文档存储可能具有一些表面上类似于 RDBMS 的特性,但我不知道目前该类别中有任何可以声称提供关系数据库所做的一切,Oracle MySQL 的 DocumentStore 可能是在我看来,两全其美(不仅仅是因为过去十年我每天都在使用它……)。

所以 - 我希望有类似问题的开发人员能看到这个帖子,并且在阅读后能够更好地了解为他们的用例做出最优化的设计决策 - 因为如果我们都对自己诚实 - 我们所做的一切我们的专业是关于数据的——无论是生成数据、传输数据、渲染数据、转换数据......这一切都以数据开始和结束,为您的应用程序做出最优化的数据存储决策将真正定义您项目的其余部分!

干杯!

【讨论】:

    【解决方案2】:

    这让我觉得像是在问“苹果和橙子有什么区别?我听说它们都是水果。”

    AWS 有an overview of the analytics products they offer,在撰写本文时列出了 21 种不同的服务。他们还有a list of database products,其中包括 Redshift 和其他 10 个。没有特别明显的理由为什么应该比较这两个,而忽略两个页面上的其他内容。

    这些工具的功能之间不可避免地存在大量重叠,因此无法为每个工具编写详尽的用例列表。它们的优势和劣势,以及它们易于集成的其他工具,会随着时间而改变,其中一些差异是“品味”或“风格”的问题。

    关于问题中挑出的两个:

    • Elasticsearch 是elastic.co 构建的产品,AWS 可以为其管理安装和配置。顾名思义,它的核心功能基于搜索——例如,它可用于为电子商务网站构建灵活但快速的产品搜索。它还经常与其他工具一起用于搜索和汇总日志以及监控数据。
    • Redshift 是 AWS 构建的数据库系统,基于 PostgreSQL,但针对超大型数据集进行了优化。它专为“数据仓库”应用程序而设计,您可以在其中针对数据编写复杂的逻辑查询,例如“今年与去年相比,每个城市有多少人同时购买了牙刷和牙膏”。

    与其尝试对所有可用的不同服务进行抽象比较,不如从您实际拥有的用例开始,看看哪种工具最适合该需求。

    【讨论】:

      【解决方案3】:

      Amazon Redshift 是托管数据仓库产品,而 Amazon Elasticsearch 是托管 ElasticSearch 集群。
      Redshift 基于 PostgreSQL 并且(afaik)主要用于 BI 目的和其他计算密集型作业,Amazon Elasticsearch 是一个开箱即用的 ElasticSearch 托管集群(您不能使用它来运行 SQL 查询,因为 ES 是NoSQL 数据库)。

      Amazon Redshift 和 Amazon ES 都是托管服务,这意味着您无需执行任何操作即可管理您的服务器(这就是您支付的费用)。使用 AWS 控制台,您可以添加新集群,并且无需运行任何命令即可安装任何软件 - 您只需选择在哪个服务器上运行集群(节点数、磁盘、内存等)。

      如果您不熟悉ElasticSearch,您应该查看他们的网站。


      编辑:现在可以在 ElasticSearch 上编写 SQL 查询:SQL Support for AWS ElasticSearch

      【讨论】:

      • 你的意思是Redshift和ElasticSearch都提供BI和管理目的,但不同的是能不能查询?
      • 我认为现在答案已经过时了,因为我们现在可以在 ES 上编写 SQL 类型的查询:docs.aws.amazon.com/elasticsearch-service/latest/developerguide/…
      • @NagarajanShanmuganathan 感谢您的评论,请随时使用最新数据更新答案(请不要更改答案,只需添加更多信息即可)。
      猜你喜欢
      • 2016-10-04
      • 1970-01-01
      • 1970-01-01
      • 2016-02-13
      • 2018-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-25
      相关资源
      最近更新 更多