【问题标题】:Google Cloud - What products for time series data cleaning?谷歌云——时间序列数据清理有哪些产品?
【发布时间】:2018-09-23 08:18:56
【问题描述】:

我在大查询中存储了大约 20TB 的时间序列数据。

我目前的管道是:

大查询中的原始数据 => 加入大查询以创建更多大查询数据集 => 将它们存储在存储桶中

然后我下载存储桶中的文件子集:

使用 Python/SFrame 对数据进行插值/重采样,因为一些时间序列数据缺少时间并且采样不均匀。

但是,在本地 PC 上需要很长时间,而且我猜这 20TB 的数据需要几天的时间。


由于数据已经在存储桶中,我想知道最好的 Google 插值和重采样工具是什么?

重新采样和插值后,我可能会使用 Facebook 的 Prophet 或 Auto ARIMA 来创建一些预测。但这将在本地完成。


Google 提供的一些服务似乎是不错的选择。

  1. Cloud DataFlow:我没有使用 Apache Beam 的经验,但与 Java 版本相比,使用 Apache Beam 的 Python API 似乎缺少功能?我知道如何编写 Java,但我想使用一种编程语言来完成这项任务。

  2. Cloud DataProc:我知道如何编写 PySpark,但我真的不需要任何实时处理或流处理,但是 spark 有时间序列插值,所以这可能是唯一的选择?

  3. Cloud Dataprep:看起来像一个用于清理数据的 GUI,但它处于测试阶段。不确定它是否可以进行时间序列重采样/插值。

有人知道最适合我的用例吗?

谢谢

【问题讨论】:

    标签: python apache-spark google-cloud-platform google-cloud-dataflow google-cloud-dataproc


    【解决方案1】:

    我会在 Dataproc 上使用 PySpark,因为 Spark 不仅是实时/流式处理,而且还用于批处理。

    您可以选择集群的大小(并使用一些抢占式来节省成本)并仅在您实际需要处理此数据的时间运行此集群。然后杀死集群。

    Spark 也可以很好地与 Python 配合使用(不如 Scala 好),但就所有效果和用途而言,主要区别在于性能,而不是 API 功能的减少。

    即使使用批处理,您也可以使用 WindowSpec 进行有效的时间序列插值

    公平地说:我在 DataFlow 或 DataPrep 方面没有太多经验,但那是因为用例与您的用例有些相似,而 Dataproc 很适合这种情况

    【讨论】:

      【解决方案2】:

      Cloud Dataflow 是批处理数据,Cloud Dataproc 是托管 Spark 和 Hadoop 服务,Cloud Dataprep 用于转换/清理原始数据。所有这些都可用于执行数据的插值/重采样。

      我会丢弃Cloud Dataprep。由于处于 beta 版本,它可能会以向后不兼容的方式发生变化。 Cloud DataflowCloud Dataproc 的主要区别在于最后一个中的集群管理能力。如果您不希望通过管理集群来明显地卷土重来,Cloud Dataflow 是您可以在其中以最简单的方式设置上述操作的产品。

      Apache Beam Java 版本比 Python 版本旧,因为 Apache Beam 1.X 仅支持 Java。新的 2.X 版本支持两种语言,没有明显的Python/Java 区别。

      如果您认为 Dataflow 是最合适的选项,您会发现这个 Dataflow timeseries example 在 Java 中很有用。

      【讨论】:

        猜你喜欢
        • 2020-07-11
        • 1970-01-01
        • 2020-02-22
        • 2016-06-03
        • 2016-07-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-17
        • 2018-10-07
        相关资源
        最近更新 更多