Поиск по сайту:

Сжатие данных в реальном времени без потерь с помощью Zstandard (zstd)


Хорошо организованное сжатие данных является важным компонентом эффективного управления данными. Это позволяет нам экономить дисковое пространство, сокращать время передачи данных и повышать общую эффективность данных. Среди многочисленных утилит сжатия данных, которые с каждым годом набирают популярность, -zstd выделяется как высокопроизводительный вариант. Zstd — это программное обеспечение с открытым исходным кодом, разработанное Яном Коллетом, которое обеспечивает впечатляющую степень сжатия, сохраняя при этом высокую скорость распаковки.

Zstd — это гибкая и адаптируемая утилита сжатия данных, подходящая для сжатия различных типов данных, таких как текст, изображения, аудио и видео и других. Более того, он совместим с несколькими платформами, включая Linux, Windows, MacOS и FreeBSD, что делает его надежным и доступным инструментом для разных пользователей. Кроме того, гибкость zstd распространяется на его интерфейс командной строки, который удобен для пользователя и содержит множество опций и функций.

В этой статье мы предоставим подробное объяснение zstd, рассмотрим, как он работает и как его установить. Кроме того, мы предложим практические примеры того, как сжимать и распаковывать файлы с помощью zstd, и продемонстрируем некоторые из его расширенных возможностей, таких как многопоточность, изучение словаря и уровни сжатия и другие. К концу этой статьи вы получите полное представление о zstd и о том, как его можно использовать для удовлетворения ваших потребностей в сжатии данных.

Установка Zstandard в Linux

Zstandard доступен в официальных репозиториях большинства дистрибутивов Linux, что упрощает его установку с помощью менеджера пакетов. Для его установки в Ubuntu используются несколько команд, упомянутых ниже —

Введите команду для установки Zstandard

sudo apt-get update
sudo apt-get install zstd

Вывод предоставит всю информацию об обновлении и установке Zstandard

user@ubuntu:~$ sudo apt-get update
[sudo] password for user: 
Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Hit:2 http://us.archive.ubuntu.com/ubuntu focal InRelease                
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]             
Get:4 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB]             
Get:5 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [1,341 kB]
Get:6 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [784 kB]
Get:7 http://security.ubuntu.com/ubuntu focal-security/main Translation-en [236 kB]
Get:8 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [44.7 kB]
Get:9 http://security.ubuntu.com/ubuntu focal-security/restricted Translation-en [11.6 kB]
Get:10 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [959 kB]
Get:11 http://security.ubuntu.com/ubuntu focal-security/universe Translation-en [172 kB]
Get:12 http://us.archive.ubuntu.com/ubuntu focal-updates/main Translation-en [341 kB]
Get:13 http://us.archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [70.1 kB]
Get:14 http://us.archive.ubuntu.com/ubuntu focal-updates/restricted Translation-en [12.9 kB]
Get:15 http://us.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [900 kB]
Get:16 http://us.archive.ubuntu.com/ubuntu focal-updates/universe Translation-en [197 kB]
Get:17 http://us.archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [8,680 B]
Get:18 http://us.archive.ubuntu.com/ubuntu focal-backports/main Translation-en [4,156 B]
Fetched 5,297 kB in 5s (1,163 kB/s)                          
Reading package lists... Done
Building dependency tree       
Reading state information... Done
All packages are up to date.
user@ubuntu:~$ sudo apt-get install zstd
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  zstd
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 249 kB of archives.
After this operation, 1,120 kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 zstd amd64 1.4.5+dfsg-4 [249 kB]
Fetched 249 kB in 1s (177 kB/s)    
Selecting previously unselected package zstd.
(Reading database ... 233077 files and directories currently installed.)
Preparing to unpack .../archives/zstd_1.4.5+dfsg-4_amd64.deb ...
Unpacking zstd (1.4.5+dfsg-4) ...
Setting up zstd (1.4.5+dfsg-4) ...
Processing triggers for man-db (2.9.1-1) ...
user@ubuntu:~$ 

После успешной установки Zstandard мы можем перейти к изучению некоторых базовых примеров использования команд Zstd в следующем разделе.

