The core business of your company is to rent out construction equipment at large scale.
All the equipment that is being rented out has been equipped with multiple sensors that send event information every few seconds.
These signals can vary from engine status, distance traveled, fuel level, and more.
Customers are billed based on the consumption monitored by these sensors.
You expect high throughput " up to thousands of events per hour per device " and need to retrieve consistent data based on the time of the event.
Storing and retrieving individual signals should be atomic.
What should you do?
Click on the arrows to vote for the correct answer
A. B. C. D.D.
Given the scenario of renting out construction equipment that is equipped with multiple sensors sending event information, the challenge is to store and retrieve the data for billing purposes. High throughput is expected with up to thousands of events per hour per device, and data needs to be consistent based on the time of the event. Additionally, storing and retrieving individual signals should be atomic.
Option A suggests creating a file in Cloud Storage per device and appending new data to that file. While this approach is simple, it may not be ideal for high throughput scenarios since it requires frequent read and write operations. Moreover, ensuring consistency of data based on the time of the event could be challenging.
Option B suggests creating a file in Cloud Filestore per device and appending new data to that file. Cloud Filestore is a managed file storage service for applications that require a file system interface and a shared file system for data. However, the same challenges with high throughput and consistency of data as in Option A persist.
Option C suggests ingesting the data into Datastore and storing data in an entity group based on the device. Datastore is a NoSQL document database service that can scale horizontally and provides strong consistency. The suggested approach of storing data in an entity group based on the device can provide strong consistency and atomic updates, but it may not be ideal for high-throughput scenarios as it may require frequent read and write operations.
Option D suggests ingesting the data into Cloud Bigtable and creating a row key based on the event timestamp. Cloud Bigtable is a NoSQL wide-column database service that can scale horizontally and provides strong consistency. The suggested approach of creating a row key based on the event timestamp can ensure that data is consistent based on the time of the event, and since Cloud Bigtable can handle high throughput, it is well suited for this scenario. Additionally, storing and retrieving individual signals can be done atomically with Cloud Bigtable.
Therefore, Option D is the best solution for this scenario, as it can handle high throughput, ensure consistency of data based on the time of the event, and store and retrieve individual signals atomically.