Всякое интересное чтение про данные, технологии и не только:
- Meltano Cloud ETL/ELT продукт от одноимённого стартапа вышел в бета режиме. На мой взгляд Meltano один из наиболее интересных ELT продуктов последних лет и точно стоит к нему присмотреться, как минимум к открытой опенсорсной версии, но и от облака может быть практическая польза
- Castor теперь CastorDoc - Castor это такой стартап для каталогизации данных, они поменяли приоритет и стали CastorDoc, стартапом по документированию данных. Ценник у них резко взлетел, минимальная стоимость продукта в $1200 в год, всё остальное по договорённости. Ниша интересная и перспективная
- Paragraphica голландский артист/инженер/дизайнер Bjørn Karmann сделал фотоаппарат которые "делает снимки" так похожие на реальность. Данных там нет, но есть про ИИ и сама концепция. Современное искусство в чистой, незамутнённой форме
- Instacard pipelines про модуляризованные ковейеры данных внутри Instacart, с использованием Spark и Lakehouse архитектуру. Полезно как практический пример живой системы.
- 144TB Nvidia GPU - Nvidia пока однозначно лидирует в гонке ИИ, новый их продукт специально для Generative AI.
- В Японии копирайт не распространяется на обучение ИИ - отличная новость для ИИ, печальная для художников, писателей и тд. ИИ лоббисты (биг тех) всё сильнее, а традиционные копирайтовладельцы не могут им противостоять.
#ai #data #datatools #datacatalogs #etl
- Meltano Cloud ETL/ELT продукт от одноимённого стартапа вышел в бета режиме. На мой взгляд Meltano один из наиболее интересных ELT продуктов последних лет и точно стоит к нему присмотреться, как минимум к открытой опенсорсной версии, но и от облака может быть практическая польза
- Castor теперь CastorDoc - Castor это такой стартап для каталогизации данных, они поменяли приоритет и стали CastorDoc, стартапом по документированию данных. Ценник у них резко взлетел, минимальная стоимость продукта в $1200 в год, всё остальное по договорённости. Ниша интересная и перспективная
- Paragraphica голландский артист/инженер/дизайнер Bjørn Karmann сделал фотоаппарат которые "делает снимки" так похожие на реальность. Данных там нет, но есть про ИИ и сама концепция. Современное искусство в чистой, незамутнённой форме
- Instacard pipelines про модуляризованные ковейеры данных внутри Instacart, с использованием Spark и Lakehouse архитектуру. Полезно как практический пример живой системы.
- 144TB Nvidia GPU - Nvidia пока однозначно лидирует в гонке ИИ, новый их продукт специально для Generative AI.
- В Японии копирайт не распространяется на обучение ИИ - отличная новость для ИИ, печальная для художников, писателей и тд. ИИ лоббисты (биг тех) всё сильнее, а традиционные копирайтовладельцы не могут им противостоять.
#ai #data #datatools #datacatalogs #etl
arch.dev
Arch: the bridge between your customers' data & your code
Arch is the bridge between your customers' data & your code. Stop wasting time on your own OAuth flows, API integrations, and embeddings pipelines. Instantly access all your customers’ data sources; raw, mapped, or as vector embeddings
Свежий инструмент Amphi для визуальных ETL процессов, с low-code проектированием труб данных (data pipelines) через интерфейс в Jupyter lab
Из плюсов:
- low code
- не cloud-first
- базовый набор для обработки структурированных и неструктурированных данных
- всё можно делать в UI прямо в Jupyter Lab
- открытый код
Из минусов:
- low-code (для кого-то минус)
- не cloud-first (для кого-то минус)
- мало разнообразия в источниках получения данных
- лицензия Elastic, недоопенсорс
Мне чем-то напомнило Apache Nifi, но только отчасти.
Интеграция в Jupyter Lab - хорошо,но пока что и в целом надо приглядется. Продукт явно сделан пока скорее для инвесторов чем для пользователей, но без пользователей и инвестиций не будет.
В целом из разработки дата инструментов мне нравятся не только продукты, но и команды Clickhouse и Duckdb.
Хочется дождаться ETL сделанное по аналогии с Duckdb. Удобным ядром и большим числом хорошо написанных расширений. Какое-то время назад мне казалось что Meltano на эту роль подходит, но с тех пор как они отдали свои публичные ресурсы довольно хреновым маркетологам читать их стало тяжело. Развитие продукта сложно оценивать.
#etl #opensource #datatools
Из плюсов:
- low code
- не cloud-first
- базовый набор для обработки структурированных и неструктурированных данных
- всё можно делать в UI прямо в Jupyter Lab
- открытый код
Из минусов:
- low-code (для кого-то минус)
- не cloud-first (для кого-то минус)
- мало разнообразия в источниках получения данных
- лицензия Elastic, недоопенсорс
Мне чем-то напомнило Apache Nifi, но только отчасти.
Интеграция в Jupyter Lab - хорошо,но пока что и в целом надо приглядется. Продукт явно сделан пока скорее для инвесторов чем для пользователей, но без пользователей и инвестиций не будет.
В целом из разработки дата инструментов мне нравятся не только продукты, но и команды Clickhouse и Duckdb.
Хочется дождаться ETL сделанное по аналогии с Duckdb. Удобным ядром и большим числом хорошо написанных расширений. Какое-то время назад мне казалось что Meltano на эту роль подходит, но с тех пор как они отдали свои публичные ресурсы довольно хреновым маркетологам читать их стало тяжело. Развитие продукта сложно оценивать.
#etl #opensource #datatools
Ещё немного про всякое сугубо техническое, сейчас в Dateno постепенно идёт переход от индексирования тысяч маленьких порталов с общедоступными данными и метаданными, к охвату крупных каталогов. Ключевое отличие таких крупных каталогов данных в том что необходимо писать скрейперы под каждый индивидуально, а это хоть и несложно, но означает увеличение кода скрейпинга многократно что постепенно будет усложнять сопровождение кода и так далее. Но это не проблема, это вполне измеримая техническая задача.
Что сложнее так то что многие из таких крупных каталогов данных - это базы индикаторов. Часть из них написаны на типовом ПО, большая часть на нетиповом, но что характерно для большей части таких каталогов так то что сбор метаданных и данных (значений) индикаторов по трудоёмкости почти не различаются
Это сильно отличает такие порталы от порталов открытых или научных данных, где выкачать метаданные можно быстро и они имеют относительно разумные размеры, а вот данных могут быть там сотни гигабайт и терабайт, их сбор и обработка уже сложнее.
А в случае индикаторов, хорошие владельцы таких баз данных всё чаще дают возможность выкачать их целиком в режиме bulk download. Как минимум это ECB, Eurostat, FAO, Ilostat и ещё многие. Данные там почти всегда CSV или сжатые CSV и вот тут то срабатывает магия инструментов вроде duckdb. Во всех ситуациях когда CSVшки в кодировке utf8 и имеют предсказуемые схемы данных, с помощью duckdb можно многократно ускорять их обработку заменяя обработку через датафреймы на прямые SQL запросы к CSV, даже без копирования данных в БД и не строя ни одного индекса.
В общем могу сказать что в роли "дешёвого ETL инструмента для бедных" duckdb работает прекрасно. К примеру DISTINCT по разреженному полю по CSV файлу в 15GB и 22 миллиона записей без индекса отрабатывается на 19.8 секунд. Это в режиме когда совсем без оптимизаций, без преобразований в parquet. А если в parquet преобразовать то, ожидаемо, DISTINCT отрабатывает за 0.5 секунд. Выбор очевиден 🛠 надо использовать!
Например, про данные из другого проекта, если кто-то надумает использовать данные по госконтрактам [1], то они вполне себе читаются с помощью duckdb особенно после преобразований в parquet. Например, jsonl файл с госзаказчиками вполне себе легко преобразуется в parquet после всего операции по преобразованиям занимают сотые доли секунд. В этом смысле единственный недостаток открытых данных из Госзатрат только в том что они сжаты в zip, а если сжать их в gz или публиковать в parquet, то можно ещё и ускорить подготовку данных.
Таких примеров много, главный вывод в том что можно удешевить ресурсные требования во многих задачах и многие R&D задачи решать без дополнительных серверных ресурсов, экспериментируя локально.
Ссылки:
[1] https://clearspending.ru/opendata/
#duckdb #tech #dataengineering #etl
Что сложнее так то что многие из таких крупных каталогов данных - это базы индикаторов. Часть из них написаны на типовом ПО, большая часть на нетиповом, но что характерно для большей части таких каталогов так то что сбор метаданных и данных (значений) индикаторов по трудоёмкости почти не различаются
Это сильно отличает такие порталы от порталов открытых или научных данных, где выкачать метаданные можно быстро и они имеют относительно разумные размеры, а вот данных могут быть там сотни гигабайт и терабайт, их сбор и обработка уже сложнее.
А в случае индикаторов, хорошие владельцы таких баз данных всё чаще дают возможность выкачать их целиком в режиме bulk download. Как минимум это ECB, Eurostat, FAO, Ilostat и ещё многие. Данные там почти всегда CSV или сжатые CSV и вот тут то срабатывает магия инструментов вроде duckdb. Во всех ситуациях когда CSVшки в кодировке utf8 и имеют предсказуемые схемы данных, с помощью duckdb можно многократно ускорять их обработку заменяя обработку через датафреймы на прямые SQL запросы к CSV, даже без копирования данных в БД и не строя ни одного индекса.
В общем могу сказать что в роли "дешёвого ETL инструмента для бедных" duckdb работает прекрасно. К примеру DISTINCT по разреженному полю по CSV файлу в 15GB и 22 миллиона записей без индекса отрабатывается на 19.8 секунд. Это в режиме когда совсем без оптимизаций, без преобразований в parquet. А если в parquet преобразовать то, ожидаемо, DISTINCT отрабатывает за 0.5 секунд. Выбор очевиден 🛠 надо использовать!
Например, про данные из другого проекта, если кто-то надумает использовать данные по госконтрактам [1], то они вполне себе читаются с помощью duckdb особенно после преобразований в parquet. Например, jsonl файл с госзаказчиками вполне себе легко преобразуется в parquet после всего операции по преобразованиям занимают сотые доли секунд. В этом смысле единственный недостаток открытых данных из Госзатрат только в том что они сжаты в zip, а если сжать их в gz или публиковать в parquet, то можно ещё и ускорить подготовку данных.
Таких примеров много, главный вывод в том что можно удешевить ресурсные требования во многих задачах и многие R&D задачи решать без дополнительных серверных ресурсов, экспериментируя локально.
Ссылки:
[1] https://clearspending.ru/opendata/
#duckdb #tech #dataengineering #etl
К вопросу о дата-инженерии и Dateno, одна из особенностей проекта в том что практически вся работа с данными построена на собственных инструментах с открытым кодом, что имеет кучу преимуществ при старте, и накапливающиеся ограничения в будущем которые уже хочется избежать.
И здесь не последнюю роль играет выбор итогового технического стека который, в свою очередь, ограничен спецификой проекта, данных, их источников и тд.
Вот некоторые важные особенности:
1. Почти все первичные данные в Dateno - это JSON, JSON lines, и сильно реже CSV, которые тоже преобразуются в JSON. Отсюда и хранение первичных данных в MongoDB как наиболее естественно подходящем хранилище. Хотя уже можно рассматривать альтернативы. В любом случае сейчас в проекте нет SQL, за исключением DuckDB для аналитики и экспериментов.
2. В отличии от корпоративной дата инженерии тут огромное число неуправляемых внешних источников метаданных. Их более 10 тысяч всего из которых 5 тысяч уже подключено и индексируются. Вместе с отсутствием SQL это делает малопригодными классические оркестраторы задач и ETL/ELT инструменты.
3. Другая особенность в итеративности задач и в работе с первичными данными. Логика сбора построена на постобработке первичных данных. Вначале они собираются AS IS из первоисточников и далее, отдельными процессами, преобразуются в эталонную схему и финальную базу данных (поисковый индекс). При этом все первичные данные хранятся и используются для аналитической работы когда надо построить новый фильтр, то вначале проверяется есть ли опора для него в первичных метаданных.
4. Конвееры данных могут оперировать как очень большими, так и очень малыми данными. Число датасетов из каталога данных Всемирного банка может быть более 6 миллионов за раз, а из ряда малых каталогов данных это может быть всего 2-3 датасета.
5. Если рассмотреть инструменты для оркестрации и ETL/ELT в контексте этих особенностей то вылезает следующее:
- Meltano - ключевая фишка в большом числе коннекторов которые надо писать под каждый источник данных. Потенциальный ETL/ELT инструмент в связке с инструментом оркестрации.
- Dagster - выглядит симпатично на небольшом числе конвееров, нет результатов экспериментов на большом их числе, условно на тысячах.
- Kestra - внешне выглядит неплохо, но написан полностью на Java что заранее накладывает сомнения применимости в Python-only инфраструктуре.
- Airflow - чистый оркестратор, может быть применён в связке с собственной или донастроенным внешним ETL/ELT
- Prefect - хорошо выглядящий оркестратор на Python, но с заложенными ограничениями в бесплатной версии.
6. Какой стек работы с данными в итоге выбрать? Из того что я видел на практике, ни один нельзя использовать как единственно возможный и даже выбрав надо всё равно делать свой дашборд мониторинга работы с источниками данных потому что пока ни в одном из инструментов я ещё не встречал работы с цепочками конвееров данных.
7. И это ещё не доходя до вопроса контроля качества данных. Контроль качества данных вроде как должен быть частью конвееров сбора данных, но практика в том что неполнота и недостаточное качество не должно быть ограничением для включения в поисковый индекс, но должно быть механимом пост-контроля выявления проблем и перезагрузки датасетов или доработкой процедур обогащения и очистки данных.
8. Поэтому один из путей решения - это условное разделение источников поступления эталонных данных. Неважно как именно отработал пайплайн, оркестратором, ad-hoc скриптами или пушем из другого сервиса, главное что он соответствует заданной схеме и проходит валидацию. Поступающие данные идут в staging (промежуточную) базу данных, а уже в ней работает конвеер по преобразованию данных в эталонные.
9. Это позволяет переводить инфраструктуру сбора и обработки метаданных датасетов на конвееры итеративно, но требует документирования схем, хорошего их проектирования под дальнейшую эволюцию и тд. Впрочем проектирование схем это нечто неизбежное поскольку без них контроль качества данных недостаточен.
#dateno #thoughts #dataengineering #elt #etl #datapipelines
И здесь не последнюю роль играет выбор итогового технического стека который, в свою очередь, ограничен спецификой проекта, данных, их источников и тд.
Вот некоторые важные особенности:
1. Почти все первичные данные в Dateno - это JSON, JSON lines, и сильно реже CSV, которые тоже преобразуются в JSON. Отсюда и хранение первичных данных в MongoDB как наиболее естественно подходящем хранилище. Хотя уже можно рассматривать альтернативы. В любом случае сейчас в проекте нет SQL, за исключением DuckDB для аналитики и экспериментов.
2. В отличии от корпоративной дата инженерии тут огромное число неуправляемых внешних источников метаданных. Их более 10 тысяч всего из которых 5 тысяч уже подключено и индексируются. Вместе с отсутствием SQL это делает малопригодными классические оркестраторы задач и ETL/ELT инструменты.
3. Другая особенность в итеративности задач и в работе с первичными данными. Логика сбора построена на постобработке первичных данных. Вначале они собираются AS IS из первоисточников и далее, отдельными процессами, преобразуются в эталонную схему и финальную базу данных (поисковый индекс). При этом все первичные данные хранятся и используются для аналитической работы когда надо построить новый фильтр, то вначале проверяется есть ли опора для него в первичных метаданных.
4. Конвееры данных могут оперировать как очень большими, так и очень малыми данными. Число датасетов из каталога данных Всемирного банка может быть более 6 миллионов за раз, а из ряда малых каталогов данных это может быть всего 2-3 датасета.
5. Если рассмотреть инструменты для оркестрации и ETL/ELT в контексте этих особенностей то вылезает следующее:
- Meltano - ключевая фишка в большом числе коннекторов которые надо писать под каждый источник данных. Потенциальный ETL/ELT инструмент в связке с инструментом оркестрации.
- Dagster - выглядит симпатично на небольшом числе конвееров, нет результатов экспериментов на большом их числе, условно на тысячах.
- Kestra - внешне выглядит неплохо, но написан полностью на Java что заранее накладывает сомнения применимости в Python-only инфраструктуре.
- Airflow - чистый оркестратор, может быть применён в связке с собственной или донастроенным внешним ETL/ELT
- Prefect - хорошо выглядящий оркестратор на Python, но с заложенными ограничениями в бесплатной версии.
6. Какой стек работы с данными в итоге выбрать? Из того что я видел на практике, ни один нельзя использовать как единственно возможный и даже выбрав надо всё равно делать свой дашборд мониторинга работы с источниками данных потому что пока ни в одном из инструментов я ещё не встречал работы с цепочками конвееров данных.
7. И это ещё не доходя до вопроса контроля качества данных. Контроль качества данных вроде как должен быть частью конвееров сбора данных, но практика в том что неполнота и недостаточное качество не должно быть ограничением для включения в поисковый индекс, но должно быть механимом пост-контроля выявления проблем и перезагрузки датасетов или доработкой процедур обогащения и очистки данных.
8. Поэтому один из путей решения - это условное разделение источников поступления эталонных данных. Неважно как именно отработал пайплайн, оркестратором, ad-hoc скриптами или пушем из другого сервиса, главное что он соответствует заданной схеме и проходит валидацию. Поступающие данные идут в staging (промежуточную) базу данных, а уже в ней работает конвеер по преобразованию данных в эталонные.
9. Это позволяет переводить инфраструктуру сбора и обработки метаданных датасетов на конвееры итеративно, но требует документирования схем, хорошего их проектирования под дальнейшую эволюцию и тд. Впрочем проектирование схем это нечто неизбежное поскольку без них контроль качества данных недостаточен.
#dateno #thoughts #dataengineering #elt #etl #datapipelines