这将是一个更快(更好)的工具,用于查询以Parquet格式存储的数据--Spark SQL,Athena或ElasticSearch?

问题描述 投票:1回答:1

我目前正在构建一个ETL管道,它将数据表(约100 + GB的顺序)输出到下游交互式仪表板,该仪表板允许动态过滤数据(基于预定义和索引过滤器)。

暂时使用PySpark / Spark进行初始ETL阶段。接下来,将汇总此处理的数据(简单计数,平均值等),然后在交互式仪表板中进行可视化。

对于交互式查询部分,我想知道哪种工具可能最适合我的结构化和交易数据(以Parquet格式存储) -

  1. Spark SQL(在内存中动态查询)
  2. AWS Athena(无服务器SQL查询,基于Presto)
  3. 弹性搜索(搜索引擎)
  4. Redis(键值DB)

如果您知道更好的选择,请随意提出替代工具。

performance apache-spark elasticsearch etl amazon-athena
1个回答
1
投票

根据您提供的信息,我将做出几个假设:

  1. 你是在AWS(因此Elastic SearchAthena是选项)。因此,我将引导您访问AWS文档。
  2. 由于您有预定义和索引过滤器,因此您拥有排序良好的结构化数据。

仔细阅读列出的选项

  1. Spark SQL - 如果您已经在考虑Spark并且您已经在AWS上,那么您可以利用AWS Elastic Map Reduce
  2. AWS Athena(无服务器SQL查询,基于Presto) - Athena是一个功能强大的工具。它允许您查询存储在S3上的数据,这是非常划算的。但是,在Athena中构建工作流程可能需要一些工作,因为您将花费大量时间在S3上管理文件。此外,Athena只能生成CSV输出,因此它通常最适合作为大数据管道的最后阶段。
  3. Elastic Search(搜索引擎) - 它不是一个真正的查询工具,所以它很可能不是这个管道核心的一部分。
  4. Redis(键值DB) - Redis是内存键值数据存储。它通常用于提供少量信息,以便在caching and session management等用例中快速消耗。因此,它似乎不适合您的用例。如果您想亲身体验Redis,我推荐Try Redis

我也会看看Amazon Redshift

如需进一步阅读,请阅读Big Data Analytics Options on AWS

正如@Damien_The_Unbeliever所推荐的那样,您自己的原型设计和基准测试将无法替代。

© www.soinside.com 2019 - 2024. All rights reserved.