Google Cloud - 时序数据清洗有哪些产品?

Google Cloud - What products for time series data cleaning?

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

我目前的管道是:

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

然后我下载存储桶中的一部分文件:

使用 Python/SFrame 处理 interpolation/resampling 数据,因为一些时间序列数据缺少时间并且采样不均匀。

但是,在本地 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,但它处于测试阶段。不确定它是否可以做时间序列 resampling/interpolation.

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

谢谢

我会在 Dataproc 上使用 PySpark,因为 Spark 不仅 realtime/streaming 还可以用于批处理。

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

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

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

公平地说:我在 DataFlow 或 DataPrep 方面经验不多,但那是因为我们的用例与您的用例有些相似,而 Dataproc 可以很好地满足您的需求

Cloud Dataflow 是批处理数据,Cloud Dataproc 是托管的 Spark 和 Hadoop 服务,Cloud Dataprep 用于 Transform/Clean 原始数据。它们都可以用来执行 interpolation/resampling 的数据。

我会舍弃 Cloud Dataprep. It might change in backward-incompatible ways because is in beta release. The main difference between Cloud Dataflow and Cloud Dataproc 是最后一项中的集群管理功能。如果您不希望通过管理集群明显卷土重来,Cloud Dataflow 是您可以在其中以最简单的方式设置上述操作的产品。

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

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