RUST и инжиниринг данных - часть 1
Данная книга доступна по ссылке: rustfordata.com (совершенно бесплатно). Код книги Вы найдете здесь: /rust4data-book. Книга находится на ранней стадии разработки, поэтому ее код будет меняться довольно часто.
Если Вы найдете какие-либо ошибки и недочеты, обязательно дайте мне знать. Также буду рад услышать Ваши комментарии и пожелания. Мои контакты указаны в конце книги.
О чем эта книга?
Эта книга посвящена использованию Rust для решения задач в области инженерии данных. Она предназначена для тех, кто уже знаком с Python и интересуется Rust. Мы не будем затрагивать все аспекты Rust или Python, но сфокусируемся на практических примерах того, как обычные инженерные задачи, решаемые на Python, могут быть решены на Rust.
Мы рассмотрим множество различных тем, включая:
- Получение данных из API
- Работа с данными сайта
- Парсинг данных
- Преобразование данных
- Запись данных
- Другие интересные темы
Эта книга не является введением в Rust или Python. На эти темы написано множество интересных статей и книг. Если Вы еще не знакомы с Python, рекомендую обратить внимание на официальное руководство по Python.
Должен ли я использовать Rust для решения задач в области инжиниринга данных?
Скорее всего, нет. Rust - отличный язык, он прикольный, его приятно и легко использовать, и он быстрый. Но выбор языка для проекта - это нечто большее, чем выбор языка, на котором приятно работать.
Существует множество причин, по которым Вы можете не захотеть использовать Rust для разработки данных. Первая из них заключается в том, что Rust не так развит, как Python. В нем отсутствует множество библиотек. Например, на момент написания этой статьи нет библиотеки Snowflake. Кроме того, большинство людей не знают Rust, таких специалистов сложнее нанять.
Тем не менее, есть достаточно веские причины для того, чтобы все-таки использовать Rust для разработки данных. Если говорить о стоимости и производительности, то Rust явно быстрее Python. Использование памяти в таком случае также значительно ниже, что может быть важно, например, когда Вы ограничены небольшими IoT-устройствами.
Я не могу сказать Вам, когда использовать Rust, а когда Python, но я верю, что, понимая оба языка, их достоинства и подводные камни, Вы сможете принять верное решение самостоятельно.
Зачем мне учить Rust?
Потому что узнавать что-то новое - это классно. Я не могу обещать, что все, что Вы здесь узнаете, окажет существенное влияние на Вашу жизнь или карьеру. Но если Вам нравится учиться и возиться с чем-то неизведанным, то, возможно, Вы захотите разобраться и с этим. Если Вы похожи на меня, и Вам нравится учиться ради обучения, то Вам тоже понравится этот опыт. Я изучал vim и lua не потому, что это было полезно, а потому, что мне это было интересно. В итоге я извлек из этого максимальную пользу, но я никогда не подходил к этому с чисто утилитарной точки зрения. Есть лучшие способы провести время, если Ваша цель - исключительно карьерный рост.
Но если все же вам интересен сам Rust, и Вы любите проводить время с пользой, то я думаю, что Вы будете приятно удивлены тем, что Rust может Вам предложить.
Необходимые условия
Установка Rust и Python
Чтобы следовать приведенным здесь примерам, Вам понадобятся Rust и Python. Существует множество способов установки окружения, особенно в Python, я перечислил здесь только те, которые нравятся лично мне.
Установите Rust, перейдя по ссылке rustup.rs.
Что касается Python, лично я рекомендую использовать pyenv и pyenv-virtualenv:
# Create a folder mkdir -p ~/projects/somepyproj cd ~/projects/somepyproj
# Install a recent version of Python pyenv install 3.10
# Create a virtualenv for the project named proj310 pyenv virtualenv 3.10 proj310 pyenv local proj310
# Confirm pyenv is working pyenv version > proj310 (set by /Users/username/projects/somepyproj/.python-version)```
Установка кода
Код книги можно найти по адресу: https://github.com/PedramNavid/rust-for-data
git clone git@github.com:PedramNavid/rust-for-data.git




