Курс на Stepik
Обложка курса «Работа с файлами CSV, JSON, Parquet и Avro для дата-инженера» на Stepik
Бесплатно

Работа с файлами CSV, JSON, Parquet и Avro для дата-инженера 0.000

Открыть на
STEPIK.ORG

CSV, JSON, Parquet и Avro для дата-инженера: байты и кодировки, схемы, сжатие, Arrow, эволюция, S3, качество, безопасность и production-пайплайн.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Работа с файлами CSV, JSON, Parquet и Avro для дата-инженера»Учеников на курсе 29
Сертификаты, выданные на курсе «Работа с файлами CSV, JSON, Parquet и Avro для дата-инженера»Сертификатов выдано 0
Отзывы о курсе «Работа с файлами CSV, JSON, Parquet и Avro для дата-инженера»Отзывов получено 0
Рейтинг курса «Работа с файлами CSV, JSON, Parquet и Avro для дата-инженера»Рейтинг курса 0.000
Уроки в курсе «Работа с файлами CSV, JSON, Parquet и Avro для дата-инженера»Количество уроков 156
Тесты в курсе «Работа с файлами CSV, JSON, Parquet и Avro для дата-инженера»Количество квизов 675
Время прохождения курса «Работа с файлами CSV, JSON, Parquet и Avro для дата-инженера»Время прохождения курса
Обновления курса «Работа с файлами CSV, JSON, Parquet и Avro для дата-инженера»Обновления курса
Дата публикации курса «Работа с файлами CSV, JSON, Parquet и Avro для дата-инженера»Дата публикации курса
Последнее обновление курса «Работа с файлами CSV, JSON, Parquet и Avro для дата-инженера»Последнее обновление
Сложность normal

Содержание курса

Разделы в курсе «Работа с файлами CSV, JSON, Parquet и Avro для дата-инженера» 26 разделов Уроки в курсе «Работа с файлами CSV, JSON, Parquet и Avro для дата-инженера» 156 уроков Тесты в курсе «Работа с файлами CSV, JSON, Parquet и Avro для дата-инженера» 675 тестов Время прохождения курса «Работа с файлами CSV, JSON, Parquet и Avro для дата-инженера» 6 ч. Последнее обновление курса «Работа с файлами CSV, JSON, Parquet и Avro для дата-инженера» обн. 19 июля 2026

Модуль 1. Фундамент: файлы, байты и кодировки

6 уроков
1. Почему дата-инженеру нужно знать устройство файлов
2. Файл как объект файловой системы: пути и pathlib
3. bytes и str: два мира представления данных
4. Unicode и UTF-8: как символы становятся байтами
5. BOM и переводы строк: невидимые символы, которые ломают парсинг
6. Файловый дескриптор и буферизация: когда данные попадают на диск

Модуль 2. Текстовый ввод-вывод под микроскопом

5 уроков
1. Контекстный менеджер with и гарантия закрытия файла
2. Построчное чтение и экономия памяти
3. seek и tell: произвольный доступ к позиции в файле
4. Генераторы для файлов и ленивое чтение
5. Временные файлы и атомарная запись

Модуль 3. Контрольные суммы и целостность данных

4 урока
1. Зачем дата-инженеру контрольные суммы
2. MD5, SHA-256 и другие алгоритмы хеширования
3. Потоковое хеширование больших файлов
4. Проверка целостности файла на практике

Модуль 4. Сжатие и архивация

5 уроков
1. Внешнее сжатие gzip: открытие и чтение прозрачно
2. bz2, lzma и zstd: сравнение алгоритмов сжатия
3. Потоковое сжатие: запись со сжатием на лету
4. Внутреннее сжатие в Parquet и Avro: введение
5. Выбор алгоритма сжатия: скорость против степени

Модуль 5. CSV: формат-невидимка

10 уроков
1. CSV — формат, который все знают, но никто не читал RFC 4180
2. Модуль csv в Python: reader и writer
3. CSV-диалекты: разделители, кавычки и как их менять
4. Перенос строки внутри CSV-поля и escaping кавычек
5. DictReader и DictWriter: работа с заголовками
6. Кодировки и BOM в CSV: как не потерять данные
7. Schema inference в CSV: распознавание типов колонок
8. Частичное чтение больших CSV: chunksize и пропуски
9. Повреждённые строки и изменение числа колонок
10. CSV injection и другие угрозы безопасности

