Google Cloud Datastore - Удалить шаблон - PullRequest
0 голосов
/ 22 сентября 2019

Я использую Google Datastore для хранения нескольких объектов.Миллионы.В какой-то момент я больше не хочу хранить строки в базе данных.Критерий для удаления - удалить все строки старше 10 дней.

Я видел, что Google предоставляет два варианта выполнения этой работы:

  1. Отправить команду удаления в пакетном режиме.Конечно, вы должны получить все идентификаторы раньше.Это звучит как очень медленная идея, когда вам нужно удалить миллионы строк.Это также дорого.
  2. Воспользуйтесь продуктом Google Dataflow и предоставьте возможность удаления больших объемов данных из хранилища данных.Проблема здесь только в цене - высокая цена.

Проблема этих двух вариантов выше - это цена.Я подсчитал, что цена удаления 16M строк в месяц обойдется в 480 $ (операции чтения хранилища данных + операции удаления) - это слишком много денег для небольших задач.В дополнение к этому вы должны добавить операционные расходы потока данных.

Кажется, что нет дешевого варианта удаления данных из хранилища данных - я ошибаюсь?

1 Ответ

2 голосов
/ 22 сентября 2019

Вам не нужно читать, чтобы удалить.Удаление основано на ключах.Итак, все, что вам нужно, это определить ключи.Для этого вы можете выполнять только запросы ключей, которые намного дешевле (всего одна операция для всей проекции, хотя может быть ограничение на количество ключей, которые можно получить за один раз с запросом проекции).

ТакжеКак вы рассчитали 480 долларов?Согласно

https://cloud.google.com/datastore/pricing

для мультирегиона, он стоит 0,06 долл. США за 100 000 операций чтения и 0,02 долл. США за 100 000 операций удаления.Используя эти числа, я получаю следующее для 16M.

16 * 10 ^ 6 * ((1/1000) * 0,06 / 10 ^ 5 + 0,02 / 10 ^ 5) = 3,2096

Здесь коэффициент 1/1000 представляет собой одну операцию чтения для 1000 ключей, считанных с использованием запроса только ключей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...