Временная метка по умолчанию отображается в таблице HBase?
Когда мы создаем какую-либо таблицу HBase, появляется ли временная метка в этой таблице при ее сканировании?
Например:
создать "тест", "ср"
положить 'test', 'row1', 'cf: a', 'value1'
положить 'test', 'row2', 'cf:b', 'value2'
положить 'test', 'row3', 'cf: c', 'value3'
сканирование "тест"
Строка Колонна + клетка
столбец строки1 = cf: a, отметка времени =1288380727188, значение = значение1
столбец строки 2 =cf:b, метка времени =1288380738440, значение = значение 2
столбец строки 3 = cf: c, метка времени =1288380747365, значение = значение 3
2 ответа
Отметки времени фактически являются обязательной частью столбцов HBase, и их основное назначение - управление версиями столбцов. Вот более подробное объяснение версий и временных меток. Кроме того, книга " HBase Definitive Guide" содержит подробное описание операций PUT, которое раскрывает почти все, что вы можете делать с метками времени (TS).
Вот подсказки:
- Если вы не указываете TS в PUT, сервер добавляет его автоматически.
- Вы можете указать любой TS, если вы укажете его вручную, поэтому вы не ограничены "рекомендуемым" использованием этого поля и существует множество альтернатив.
- Дополнительные параметры для отметок времени (TS) обнаруживаются с помощью параметров таблицы "хранить удаленные записи", минимального количества сохраняемых версий и поддержки "времени жизни" данных (TTL).
Так что да, вы не можете избавиться от этих временных меток / версий, но есть много вариантов их использования.
Да, каждый раз, когда вы делаете PUT
на столе вы устанавливаете метку времени. По умолчанию это currentTimeInMillis
но вы также можете установить свою собственную метку времени.
timestamp
позволяет управлять версиями ячеек. scan
вернет последнюю версию, но вы можете указать максимальную версию, используя Scan.setMaxVersions()
или если вы хотите конкретную метку времени, вы можете использовать Scan.setTimeRange()
или же Scan.setTimeStamp()
Yes it appear. You can see in your example
row1 column=cf:a, timestamp=1288380727188, value=value1