Модуль 6. JSON: текстовый формат обмена

8 уроков
1. JSON: грамматика RFC 8259 — объекты, массивы и скалярные…
2. JSON в Python: loads, dumps и их параметры
3. Числа в JSON: потеря точности и как её избежать
4. null, отсутствующее поле и escaping в JSON
5. Дубликаты ключей и порядок полей в JSON
6. Даты и время в JSON: нет стандарта, но есть практики
7. Глубоко вложенный JSON и как с ним работать
8. Ошибки парсинга: malformed JSON и глубина вложенности

Модуль 7. NDJSON и потоковый JSON

7 уроков
1. NDJSON и JSON Lines: одна строка — один объект
2. Инкрементальный парсинг больших JSON через ijson
3. Flattening вложенных JSON-структур
4. Потоковое чтение NDJSON построчно
5. JSON Schema: описание ожиданий о структуре данных
6. Валидация JSON с помощью Pydantic и JSON Schema
7. Потоковая запись NDJSON и частичные данные

Модуль 8. CSV и JSON в production: schema-on-read

6 уроков
1. Schema-on-read и schema-on-write: два подхода к данным
2. Явная схема для CSV и JSON через Pydantic
3. Валидация на входе: reject, quarantine и dead-letter
4. Правильные типы в CSV и JSON: decimal, datetime, enum
5. CSV/JSON: pandas против Polars против DuckDB
6. Schema inference в библиотеках: когда верить, а когда нет

Модуль 9. Мост к бинарным форматам: columnar storage

4 урока
1. От текстовых форматов к бинарным: зачем переходить
2. Эксперимент: CSV против Parquet — размер, скорость, фильтрация
3. Row-oriented против column-oriented: аналитика против транзакций
4. Apache Arrow: общий слой между форматами и библиотеками

Модуль 10. Parquet: устройство изнутри

8 уроков
1. Parquet-файл: от magic bytes до футера
2. Схема и метаданные в Parquet: читаем через PyArrow
3. Pages и encodings: как байты превращаются в значения
4. Dictionary encoding и RLE: как Parquet сжимает колонки
5. Definition и repetition levels: вложенные структуры в Parquet
6. Statistics: min/max и null_count — предикатный пушдаун
7. Page index и bloom filter: дополнительные индексы
8. Row groups и column chunks: как Parquet режет данные

Модуль 11. Parquet: чтение и запись

8 уроков
1. Запись Parquet через PyArrow: от простого к сложному
2. Чтение Parquet: проекция колонок и предикатный пушдаун
3. Pandas и Parquet: PyArrow backend против стандартного
4. Polars scan_parquet: ленивое чтение и векторизация
5. DuckDB SELECT FROM parquet: SQL над файлами
6. Timestamps и временные зоны в Parquet
7. Decimal в Parquet: точность без компромиссов
8. null и nested в Parquet: PyArrow vs Pandas vs Polars

Модуль 12. Parquet в production

7 уроков
1. Размер row group и page: как настроить под нагрузку
2. Compression codecs в Parquet: snappy, gzip, zstd, lz4
3. Партиционированные датасеты в Parquet: Hive-style partitioning
4. Проблема маленьких файлов и compaction
5. Модульное шифрование в Parquet
6. Повреждённый Parquet footer и диагностика
7. Parquet: совместимость между Python, Spark, Trino и Flink

Модуль 13. Avro: схема прежде данных

6 уроков
1. Avro: почему схема прежде, чем байты
2. Primitive и complex типы в Avro-схеме
3. Records, enums, arrays, maps и unions
4. Logical types в Avro: decimal, uuid, timestamp
5. Бинарное кодирование Avro: zigzag и variable-length integers
6. Запись Avro через fastavro: первый файл

Модуль 14. Avro Object Container File

6 уроков
1. Структура Avro OCF: magic, header и sync marker
2. Блоки данных и codecs в Avro OCF
3. Чтение Avro OCF: fastavro и официальный avro
4. Потоковая запись больших Avro-файлов
5. Single-object encoding: Avro без контейнера
6. Splitability Avro OCF: sync marker и восстановление

