1

我想在 Google 云中设计一个大型 Web 应用程序,我需要一个 OLAP 系统来创建 ML 模型,我计划通过 Pub/Sub 将所有数据发送到BigTable数据湖来设计这些模型。模型由dataproc进程创建。

这些模型被部署到微服务中,这些微服务根据用户会话中的数据执行它们。我的问题是:我在哪里存储这个微服务的“正常业务数据”?我是否必须将提供 Web 应用程序的微服务的数据与数据湖中的数据分开,例如通过使用MariaDB实例(db per uS)?或者我可以将它们与BigTable连接起来吗?

关于数据湖:是否有BigTable的替代品?另一位开发人员告诉我,一种选择是将数据存储在 Google Cloud Storage (Buckets) 上,并使用DataProc访问这些数据,以节省 BigTable 的跨区域成本。

4

1 回答 1

2

哇,很多问题,很多假设和很多可能性。最好的答案是“一切取决于您的需求”!

我在哪里存储这个微服务的“正常业务数据”?

你想在这些微服务中做什么?

或者我可以将它们与 BigTable 连接起来吗?

是的,你可以,但你需要这个吗?如果您在处理之前需要原始数据,可以连接到 BigTable 并查询它!

如果没有,最好有一个批处理来预处理原始数据并仅将摘要存储在关系或文档数据库中(用户延迟更好,但细节更少)

BigTable 有替代品吗?

取决于你的需要。BigTable 非常适合高吞吐量。如果您每秒的流写入量少于100 万,则可以考虑使用 BigQuery。借助联合表,您还可以使用 BigQuery 引擎查询 BigTable 表

BigTable、BigQuery 和 Cloud Storage 可通过 dataproc 访问,因此您可以根据需要进行访问!

另一位开发人员告诉我,一种选择是将数据存储在 Google Cloud Storage(Buckets)上

是的,您可以流式传输到 Cloud Storage,但请注意,您没有校验和验证,因此您可以确保您的数据没有损坏。


笔记

您可以以其他方式思考您的应用程序。如果您将事件发布到 PubSub,一种常见的模式是使用Dataflow处理它们,至少对于预处理->您用于训练模型的 dataproc 工作会像这样更容易!

如果您训练 Tensorflow 模型,您还可以考虑 BigQuery ML,不是用于训练(除非标准模型符合您的需求,但我怀疑),而是用于服务部分。

  1. 将您的 TensorFlow 模型加载到 BigQueryML
  2. 只需使用 BigQuery 作为模型的输入查询您的数据,将它们提交到您的模型并立即获得预测。您可以通过查询将其直接存储到 BigQuery 中Insert Select预测处理是免费的,您只需为扫描到 BigQuery 的数据付费!

正如我所说,可能性很大。缩小你的问题以获得更清晰的答案!无论如何,希望这有帮助

于 2020-01-18T20:58:53.823 回答