【问题标题】:Using Google ML Engine with BigQuery?将 Google ML 引擎与 BigQuery 结合使用?
【发布时间】:2018-01-06 11:50:54
【问题描述】:

我目前正在 BigQuery 中设计一个数据仓库。我打算存储用户数据,例如过去的购买或废弃的购物车。

这似乎非常适合手动分析趋势并获得洞察力。但是,如果我想利用机器学习,例如向一组用户推荐产品? 我研究过 Google ML Engine 和 TensorFlow,似乎 TensorFlow 模型需要先查询 BigQuery。在某些情况下,这可能意味着 TensorFlow 需要查询存储在 BigQuery 中的全部或大部分数据。

这感觉有点不对劲,所以我想知道这是否真的是事情应该发生的方式。否则,我假设我的 ML 模型将不得不处理陈旧的数据?

【问题讨论】:

  • 在我们公司,我们也有一个 BQ DW,我们也用它来构建模型。我们所做的大部分工作是让一些 GAE 每日 cron 为我们在其他 BQ 表中构建的每个算法准备数据,以便在模型运行时所有数据都已经设置好。我写了一个blog post,介绍了我们如何在 GCP 中实现我们的推荐系统,它使用 Dataproc,但您仍然可以看到我们如何每天准备数据。它也可能对您在用例中应该如何做有所帮助。
  • @WillianFuks - 在 Stack Overflow 之外与您联系的最佳方式是什么?想问你一些事情。
  • @GrahamPolley Hi Graham :),如果你想要我的电子邮件是 gmail 中的 willian.fuks 或 skype 也是这个名字。
  • 酷。在 Skype 上联系你 @WillianFuks
  • @WillianFuks,很棒的博文,非常相关。如果您将数据直接保存到 Cloud Spanner 或 Datastore 而不是 BigQuery 中,这项任务会更容易吗?如果我打算大量使用 ML 数据,我想知道 BigQuery 是否不是最佳存储引擎

标签: machine-learning google-bigquery google-cloud-platform


【解决方案1】:

所以我同意你的观点,将 BigQuery 用作机器学习的数据仓库很昂贵。使用 Google Cloud Storage 存储您希望处理的所有数据会更便宜、更高效。处理并生成所有内容后,您可能然后希望将该数据推送到 BigQuery,然后将该数据推送到其他来源,例如 Spanner 甚至 Cloud Storage。

话虽如此,谷歌现在已经创建了一个测试版产品BigQuery ML。现在,这允许用户通过使用 SQL 查询在 BigQuery 中创建和执行机器学习模型。我相信它在底层使用了 python 和 tensorflow,但我相信这将是最好的解决方案,因为你有一个轻量级的 ML 负载。

由于目前仍处于测试阶段,我不太清楚它与 Google ML 引擎和 tensorflow 相比的性能。

【讨论】:

    【解决方案2】:

    根据您要训练的模型类型以及您希望如何为模型提供服务,您可以执行以下选项之一:

    • 您可以将数据以 CSV 格式导出到 Google Cloud Storage,然后读取 Cloud ML Engine 中的文件。这将让您使用 Tensorflow 的强大功能,然后您可以使用 Cloud ML Engine 的服务系统将流量发送到您的模型。 不利的一面是,这意味着您必须将所有 BigQuery 数据导出到 GCS,并且每次您决定对数据进行任何更改时,您都需要返回 BigQuery 并再次导出。此外,如果您要预测的数据在 BigQuery 中,您还必须将其导出并使用单独的系统将其发送到 Cloud ML Engine。

    • 如果您想探索和以交互方式训练数据的逻辑或线性回归模型,您可以使用BigQuery Machine learning。这将允许您在 BigQuery 中对数据进行切片和切块,并试验数据的不同部分和各种预处理选项。您还可以使用 SQL 的所有功能。 BigQuery ML 还允许您在 BigQuery 中训练后使用模型(您可以使用 SQL 将数据输入模型)。 在许多情况下,不需要使用 Tensorflow 的全部功能(即使用 DNN)。对于结构化数据尤其如此。另一方面,您的大部分时间将花在预处理和清理数据上,这在 BigQuery 中的 SQL 中会容易得多。

    所以你有两个选择。根据您的需要进行选择。

    P.S.:您也可以尝试在 Tensorflow 中使用 BigQuery Reader。我不推荐它,因为它非常慢。但如果您的数据量不大,它可能对您有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-17
      • 1970-01-01
      • 1970-01-01
      • 2019-02-24
      • 2021-10-05
      • 2019-01-16
      • 2021-01-01
      • 1970-01-01
      相关资源
      最近更新 更多