Работа с файлами Apache Parquet
Apache Parquet — это столбчатый формат хранения, очень эффективный для хранения информации и обработки запросов в больших наборах данных. В Qlik Sense можно считывать данные из файлов Parquet и сохранять таблицы как файлы Parquet.
Parquet обеспечивает эффективную обработку запросов в отдельных столбцах таблицы вместо чтения всей таблицы полностью. Это подходит для использования при обработке больших данных. Кроме того, Parquet поддерживает эффективное сжатие и кодирование данных. Это может дополнительно уменьшить пространство, требуемое для хранения, и улучшить эффективность обработки запросов.
Создание файлов Parquet
Файлы Parquet можно создавать с помощью команды Store в скрипте. Укажите в скрипте, что ранее считанную таблицу или ее часть необходимо экспортировать в явно названный файл в указанном вами местоположении. Хранящиеся данные можно вкладывать в файлы Parquet.
Для получения дополнительной информации см. раздел Store.
Чтение данных из файлов Parquet
Данные из файла Parquet можно считывать так же, как из любого другого файла данных, поддерживаемого Qlik Sense: через Диспетчер данных, редактор загрузки данных или при добавлении данных в новое приложение.
Для получения дополнительной информации см. раздел Загрузка данных из файлов.
Также можно загрузить данные из файла Parquet в скрипт загрузки данных с помощью команды LOAD. Пример:
Для получения дополнительной информации см. раздел Load.
Загрузка данных из вложенных файлов Parquet
Если файл Parquet содержит вложенные данные, его необходимо загружать с использованием нескольких операторов load, в каждом из которых указывается, какое подмножество должно загружаться в каждую таблицу. Спецификатор Table is служит для подтверждения пути к узлу группы в схеме для загрузки.
Загружаются только узлы, соответствующие пути Table is.
Узел данных загружается в файл без вложения.
Узлы группы объединяют поля в группу путем добавления их имени в имя поля. Например, группа с полями field1 и field2 загружаются как group.field1 и group.field2.
Узлы списка будут создавать ключевые поля, используемые для связывания таблиц. Например, %Key_group.list. Любой узел группы или данных в списке должен загружаться в отдельном операторе load. Также будет загружено ключевое поле в родительском списке.
Следующие примеры показывают тот же вложенный файл Parquet, созданные в примере в Хранение вложенных данных в файлах Parquet, загруженные в приложение с использованием Диспетчер данных и Редактор загрузки данных (со значением по умолчанию из списка «Выберите данные и пользовательские скрипты»).
Пример: Диспетчер данных
Если customer.parquet загружается в Диспетчер данных и применяются все рекомендованные связи, будет создана следующая модель данных:
Пример: Редактор загрузки данных (Выбор данных)
Если данные загружаются с помощью экрана Выбор данных в Редактор загрузки данных, будет создан следующий скрипт:
Модель данных выглядит как в Просмотр модели данных.
Пример: Редактор загрузки данных (Пользовательский скрипт загрузки)
Если используется пользовательский скрипт загрузки, имеется больше возможностей для управления тем, какие поля и таблицы загружаются из customer.parquet. Следующий скрипт загружает таблицы и поля из company.parquet:
В результате создается следующий скрипт загрузки, идентичный первоначальной модели данных, которая была до сохранения данных в файл Parquet.
Ограничения
В отношении файлов Parquet действуют следующие ограничения:
-
Файлы Parquet, содержащие поле метки времени int96, загружаются неправильно.
Int96 — это устаревший тип данных, содержащий метку времени без данных о часовом поясе. Будет предпринята попытка прочитать поле как UTC, но ее успех нельзя гарантировать, так как имеются разные реализации поставщиков.
Проверьте загруженные данные и скорректируйте их с учетом правильного часового пояса, при необходимости указав смещение.