scan
Команда scan полезна для отладки и экспорта точек данных. Укажите начальное время, необязательное конечное время и один или несколько запросов, и ответ будет представлять собой необработанные байтовые данные из хранилища или точки данных в текстовом формате, приемлемом для использования с командой import. Scan также предоставляет рудиментарные средства для удаления данных. Команда scan принимает общие аргументы командной строки. Данные выводятся в стандартный вывод.
Обратите внимание, что, хотя запросы требуют агрегатора, он фактически игнорируется. Если запрос охватывает много временных рядов, выход scan может быть очень большим, поэтому будьте осторожны при составлении запросов.
Параметры
scan [--delete|--import] START-DATE [END-DATE] query [queries...]
| Имя | Тип данных | Описание | Значение по умолчанию | Пример |
|---|---|---|---|---|
| --delete | Флаг | Необязательный флаг, который удаляет данные в любой строке, соответствующей запросу. См. предупреждение ниже. | Не установлено | --delete |
| --import | Флаг | Необязательный флаг, который выводит результаты в текстовом формате, полезном для импорта или хранения как резервной копии. | Не установлено | --import |
| START-DATE | Строка или целое число | Начальное время для запроса. Это может быть абсолютное или относительное время. Подробности см. в разделе Даты и время | 1h-ago | |
| END-DATE | Строка или целое число | Необязательное конечное время для запроса. Если не указано, используется текущее время. Это может быть абсолютное или относительное время. Подробности см. в разделе Даты и время | Текущая метка времени | 2014/01/01-00:00:00 |
| query | Строка | Один или несколько запросов командной строки | sum tsd.hbase.rpcs type=put |
Пример:
scan --import 1h-ago now sum tsd.hbase.rpcs type=put sum tsd.hbase.rpcs type=scan
Предупреждение
Если вы включаете флаг --delete, ВСЕ данные в строке 'любой', соответствующие запросу, будут удалены навсегда. Строки разделены по часам, так что если вы выдали команду scan с начальным и конечным временем, которые охватывают 10 минут в течение одного часа, весь час данных будет удален.
Удаления также удалят любые Аннотации или данные, не относящиеся к TSDB, в строке.
Примечание
Команда scan возвращает данные по границам строк (1 час), поэтому результаты могут включать данные до и после указанных начального и конечного времени.
Необработанный вывод
Значение по умолчанию для scan — это необработанный дамп строк и столбцов, соответствующих заданным запросам. Это полезно в ситуациях отладки, таких как столкновения точек данных или проблемы с кодировкой. Поскольку вывод включает необработанные байтовые массивы, а формат немного меняется в зависимости от данных, он нелегко обрабатывается машиной.
Ключи строк, квалификаторы столбцов и значения столбцов выводятся как байтовые массивы Java. Они окружены квадратными скобками, а отдельные байты представлены как целые числа со знаком (так как в Java нет собственных беззнаковых целых чисел). Ключи строк выводятся первыми, после чего идет новая строка. Затем каждый столбец печатается в отдельной строке и имеет отступ в два пробела, чтобы указать, что он относится к предыдущей строке. Если найден сжатый столбец, выводятся необработанные данные и количество сжатых значений, за которыми следует новая строка. Каждая сжатая точка данных печатается в отдельной отстуженной строке. Аннотации также выводятся в необработанном режиме.
Различные форматы перечислены ниже. Выражение \t представляет собой табуляцию. space указывает символ пробела.
Формат ключа строки
[<row key>] <metric name> <row timestamp> (<datetime>) <tag/value pairs>
Где:
- ключ строки — это необработанный байтовый массив ключа строки
- имя метрики — это декодированное имя метрики, которую представляет строка
- метка времени строки — это базовая метка времени строки в секундах (по границам часов)
- дата и время — это отформатированное по умолчанию для системы удобочитаемое значение метки времени
- парные теги/значения — это теги, связанные с временным рядом
Пример:
[0, 0, 1, 80, -30, 39, 0, 0, 0, 1, 0, 0, 1] sys.cpu.user 1356998400 (Mon Dec 31 19:00:00 EST 2012) {host=web01}
Формат столбца с одной точкой данных
<two spaces>[<qualifier>]\t[<value>]\t<offset>\t<l|f>\t<timestamp>\t(<datetime>)
Где:
- qualifier — это необработанный байтовый массив квалификатора столбца
- value — это необработанный байтовый массив значения столбца
- смещение — это количество секунд или миллисекунд (в зависимости от метки времени) смещения от базовой метки времени строки
- l|f — это либо
lдля указания того, что значение является целым числом (Java Long), либоfдля значения с плавающей точкой.- метка времени — это абсолютная метка времени точки данных в секундах или миллисекундах
- дата и время — это отформатированное по умолчанию для системы удобочитаемое значение метки времени
Пример:
[0, 17] [0, 17] [1, 1] 1 l 1356998401 (Mon Dec 31 19:00:01 EST 2012)
Формат сжатого столбца
<two spaces>[<qualifier>]\t[<value>] = <number of datapoints> values:
Где:
- qualifier — это необработанный байтовый массив квалификатора столбца
- value — это необработанный байтовый массив значения столбца
- количество точек данных — это количество точек данных в сжатом столбце
Пример:
[-16, 0, 0, 7, -16, 0, 2, 7, -16, 0, 1, 7] [0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 6, 0] = 3 values:
Каждая точка данных в сжатом столбце следует тому же формату, что и одиночный столбец, с добавлением двух отступов.
Формат столбца аннотации
<two spaces>[<qualifier>]\t[<value>]\t<offset>\t<JSON\>\t<timestamp\>\t(<datetime>)
Где:
- qualifier — это необработанный байтовый массив квалификатора столбца
- value — это необработанный байтовый массив значения столбца
- смещение — это количество секунд или миллисекунд (в зависимости от метки времени) смещения от базовой метки времени строки
- JSON — это декодированные данные JSON, хранящиеся в столбце
- метка времени — это абсолютная метка времени точки данных в секундах или миллисекундах
- дата и время — это отформатированное по умолчанию для системы удобочитаемое значение метки времени
Пример:
[1, 0, 0] [123, 34...] 0 {"tsuid":"000001000001000001","startTime":1356998400,"endTime":0,"description":"Annotation on seconds","notes":"","custom":null} 1356998416000 (Mon Dec 31 19:00:16 EST 2012)
Формат импорта
Формат импорта такой же, как у команды put в стиле Telnet.
<metric> <timestamp> <value> <tagk=tagv>[...<tagk=tagv>]
Где:
- метрика — это имя метрики как строка
- метка времени — это абсолютная метка времени точки данных в секундах или миллисекундах
- значение — это значение точки данных
- tagk=tagv — это парные имена/значения тегов, разделенные пробелами
Пример:
sys.cpu.user 1356998400 42 host=web01 cpu=0 sys.cpu.user 1356998401 24 host=web01 cpu=0
© 2010–2016 The OpenTSDB Authors
Licensed under the GNU LGPLv2.1+ and GPLv3+ licenses.
http://opentsdb.net/docs/build/html/user_guide/cli/scan.html