Ivan Begtin
7.98K subscribers
1.85K photos
3 videos
101 files
4.56K links
I write about Open Data, Data Engineering, Government, Privacy, Digital Preservation and other gov related and tech stuff.

Founder of Dateno https://dateno.io

Telegram @ibegtin
Facebook - https://facebook.com/ibegtin
Secure contacts [email protected]
Download Telegram
Для тех кто думает про инструменты трансформации данных и не готов/не хочет/не может использовать Dbt и подход ELT есть немало инструментов с открытым кодом, как ручных, так и автоматизированных.

- Optimus [1] библиотека для универсализации преобразования данных через Python, интегрированная с Pandas, Dusk и другими инструментами. Для тех кто выстраивает цепочки изменений на Python может быть очень удобна. Ни разу не пробовал, но выглядит любопытно.
- Glom [2] библиотека и инструмент на Python по работе с вложенными структурами. Позволяет делать выборки по словарям в Python, что особенно удобно при работе с данными со вложенными структурами, например, JSON и JSON lines файлам. От себя скажу что я вот про Glom не знал и в утилитах вроде undatum и внутри сборщика данных DataCrafter'а те же функции и логику приходилось реализовывать самостоятельно.
- OpenRefine [3] продукт для ручного преобразования и чистки данных, удобный, один из лучших способов чистить данные не покупая тяжелые решения. Умеет применять скрипты на Python и паре других языков к колонкам файлов.
- Apache Nifi [4] активно развивающийся low-code ETL с возможностью визуального проектирования пути обработки файлов и потоков. Nifi можно сравнить с другим проектом Apache, Airflow, но Airflow именно про оркестрацию потоков данных, а Nifi более похоже на классический ETL инструмент.
- Streamsets Data Collector [5] тоже ETL инструмент, похожий на Apache Nifi, подвид коммерческого облачного продукта и неизвестно сколько проживёт его open source версия. Например, CloverDX раньше тоже давали версию Community Edition своего продукта, а потом просто удалили её и всем сказали "идите в наше облако с 45 дневным триалом", а все пошли на другие open source ETL инструменты (ну не все, но многие). Тоже поддерживает преобразование данных и low-code интерфейс.

Ну а в реальной жизни на относительно небольших проектах, где нет нескольких разных команд стыкующихся между собой, чаще всего для преобразования данных используют:
- скрипты на Python и др. языках
- ручные преобразования через Jupiter Notebook и другие тетрадки
- встроенные механизмы: Javascript внутри MongoDB, Spark и др.
- корпоративные коммерческие ETL инструменты, если они ранее были закуплены

и тому подобное. Из того что я вижу в существующей экосистеме, это нехватка инструментов вроде dbt, но для NoSQL. Для NoSQL такое создать куда сложнее, нет одного протокола, стандарта формата, но сейчас получается что массовая популяризация dbt, а она реально как-то уж очень быстро идёт, оставляет NoSQL базы за пределами Modern Data Stack. То есть ELT инструментов для NoSQL баз нет, использовать то же MongoDB в качестве основаного Data warehouse (хранилища данных) можно только разрабатывая многое самостоятельно.

Поэтому рынок именно трансформации данных далеко не заполнен, а вот рынок извлечения данных и оркестрации кажется уже сильно переполненным.

Ссылки:
[1] https://hi-optimus.com/
[2] https://github.com/mahmoud/glom
[3] https://openrefine.org/
[4] https://nifi.apache.org/
[5] https://github.com/streamsets/datacollector-oss

#datatools #datatransformation #opensource