Мне нужно получить некоторые данные из базы данных Teradata с помощью logstash.Чтобы получить только самые новые данные, я хочу использовать logstash :sql_last_value
для столбца отслеживания TS, тип отметки времени.Я застрял с получением значения метки времени из базы данных.
На форуме teradata нашел идею:
SELECT CAST(CURRENT_DATE AS TIMESTAMP(0)) + ((CURRENT_TIME - TIME '00:00:00') HOUR TO SECOND(0));
Независимо от того, как я пытаюсь отформатировать базу данных времени, она всегда возвращает мне ошибку, связанную с TSполе (обычно часть времени).Это хорошо работает с вышеуказанными «текущими» параметрами, но я не могу заставить его работать с реальными значениями из базы данных.Примеры полей: "datefld" => "2018-04-15"
, "timefld" => 125318.01
(после форматирования 12:53:18).
Любая идея, как получить временную метку для последней, использовать ее в качестве аргумента в WHERE
?
Оператор SQL, как сейчас:
SELECT
CAST(DateFld AS TIMESTAMP(0)) + ((TimeFld - TIME '00:00:00') HOUR TO SECOND(0)) as TS,
DateFld (format 'YYYY-MM-DD')(CHAR (10)),
TimeFld,
TimeFld (format '99:99:99') (CHAR (8))as TimeFldF,
some_other_fields
FROM something
WHERE TS > DATE :sql_last_value
ORDER BY DateFld asc,TimeFld asc