Список различных примеров использования команды «Zstd» в Linux

1. Сжать файл

Чтобы сжать файл с помощью Zstd, используйте команду «zstd filename». Уровень сжатия по умолчанию — 3, но мы можем настроить его с помощью «-# (число)». Zstd отлично подходит для больших файлов, уменьшая их размер для упрощения хранения и передачи. Он также имеет высокую скорость декомпрессии для легкого восстановления без потери эффективности. Zstd — это простой, но мощный инструмент для улучшения управления данными в системах Linux.

Ввод команды для сжатия файла

zstd example.txt

Вывод команды zstd

user@ubuntu:~$ zstd example.txt
user@ubuntu:~$

2. Распаковать файл

Если вы хотите распаковать файл, сжатый с помощью Zstd, используйте команду «zstd -d», за которой следует имя сжатого файла. Например, «zstd -d example.txt.zst» восстановит сжатый файл в исходный формат. Высокая степень сжатия Zstd и высокая скорость распаковки делают его надежным и эффективным способом управления большими файлами в Linux.

Команда для распаковки файла

zstd -d example.txt.zst

3. Сжать каталог

Сжать целые каталоги с помощью команды Zstd очень просто. Все, что нам нужно сделать, это использовать команду «tar cf - имя_каталога/ | zstd > имя_сжатого_файла.tar.zst». Например, предположим, что у нас есть каталог с именем «example», который мы хотим сжать, и создайте сжатый файл с именем «example.tar.zst». Нам нужно запустить эту команду в терминале «tar cf - example/ | zstd > example.tar.zst». Это сожмет весь каталог в один файл, поэтому вы можете использовать эту команду.

Ввод команды для сжатия каталога

tar cf - example/ | zstd > example.tar.zst

4. Распаковать каталог

Чтобы распаковать каталог, сжатый Zstd, в Linux вы можете использовать команду «zstd -d example.tar.zst | tar xvf -». Укажите имя сжатого файла с опцией «-d». Команда «tar» извлекает содержимое архивного файла с помощью опции «-xvf». Не забудьте сделать резервную копию сжатого каталога перед его распаковкой, чтобы избежать перезаписи существующих каталогов с тем же именем.

Ввод для распаковки каталога

zstd -d example.tar.zst | tar xvf -

Вывод команды «zstd -d»

$ zstd -d example.tar.zst | tar xvf -
example/
example/file1.txt
example/file2.txt
example/file3.txt

5. Многопоточное сжатие

Если у вас большой файл, который необходимо быстро сжать, мы можем использовать Zstd, инструмент быстрого сжатия, который использует несколько ядер ЦП для повышения скорости сжатия. Написав эту команду «zstd -T0 example.txt», вы можете активировать многопоточное сжатие с числом потоков, равным 0, что позволит Zstd использовать все доступные ядра ЦП для сжатия файла «example.txt». Таким образом, , вы можете активировать многопоточное сжатие в Linux.

Команда ввода для многопоточного сжатия

zstd -T0 example.txt

Вывод этой команды может выглядеть следующим образом

zstd -T0 example.txt
example.txt         : 100%   [==================================================================================================]  10.00 MiB/s  2.20:1  

6. Установите уровень сжатия.

Zstd имеет 22 уровня сжатия с различными компромиссами между степенью сжатия и скоростью. Используйте команду «zstd - », чтобы установить уровень сжатия файла. Более высокие уровни требуют больше ресурсов ЦП и времени. Выберите правильный уровень сжатия для достижения оптимальных результатов.

Команда ввода для установки уровня сжатия

zstd -3 example.txt

Вывод уровня сжатия zstd

example.txt             :  10.00 MB
--
example.txt         :  3.55 MB        (35.45%)   (x3.18)
--

Заключение

В заключение отметим, что Zstandard — ценный инструмент сжатия, который может сэкономить дисковое пространство и ускорить передачу данных. Установка zstd в Linux — это простой процесс, и использовать его для сжатия и распаковки файлов очень просто. Мы уверены, что эта статья помогла вам начать работу с zstd и научила вас использовать его для повышения требований к сжатию данных.

Статьи по данной тематике: