Работа с данными Microsoft Excel

Веб-интерфейс YTsaurus позволяет загружать небольшие Microsoft Excel таблицы в статические таблицы YTsaurus, а также выгружать данные статических таблиц со строгой схемой в виде таблиц Microsoft Excel.

Загрузка в новую таблицу

Чтобы загрузить данные с одновременным созданием YTsaurus таблицы, следует нажать кнопку Create object на странице директории. Из выпадающего меню выбрать Upload xlsx.

В меню загрузки важно установить правильные значения переключателей Column names и Types.

Включенный Column names соответствует наличию имён колонок в первой строке Excel таблицы. Если в таблице нет заголовка, в качестве имён колонок YTsaurus таблицы будут использоваться имена колонок из Excel: A, B, C и т. д.

Включенный Types соответствует наличию строки с типами. Строка с типами должна идти за строкой с именами колонок (при её наличии). Типы задаются в формате type (смотрите соответствие типов).

Внимание

Если типы не заданы, для всех колонок будет использоваться any.

Загрузка в существующую таблицу

Чтобы загрузить данные в существующую YTsaurus таблицу, следует нажать кнопку Upload на странице таблицы.

Внимание

Колонки из схемы YTsaurus таблицы должны обязательно присутствовать в Excel таблице. Дополнительные колонки Excel таблицы будут проигнорированы.

В меню загрузки с помощью переключателя Append можно выбрать режим загрузки. Включенное значение соответствует дописыванию строк в конец YTsaurus таблицы, выключенное — перезаписыванию таблицы.

Ограничения загрузки

  • Загружается только первый лист Excel таблицы;
  • Максимальное число строк — 1048576;
  • Максимальное число столбцов — 16384;
  • Максимальный размер входного файла — 50 Mb.

Скачивание

Интерфейс позволяет указать интересующее подмножество строк и колонок.

В первой строке результата будут названия колонок, во второй — их типы.

Ограничения

  • Статические таблицы со строгой схемой;
  • Максимальное число строк — 1048574;
  • Максимальное число колонок — 16384;
  • Максимальный размер выходного файла — 50 Mb;
  • Максимальная длина строки в ячейке — 32767; строки длиннее 32767 обрезаются.

Соответствие типов

В Microsoft Excel поддерживается 4 типа данных: Logical, Number, Text, Error.

Описание типа данных YTsaurus Представление в type Представление в type_v3 Представление в Excel
Целое число в диапазоне [-2^63, 2^63-1] int64 int64 Number*
Целое число в диапазоне [-2^31, 2^31-1] int32 int32 Number
Целое число в диапазоне [-2^15, 2^15-1] int16 int16 Number
Целое число в диапазоне [-2^7, 2^7-1] int8 int8 Number
Целое число в диапазоне [0, 2^64-1] uint64 uint64 Number*
Целое число в диапазоне [0, 2^32-1] uint32 uint32 Number
Целое число в диапазоне [0, 2^16-1] uint16 uint16 Number
Целое число в диапазоне [0, 2^8-1] uint8 uint8 Number
Вещественное 4-байтное число float float Number*
Вещественное 8-байтное число double double Number*
Стандартный булев тип true/false boolean bool (отличие от type) Logical
Произвольная последовательность байт string string Text*
Корректная UTF-8 последовательность utf8 utf8 Text*
Целое число в диапазоне [0, 49673 - 1],
выражает число дней, прошедших с unix-эпохи;
выражаемый диапазон дат: [1970-01-01, 2105-12-31]
date date Number**
Целое число в диапазоне [0, 49673 * 86400 - 1],
выражает число секунд, прошедших с unix-эпохи;
выражаемый диапазон времен:
[1970-01-01T00:00:00Z, 2105-12-31T23:59:59Z]
datetime datetime Number**
Целое число в диапазоне [0, 49673 * 86400 * 10^6 - 1],
выражает число микросекунд, прошедших с unix-эпохи;
выражаемый диапазон времен:
[1970-01-01T00:00:00Z, 2105-12-31T23:59:59.999999Z]
timestamp timestamp Number***
Целое число в диапазоне
[-49673 * 86400 * 10^6 + 1, 49673 * 86400 * 10^6 - 1],
выражает число микросекунд между двумя таймстемпами
interval interval Number*
Произвольная YSON-структура,
физически представляется последовательностью байт,
не может иметь атрибут required=%true
any yson (отличие от type) Text**

Number*

Number — это Double-Precision Floating Point value.

В числе может быть только 15 цифр, при попытке вставить 99999999999999999 (10^17-1) в ячейке появится 99999999999999900.

Числа, не удовлетворяющие этому ограничению, экспортируются как строки.

Number**

Значение из YTsaurus таблицы будет записано в ячейку Excel таблицы с типом Number, без потери точности. Значения с типом date и datetime экспортируются как Number со специальными стилями отображения и в Excel выглядят следующим образом:

  • date2020-12-05
  • datetime2000-12-10 10:22:17

Number***

Значение может не поместиться в Number.

Timestamp с миллисекундным разрешением экспортируется в виде Number со специальным стилем отображения (1969-12-30 00:00:00), с меньшим — в виде строки формата: 2006-01-02T15:04:05.999999Z.

Text*

Text — это строковый тип. Максимальная длина строки в ячейке — 32768.

В YTsaurus длина строки может быть больше (вплоть до 128 * 10^6). Длинные строки обрезаются.

Text**

Значения сериализуются в YSON. Длинные строки, как и в Text*, обрезаются.

Отсутствующие значения

Для optional типов, в случае отсутствия значения, в ячейку будет записана пустая строка.