代码之家  ›  专栏  ›  技术社区  ›  Thomas Decaux

使用Apache Spark查询时间序列时的透明缓存

  •  2
  • Thomas Decaux  · 技术社区  · 6 年前

    我们有时间序列数据,如HDFS中的每日3 GB拼花文件( hdfs:///data/year=X/month=X/day=X/data.parquet.gz ),仓库按配置单元划分为数据表。

    整个晚上,我们都在用Apache Spark运行SQL查询以生成报告:

    (1) SELECT date, count(*) from data GROUP BY date
    

    (当然我们有更复杂的查询^^)

    我注意到ApacheSpark将在我们所有的数据集上运行查询(这是正常的),但如果可能的话,我想重复使用前一天的数据,因为前一天的数据永远不会改变。

    解决方案到位

    我可以通过进行增量整合来实现这一点:

    (2) INSERT INTO consolidation SELECT date, count(*) FROM data WHERE date="yesterday"

    然后对其运行查询( (3) SELECT date, value FROM consolidation )

    我想要透明缓存

    我想知道是否有可能通过破解Spark如何生成 logical plan ,我不知道。

    0 回复  |  直到 6 年前