Google Cloud Architecture: 数据湖可以用于OLTP吗?

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

模型被部署到微服务中,这些微服务在用户会话数据上执行它们。我的问题是:我应该如何存储这些微服务的“普通业务数据”?我是否需要将提供Web应用的微服务的数据与数据湖中的数据分开,例如,通过使用MariaDB实例(每个用户服务一个数据库)?还是我可以将它们与BigTable连接?

关于数据湖:有没有BigTable的替代方案?另一位开发者告诉我,一个选择是将数据存储在Google Cloud Storage(Buckets)上,并通过DataProc访问这些数据,以节省BigTable的跨区域成本。


回答:

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

我应该如何存储这些微服务的“普通业务数据”?

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

还是我可以将它们与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查询你的数据作为模型的输入,将它们提交给模型并立即获得预测。你可以使用Insert Select查询直接将预测存储到BigQuery中。预测处理是免费的,你只需支付BigQuery中扫描的数据费用!

正如我所说,有很多可能性。缩小你的问题范围以获得更精确的答案!无论如何,希望这对你有帮助

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注