哇,很多问题,很多假设和很多可能性。最好的答案是“一切取决于您的需求”!
我在哪里存储这个微服务的“正常业务数据”?
你想在这些微服务中做什么?
或者我可以将它们与 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,不是用于训练(除非标准模型符合您的需求,但我怀疑),而是用于服务部分。
- 将您的 TensorFlow 模型加载到 BigQueryML
- 只需使用 BigQuery 作为模型的输入查询您的数据,将它们提交到您的模型并立即获得预测。您可以通过查询将其直接存储到 BigQuery 中
Insert Select
。预测处理是免费的,您只需为扫描到 BigQuery 的数据付费!
正如我所说,可能性很大。缩小你的问题以获得更清晰的答案!无论如何,希望这有帮助