从物联网设备接收到的数据存储在 Google 云端的什么位置?

Where does data received from an IOT device get stored on Google Cloud?

我今天开始玩 Google Cloud IOT Core。 我完成了教程和 运行 一个脚本,用于将消息从虚拟设备发送回我的主题(如果这是正确的措辞)。 如果我想提取由我的虚拟设备发送的消息,我 运行 以下内容:

gcloud pubsub subscriptions pull --auto-ack projects/glass-potion-314513/subscriptions/my-subscription

并返回以下内容:

┌──────────────────────────────────────┬──────────────────┬──────────────┬────────────────────────────────────┬──────────────────┐
│                 DATA                 │    MESSAGE_ID    │ ORDERING_KEY │             ATTRIBUTES             │ DELIVERY_ATTEMPT │
├──────────────────────────────────────┼──────────────────┼──────────────┼────────────────────────────────────┼──────────────────┤
│ my-registry/my-node-device-payload-3 │ 2426853517884309 │              │ deviceId=my-node-device            │                  │
│                                      │                  │              │ deviceNumId=2812664419074966       │                  │
│                                      │                  │              │ deviceRegistryId=my-registry       │                  │
│                                      │                  │              │ deviceRegistryLocation=us-central1 │                  │
│                                      │                  │              │ projectId=glass-potion-314513      │                  │
│                                      │                  │              │ subFolder=                         │                  │
└──────────────────────────────────────┴──────────────────┴──────────────┴────────────────────────────────────┴──────────────────┘

一切顺利。

但是,这些数据实际存储在哪里?我如何访问以便在下游流程(例如分析等)中使用? 我探索了 Cloud IOT UI 但在那里找不到任何东西。

Cloud IOT 不会规定您设备数据的存储方式。

请考虑审查 IoT technical overview in the Google Cloud Architecture center and some of the proposed architectures, especially Designing a Connected Vehicle Platform on IoT Core

IoT Core main documentation 也提供了一个非常方便的图表:

所有这些架构通常都基于以某种或其他方式处理从您的设备接收到的信息Pub/Sub。

Pub/Sub 是一个消息代理,与 Kafka、Active MQ 等其他系统类似但有细微差别。它允许您在 Google 云平台中解耦并同时互连不同的服务(不同的服务可以将信息发布到某个主题,而其他服务可以使用它)。但是它不会自己提供消息持久化存储的方式:据default,消息保留期最多为7 7天。

如果需要,存储这些消息的责任在于使用这些消息的服务。

您可以使用任何可以使用来自这些 Pub/Sub 主题的消息的服务,但通常您会使用像 Dataflow 这样的产品,这是一种高级流或批处理数据处理工具,它允许您处理您的设备数据并在必要时将其分发到不同的存储服务。

如果您对分析感兴趣,应该选择 Bigtable 或更好的 BigQuery。还有several Dataflow templates available out of the box for storing your Pub/Sub information in BigQuery. Please, consider review this excellent related article

您也可以将设备信息存储在其他服务中,例如云 SQL、托管关系数据库服务版本 MySQL、PostgreSQL 和 SQL 服务器、Cloud Firestore(以前称为 Datastore)、一种风格或 NoSQL 数据库,甚至是 Cloud Storage,用于将您的设备信息存储为 plain、非结构化对象。虽然现在有点过时,但请参阅非凡 grumpygrace.dev flowcharts page 中的 什么存储类型? 部分,了解有关可用的不同存储选项的更多信息。