0
votes

Trying to use Google Cloud Datastore to store streaming data from IOT devices. Currently getting data from 10,000 devices at rate of 2 rows (entities) in one minute per device. Data entities would never be updated but purged at regular interval. Backend code is in PHP.

  1. Do I need to partition my data to get better performance as I do at present in MySQL table. Currently using table partitions based on key.

  2. If Yes, Should I used use namespaces as one NAMESPACE for one device OR I should create one KIND for one device such as "device_data_1", "device_data_2"

Thanks

1
That's lots of data, I suggest you do cost simulation first. Datastore is expensive to store lots of small things (better packed them into a bigger entities) as the charge is per write and independent of the entity size. - marcadian

1 Answers

1
votes

No, you do not need partitioning, the datastore performance is not impacted by the number or entities being written or read (as long as they're not in the same entity group, which has an overall write rate of 1/sec).

See also these somehow related answers: Does Google Datastore have a provisioned capacity system like DynamoDB?