Установите TTL при использовании Aerospike со Spark в Java

Я новичок в Aerospike. Мы используем Aerospike со Spark (Java) для нашей системы.

Я хочу установить TTL для кадра данных каждый раз, когда данные записываются в Aerospike. Однако я не смог найти способ сделать это даже из документа или Интернета.

Мой текущий синтаксис записи:

networkDs.write()
        .mode(SaveMode.Overwrite)
        .format("com.aerospike.spark.sql")
        .option("aerospike.set", Const.AEROSPIKE_SET)
        .option("aerospike.updateByKey", "id")
        .save();

Может кто-нибудь сказать мне, как это сделать?

Большое спасибо.


person tuancoltech    schedule 14.08.2017    source источник


Ответы (1)


Я не уверен, что хорошо понимаю ваш вопрос, но чтобы использовать TTL при сохранении с помощью aerospike, вы должны сохранить его в столбце в DataSet/DataFrame до его сохранения.

Примечание. Время жизни (TTL) можно установить отдельно для каждой записи.

Чтобы включить обновление TTL, указывается дополнительная опция:

option("aerospike.ttlColumn", "expiry")

Это означает, что TTL — это ваш столбец expiry.

Надеюсь, это поможет.

Для получения дополнительной информации я советую вам ознакомиться с aerospike учебной документацией. .

person eliasah    schedule 14.08.2017
comment
Спасибо за быстрый ответ. На самом деле текущая схема уже имеет столбцы по умолчанию для TTL, когда я ее распечатываю (__ttl). Должен ли я по-прежнему включать указанную выше строку параметров в операцию записи? Кроме того, у меня нет параметра для указания точного TTL, например, 300 или 500? - person tuancoltech; 14.08.2017
comment
Да @tuancoltech. Вам нужно будет указать столбец, я не уверен, что для этого есть настройка по умолчанию. - person eliasah; 14.08.2017
comment
Я только что проверил, добавив поле истечения срока действия в свой объект, и это работает. Однако таким образом нам всегда придется создавать дополнительное поле в нашем исходном объекте данных, что, по моему скромному мнению, немного избыточно, поскольку я думал, что у Aerospike есть собственный механизм для управления временем истечения срока действия строки независимо от какую информацию содержит объект. Что ты думаешь об этом, @eliasah? - person tuancoltech; 14.08.2017
comment
@tuancoltech Этот разъем поддерживается aerospike. Я также согласен с вами по поводу избыточности, но именно так они ее реализовали. Другого пути пока нет. Я поделился с вами официальным руководством по документации, и вот как они это делают. - person eliasah; 14.08.2017
comment
Конечно. Большое спасибо Элиас. - person tuancoltech; 14.08.2017