При работе с данными мы все знаем, что скорость выполнения — один из основных аспектов, который все пытаются оптимизировать. Одним из таких инструментов, который можно использовать для преобразования файла CSV в Hyper, является Tableau Extract API Крейга Бладворта. Гиперформат в основном уменьшает размер файла на 1/4 от его исходного размера.

Мы все можем согласиться с тем, что всякий раз, когда кто-то плохо знаком с технологией, мы предпочитаем блоги документации. Несмотря на то, что у Крейга есть подробный блог с пошаговыми инструкциями, я подумал, что блог с примером полного руководства по установке, выполнению, а также проблемам и решениям, с которыми я столкнулся, когда устанавливал его на своей MacOS, был бы полезен. Давайте погрузимся в это!

Давайте разобьем это на четыре части:
1. Загрузка
2. Файл JSON
3. Выполнение
4. Проблемы и решения

Скачать
Вы можете скачать двоичный файл macOS здесь. После того, как вы скачали файл . Переместите файл в нужное место и сделайте его исполняемым.
- cd ‹каталог, в который вы переместили извлечение›
- chmod +x извлечение

Давайте проверим, работает ли это, увидев выполнение ./extract -h. Это должно произвести семантику.

Файл JSON
Tableau-ExtractAPI требует, чтобы вы создали файл JSON, содержащий информацию о файле CSV, который необходимо преобразовать в файл Hyper.

Вот как будет выглядеть пример файла JSON для вышеуказанного CSV

Поле «имя» указывает имя таблицы в гипер. Ключ «files» представляет собой список с путями к необходимым CSV-файлам для конвертации. «Столбцы» принимают атрибуты столбцов, существующих в CSV. Они должны точно совпадать с CSV (в нашем случае test.csv). Файл JSON следует изменить в соответствии с CSV. Если у вас есть несколько CSV-файлов с одинаковыми заголовками, которые необходимо сжать в один гипер, просто добавьте пути к списку «файлов» в JSON.

Выполнить
После того, как мы закончим настройку файла JSON, мы можем выполнить извлеченный файл как ./extract — схема ./sample.json — вывод test.hyper — перезапись — localread

Таким образом, мы видим в приведенном выше cmd, что всего было вставлено 6611 записей, и файл CSV был успешно преобразован в файл .hyper. Точно так же потребовалось 816 секунд, чтобы преобразовать файл размером 15 ГБ, что все же лучше, чем загрузка огромных файлов непосредственно в Tableau. Параметры можно найти на вкладке Информация.

Примечание. Здесь мы загружаем файлы локально, поэтому параметр —local read в cmd. Файлы также можно загружать из AWS. Подробнее читайте в блоге пошагового руководства.

Проблемы и решения
1. Несоответствие Json.
Если количество столбцов JSON не соответствует количеству столбцов, существующих в CSV, возникает ошибка. Типы данных также должны совпадать. Вы можете найти больше информации о поддерживаемых типах данных и синтаксисе в блоге пошагового руководства.
2. Потерять заголовки: Если тип столбца, указанный в JSON, например, — DATE, а значение первой строки — это имя столбца, это в основном выдает ошибку.
3. Не забудьте выполнить chmod: я столкнулся с ошибкой JSON.JsonDecoder, и она была устранена с помощью извлечения chmod +x. Несмотря на то, что ранее я изменил его с помощью chmod.
4. Проблема с типом данных. Много раз я сталкивался с проблемами, связанными с типами данных каждого столбца. Несмотря на то, что значения моего столбца имели тип данных DATE, мне пришлось использовать VARCHAR, чтобы заставить его работать.
5. ОС Windows: я не смог запустить то же самое в Windows. Я использовал тот же CSV и JSON, и он все еще продолжал выдавать ошибку JSON.JsonDecoder.

Я надеюсь, что этот блог пригодится сообществу Data Science. Не стесняйтесь обращаться ко мне в LinkedIn.