Модуль 15. Avro: эволюция схем

7 уроков
1. Writer schema и reader schema: кто главный
2. Schema resolution: правила сопоставления полей
3. Backward, forward и full compatibility
4. Значения по умолчанию и aliases в Avro
5. Добавление и удаление полей без поломки читателей
6. Schema fingerprint и тестирование совместимости
7. Типичные ошибки эволюции схем и как их не допустить

Модуль 16. Avro в production и Kafka

6 уроков
1. Schema Registry: зачем и как работает
2. Confluent wire format: magic byte + schema ID + Avro binary
3. Avro OCF против сообщения в Kafka
4. fastavro и Schema Registry вместе
5. Совместимость схем: producer и consumer
6. Несовместимость схем в рантайме: что делать

Модуль 17. Конвертация между форматами

5 уроков
1. Конвертация CSV в Parquet без потери типов
2. Конвертация JSON в Avro с вложенными структурами
3. Parquet в CSV и обратно: подводные камни
4. Cross-format сравнение с DuckDB
5. Сквозной конвейер: CSV и NDJSON → Parquet и Avro

Модуль 18. Выбор формата под задачу

6 уроков
1. Матрица сравнения: CSV, JSON, Parquet, Avro
2. Row-oriented против column-oriented: выбираем под нагрузку
3. Schema-on-read против schema-on-write: когда что лучше
4. Открытая против закрытой схемы: data contracts
5. Когда каждый формат оптимален: на примерах
6. Антипримеры: когда формат категорически не подходит

Модуль 19. Надёжный файловый обмен

7 уроков
1. Атомарная запись файла: tmp + rename и fsync
2. Partial files: неполная загрузка и обрыв соединения
3. Идемпотентность: дедупликация и повторные запуски
4. Exactly-once: миф и реальность на уровне файлов
5. Commit-маркеры: _SUCCESS и манифесты
6. Восстановление после сбоя: грязное чтение и докачка
7. Checksums для каждого файла в пайплайне

Модуль 20. S3 и object storage

5 уроков
1. Файл в S3 — это не POSIX-файл
2. Multipart upload в S3: большие файлы по частям
3. Partial objects и consistency в S3
4. MinIO: локальная S3-среда для разработки
5. Атомарность на S3: трюки и ограничения

Модуль 21. Качество данных и observability

5 уроков
1. Data contracts: соглашение о схеме и качестве данных
2. Schema validation на входе пайплайна
3. Статистики качества данных и их мониторинг
4. SLI/SLO и алертинг для файловых пайплайнов
5. Логирование, метрики и трейсинг обработки файлов

Модуль 22. Безопасность данных

4 урока
1. PII в файлах: маскирование и псевдонимизация
2. Шифрование at rest: Parquet modular encryption
3. Шифрование in transit: TLS и управление ключами
4. Аудит доступа и retention: удаление данных

Модуль 23. Диагностика и восстановление

4 урока
1. Повреждённый Parquet footer и его восстановление
2. Битые блоки Avro OCF и sync marker
3. Обрезанный CSV и JSON: как спасти данные
4. Quarantine и dead-letter: стратегия восстановления

Модуль 24. Партиционирование и Data Lake

6 уроков
1. Hive partitioning против Iceberg partitioning
2. Партиционирование по времени, категориям и хешу
3. Compaction: из маленьких файлов в большие row groups
4. Iceberg, Delta Lake, Hudi: табличные форматы
5. Parquet — не таблица: когда пора переходить на табличный формат
6. Миграция с файлов на табличные форматы

Модуль 25. Production-пайплайн: end-to-end

7 уроков
1. Постановка итогового проекта: интернет-магазин «ТехноЛавка»
2. Слои данных: raw, staging, cleansed, curated
3. Реализация: чтение и валидация CSV и NDJSON
4. Реализация: трансформация и запись в Parquet
5. Реализация: событийный поток в Avro
6. Тестирование и локальный прогон пайплайна
7. Развёртывание и мониторинг пайплайна

Модуль 26. Дорожная карта: что дальше

4 урока
1. Архитектура data platform'ы вокруг форматов данных
2. Schema Registry как центр управления схемами
3. Data mesh и форматы данных
4. Дорожная карта: куда расти дата-инженеру