我目前正在BigQuery中设计一个数据仓库。我计划存储用户数据,比如过去的购买记录或放弃的购物车。
这似乎非常适合手动分析趋势和获取洞察。但是,如果我想利用机器学习,例如向一组用户推荐产品呢?我已经研究了Google ML Engine和TensorFlow,看起来TensorFlow模型需要首先查询BigQuery。在某些情况下,这可能意味着TensorFlow需要查询BigQuery中存储的所有或大部分数据。
这感觉有点不对劲,所以我想知道事情是否真应该这样进行。否则,我假设我的机器学习模型将不得不处理陈旧的数据?
回答:
所以我同意你的观点,使用BigQuery作为机器学习的数据仓库成本高昂。使用Google Cloud Storage来存储所有你希望处理的数据会更便宜且高效得多。一旦所有数据都处理并生成后,你可能然后希望将这些数据推送到BigQuery,或推送到其他来源如Spanner甚至Cloud Storage。
话虽如此,Google现在已经创建了一个测试版产品BigQuery ML。这现在允许用户通过使用SQL查询在BigQuery中创建和执行机器学习模型。我相信它在后台使用Python和TensorFlow,但鉴于你有轻量级的机器学习负载,我认为它将是最佳解决方案。
由于它目前仍处于测试阶段,我不知道它的性能与Google ML Engine和TensorFlow相比如何。