当前位置: 首页 > 科技观察

开源的ApacheCassandra、Kafka、Spark、ES什么时候该用,什么时候不该用?

时间:2023-03-15 10:28:33 科技观察

【.com快言】几乎所有的技术决策都需要满足两个基本标准:使业务能够实现业务目标,以及与技术架构的其余部分协同工作。在选择用于构建应用程序架构的数据层技术时,开源ApacheCassandra、ApacheKafka、ApacheSpark和Elasticsearch继续蓬勃发展。但是,它们并不是每个用例的正确选择。让我们仔细看看这些技术中的每一种,以及这些开源解决方案适用和不适用的一些用例。1.ApacheCassandraCassandra最初由Facebook于2007年创建,利用Dynamo架构和Bigtable风格的数据模型提供NoSQL数据存储,从而提供高可用性和高扩展性。?什么时候应该使用ApacheCassandra?Cassandra非常适合需要最高级别的始终在线可用性的用例。该数据库还特别适合为预期有大量工作负载的企业提供服务,或者希望确保其服务能够随着工作负载的增加而灵活增长,Cassandra具有易于扩展的优势。Cassandra提供可靠的数据冗余和跨多个数据中心的双活操作。?什么时候不应该使用它?当面对数据仓库或纯分析存储(即使考虑可用的Spark连接器和Tableau和Hadoop插件)时,Cassandra比其他技术消耗更多的资源。Cassandra尚不适合实时分析,尤其是最终用户临时或自定义查询的形式,因为应用程序端实现代码的需求可能变得复杂。此外,Cassandra无法满足大多数ACID要求。2.ApacheKafkaApacheKafka最初是由LinkedIn的技术团队创建的,它提供了一个高度可扩展和高可用的流媒体平台和消息总线。Kafka充当分布式日志,新到达的消息被添加到队列的头部,读者(消费者)将根据偏移量消费它们。?什么时候应该使用ApacheKafka?ApacheKafka通常是涉及微服务和面向服务架构的用例的明智选择。Kafka还可以作为一个高效的工作队列,能够协调不同的工作路径,通过监听和等待工作到达来预留计算能力。该平台的流处理能力适用于异常检测、钻取和聚合以及传递指标。Kafka还是一项强大的技术,可用于事件溯源、跨各种微服务的数据协调以及为分布式系统提供外部提交日志。其他合适的用例包括日志聚合、数据屏蔽和过滤、数据丰富和欺诈检测。?什么时候不应该使用它?虽然在某些情况下这可能很诱人,但切勿将Kafka用作数据库或记录源,至少在没有很好地了解Kafka对此用例的限制和属性的情况下。真正的数据库几乎总是更容易操作和更灵活。对于涉及整个主题的顺序处理,Kafka是同样糟糕的选择。在目标是将数据包快速推送到终端源的任何用例中,例如实时音频和视频或其他有损数据流,企业应该使用自定义解决方案而不是Kafka。3.ApacheSparkApacheSpark是一个通用的集群计算框架,适用于涉及大量数据的用例。它对数据进行划分并对划分后的数据进行计算,以便工作人员可以执行所有可能的工作,直到其他工作人员需要他们为止。数据。这种设计为Spark提供了巨大的可扩展性和可用性,同时使其对数据丢失具有极强的弹性。?什么时候应该使用ApacheSpark?Spark适用于涉及大规模分析的用例,尤其是当数据通过多个来源到达时。Spark是适用于ETL或任何需要在系统之间移动数据的用例的强大解决方案,无论是用于从事务性数据存储持续填充数据仓库或数据湖,还是用于数据库或系统迁移之间的一次性场景。在现有数据上构建机器学习管道、处理高延迟数据流或执行交互式、临时或探索性分析的组织会发现Spark非常适合。Spark还从合规角度提供数据屏蔽、数据过滤、大数据集审计等功能,适合帮助企业满足合规需求。?什么时候不应该使用它?对于涉及实时或低延迟处理的用例,Spark通常不是最佳选择。(ApacheKafka或其他技术提供出色的端到端延迟以满足这些要求,包括实时流处理)。在处理小型或单个数据集时,Spark通常是一种矫枉过正的方法。此外,当涉及到数据仓库和数据湖时,最好使用先进技术而不是ApacheSpark,尽管Spark确实存在此类产品。4.ElasticsearchElasticsearch提供了一个全文搜索引擎,它具有广泛的功能来搜索和分析非结构化数据。该技术提供近乎实时的可扩展线性搜索、强大的搜索即席替换和强大的分析。?什么时候应该使用Elasticsearch?Elasticsearch非常适合需要全文搜索、地理搜索、获取和汇总公共数据、日志记录和日志分析、可视化以及少量事件数据和指标的用例。?什么时候不应该使用它?Elasticsearch不应用作关系数据的数据库或记录源,也不应用于满足ACID要求。选择互补技术为您的企业(无论是否开源)选择最佳技术组合显然不仅需要评估解决方案本身,还需要决策者设想企业将如何采用和使用每种解决方案作为技术架构的一部分。ApacheCassandra、ApacheKafka、ApacheSpark和Elasticsearch提供了一组特别互补的技术,使企业可以明智地将它们结合起来;并且由于它们的开源性质,它们不需要许可费用,也不需要供应商锁定。如果将这些技术结合起来,发挥它们所带来的优势,企业就可以实现自己的目标,开发出高可扩展、高可用、易移植、极富弹性的应用。原标题:When–andWhenNot–toUseOpenSourceApacheCassandra,Kafka,SparkandElasticsearch,作者:BenSlater