首页 文章

将Google ML引擎与BigQuery一起使用?

提问于
浏览
2

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

这似乎是完美的手动分析趋势和获得见解 . 但是,如果我想利用机器学习,例如,向一组用户推荐产品?我查看了Google ML Engine和TensorFlow,看起来TensorFlow模型首先需要查询BigQuery . 在某些情况下,这可能意味着TensorFlow需要查询存储在BigQuery中的所有或大多数数据 .

这感觉有点偏,所以我想知道这是不是应该发生的事情 . 否则,我认为我的ML模型必须使用陈旧数据?

2 回答

  • 1

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

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

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

    所以你有两个选择 . 根据您的需求选择 .

    P.S . :您也可以尝试在Tensorflow中使用BigQuery Reader . 我不推荐它,因为它很慢 . 但如果您的数据不是很大,它可能适合您 .

  • 1

    所以我同意你的看法,使用BigQuery作为你的ML的数据仓库是昂贵的 . 使用Google Cloud 端存储来存储您希望处理的所有数据会更便宜,效率更高 . 处理和生成所有内容后,您可能希望将该数据推送到BigQuery,将该数据推送到其他来源,如Spanner甚至 Cloud 存储 .

    据说谷歌现在已经创建了一个测试产品BigQuery ML . 现在,这允许用户通过使用SQL查询在BigQuery中创建和执行机器学习模型 . 我相信它在引擎盖下使用python和tensorflow,但我相信这是最好的解决方案,因为你有一个轻量级ML负载 .

    由于目前仍处于测试阶段,我不太清楚它的性能与谷歌ML引擎和张量流相比 .

相关问题