topdatalab
1.27K subscribers
98 photos
10 videos
17 files
221 links
Канал поддержки книги «Как монетизировать данные». https://topdatalab.ru
Download Telegram
44 сегодня, не забивайте на свое здоровье (только один совет)
🔥464👏2
Примерно месяц назад я переехал на Cursor и очень доволен скоростью ответов.
Неделю назад я прочитал статью на английском, как он собственно устроен и как развивался.

Перевод на русский здесь:
часть 1 https://habr.com/ru/articles/919636/
часть 2 https://habr.com/ru/articles/920660/

В целом там все очень интересно описано, особенно про индексацию кодовой базы.
Но меня лично заинтересовал упомянутый там проект, который спас Cursor от падения

https://turbopuffer.com

Ребята делают full text search и поиск по embedding, что является основой любой RAG.
Они отказались от БД в пользу S3.
Цены не скажу что высокие, буду пробовать их сам. Уж больно они хороши (из истории Cursor)

А так рецепт следующий Postgres + pg_search + pg_vector
У меня это все крутится на Corpsignals.com
👍107🔥1
Про интервью Тинькова и Калви Осетинской…

Там интересный факт от Олега - команда разбежалась, и они не стали вместе большой финтех холдинг делать. Образовалось несколько независимых проектов: один из них Вивид мани, остальные я лично не знаю. Так вот Тиньков считает это ошибкой, что у них была очень крутая команда, были обиды, и все решили самому себе что-то доказать.

Я лично сам недооценивал раньше силу сложившихся отношений фаундеров, которая и обеспечила успех. Мнение изменил совсем недавно. Лучше поздно, чем никогда.

А так лично встречался с Оливером Хьюзом и Артемом Ямановым (топы Тинькофф), но мы тогда не договорились, чем я могу быть полезен. Через месяц я соосновал Retail Rocket
🔥18
Прочитал как оценивать LLM ботов https://hamel.dev/blog/posts/evals-faq/
Как ни странно много параллелей с разработкой рекомендательных сервисов.
В общем если вы уже хорошо знаете один домен в ML, переключиться в другой не так уж и сложно.

В эвалюатор придется вложиться и довольно сильно. Если в рекоменадциях RR это было примерно 70 процентов написанного кода (для расчетов), то в LLM похоже больше. Тексты быстрым взглядом достаточно сложно оценить в отличие от рекомендаций.
Труд должен окупиться, это дало нам хороший задел, чтобы развиваться очень быстро и теснить конкурентов.
🔥3👍1
topdatalab
Выложили видео с моего вебинара про SQLMesh и dltHub. Кроме рассказа, я показывал все на примерах, как на лабораторных работах. Думаю его полезно послушать тем, кто хочет использовать самые современные инструменты open-source data engineering. При этом организовать…
Тупой, еще тупее! Это про меня.
Пару месяцев назад я хотел улучшить пользовательский опыт - добавить комментарии к полям и названиям таблиц так,
чтобы они отображались в Metabase. Там это можно сделать в интерфейсе, но кто будет за этим следить!?

Я хотел чтобы они пробрасывались напрямую из SQLMesh кода. Два месяца назад у меня не получилось.
Думал уже писать парсер, который будет сканировать код SQL Mesh и пробрасывать комментарии через API Metabase.

А ларчик легко открывался. Дай думаю, прочитаю еще раз документацию...
Начал читать блок: https://sqlmesh.readthedocs.io/en/stable/concepts/models/overview/#model-description-and-comments

Думаю, ок, ну наверное наша БД для view поддерживает. А оказывается поддерживает (Postgres): https://sqlmesh.readthedocs.io/en/stable/concepts/models/overview/#engine-comment-support

Почему два месяца назад не получилось - я не знаю, помню только, что нашел информацию про то, что Postgres не поддерживает комментарии на view.
Возможно это была информация от ChatGPT - и тут она соврала.

PS: по прежнему считаю SQLMesh гениальным продуктом, который выдавит DBT
🐳7
Как использовать Gemini Pro 2.5 (c 1 млн контекстом) в VSCode или Cursor бесплатно?

Как вы знаете, недавно Google выпустил Gemini Cli для терминала с довольно слабыми ограничениями: 1 mln размер окна токенов, 60 запросов в минуту, 1000 запросов в день максимум!

Я нашел способ, как его использовать в VSCode или Cursor бесплатно:
1) Ставите Gemini Cli https://github.com/google-gemini/gemini-cli
2) Авторизуетесь в терминале в gemini-cli на свой бесплатный Gmail аккаунт (не корпоративный Workspace) [gemini команда, потом /auth]
3) В VSCode или Cursor cтавите плагин CLine 3.18.0 (обязательно эту версию, в следующих gemini cli убрали)
4) Запускаете Cline - авторизуетесь
5) В интерфейсе Cline выберите "Gemini Cli Provider"

Пользуйтесь на здоровье!
🔥21👍5
На текущий проект покупаем платный Metabase. У нас хорошая компания - OpenAI среди их клиентов!

Почему покупаем - у нас финтех, нужно жестче регулировать доступы к данным на уровне столбцов и строк
🔥5😁1👀1
Сейчас много, кто кодит свои проекты. Но что делать, если вы знаете Python, но не JavaScript/TypeScript?

Я бы рекомендовал обратить внимание на HTMX - взаимодейтсвие с пользователем управляется не на стороне браузера, а на стороне сервера.
Это позволяет писать проекты в одно лицо, эдакий Full Stack, когда вам не нужен отдельный Front end разработчик.
Для этого я рекомендую ознакомится с книгой https://hypermedia.systems/book/contents/
Она написана авторами HTMX. Книга также является хорошим введением в инженерию веб разработки.

Сам я пробовал использовать JavaScript/TypeScript для React, нанял программиста. При этом я писал backend на Python. Я столкнулся с проблемой - нужно писать детальные ТЗ. Мне стало сильно проще, когда я отказался от React и перешел на HTMX. CorpSignals написан на HTMX
Теперь я в Cursor пишу как full-stack с минимальным использованием JavaScript. И даже от него планирую избавиться перейдя на HyperScript - тоже от авторов HTMX.
🔥8👍6🙏1
за такую цену оно мне нахрен не нужно :( nic.ru. Берите домены на cloudflare - 10 USD
🤯62
Пишу 100% кода через LLM последние две недели.

Написал и отрефакторил тысячи строк в Cursor за 20 баксов auto модели + CLINE с Google cli.
Думаю я больше не буду сам код писать, смысла больше нет.

От сессий с курсором очень устаю, но мне больше нравится писать тексты с правилами разработками для него.

Потом напишу рецепты.

Пока думаю купить премиум Cursor или Claude Code за 200. даже текущей конфигурации полностью хватает, но я хочу быстрее!
🔥25👍4
topdatalab
Пишу 100% кода через LLM последние две недели. Написал и отрефакторил тысячи строк в Cursor за 20 баксов auto модели + CLINE с Google cli. Думаю я больше не буду сам код писать, смысла больше нет. От сессий с курсором очень устаю, но мне больше нравится…
Вчера писал про отлично работающий auto mode в Cursor.

Так вот, в этом режиме он пишет сам тесты, и даже запускает браузер и что то в нем может делать и отслеживать баги. Это вчера он все делал у меня. Я его об этом явно не просил. И это все безлимитно сейчас.

Есть теория, что Cursor свою модель тестирует

https://www.reddit.com/r/cursor/s/D8kB2TaDxC
👍7
topdatalab
Выложили видео с моего вебинара про SQLMesh и dltHub. Кроме рассказа, я показывал все на примерах, как на лабораторных работах. Думаю его полезно послушать тем, кто хочет использовать самые современные инструменты open-source data engineering. При этом организовать…
3 минуты требуется, чтобы запушить изменения в аналитическую систему!
Коммит -> Автоматический тест комиляции -> Автоматические тесты -> Вычисления -> Merge Request -> Post production -> User

Все укладывается в 3 минуты. Все автоматически, кроме нажатия кнопки "принять Merge Request"
Я считаю это очень крутым достижением, такого у меня еще никогда не было.
Нам помог SQLMesh и правильная настройка CI/CD.

Особенно интересно это видеть после "балаболов" CDO, говорящих про AI и прочую херь, и при этом имеют ужасный беспорядок в инженирии данных.
Никакой AI от этого не спасет.
🔥14💯5😎4
Кто-нибудь тестил Multi-Engine Support в SQLMesh?

Похоже это шикарная возможность использовать DuckDb чтобы заводить данные в Postgres или другую БД


https://juhache.substack.com/p/sqlmesh-and-multi-engine-data-stack
https://www.tobikodata.com/blog/support-for-multi-engine-projects
https://sqlmesh.readthedocs.io/en/stable/guides/multi_engine/
🔥5
topdatalab
Кто-нибудь тестил Multi-Engine Support в SQLMesh? Похоже это шикарная возможность использовать DuckDb чтобы заводить данные в Postgres или другую БД https://juhache.substack.com/p/sqlmesh-and-multi-engine-data-stack https://www.tobikodata.com/blog/support…
Работает!
Получилось прочитать сложные JSON файлы через DuckDb в Postgres, и все не выходя из SQLMesh.

Это тихая революция в data engineering.
Теперь можно делать data lake на этой технологии.
Может вы не понимаете пока, но это лучшее, что я видел за 20 лет карьеры.
А главное - не нужны дорогие Python разработчики - SQL достаточно.
Да и Python - это плохо для сложных data processing проектов. Это мое личное мнение

PS: а вот попытка Clickhouse сделать конкурента Duckdb похоже не увенчалась успехом https://github.com/chdb-io/chdb
🔥7🙏4🤔2👏1
Отвечаю на вопрос читателя по SQLMEsh


Меня зовут Иван. Я дата-инженер с многолетним опытом, я постоянно ищу новые инструменты и исследую их.

Я давно подписан на ваш канал и меня заинтересовал последний пост про SQLMesh.

Я поковырялся с ним, почитал доку, пообщался с разными LLM, но всё равно есть парочка вопросов, которые не дают покоя.

1) Как устроен в SQLMesh scheduler? Мне не понятно как он работает. Я рассматривал его как некую замену Airflow. У Airflow идёт как отдельный контейнер/под, который условно даёт задачи воркерам (упрощёно).

А как в случае с SQLMesh устроен scheduler? Судя по той же документации его как бы нет и нужно "*запускать*" каждый раз sqlmesh run и он будет "*определять*" нужно запускать код или нет?

Ответ: в нем пассивный оркестратор. Нужно запускать команду sqlmesh run c максимальной частотой, указанной в моделях. Если есть модели - одна раз в час обновляется, другая раз в день, то нужно запускать раз в час. SQLmesh сделает сам свое дело.


Из этого и состоит вопрос: где он хранит мета-данные о запуске? Как он понимает что одну модель нужно запустить, а другую нет? Как он оркестрирует эти задачи?

SQLMesh хранит состояние в базе, в которой вы работате.
AirFlow тут не нужен, это мое мнение


2) Как работать с дата лейком через DuckDB? Мне дико нравится DuckDB и он выполняет множество задач для меня. Но я не понимаю как обращаться к тому же дата лейку в формате S3 через SQLMesh?

У меня к примеру есть путь к файлу: https://s3.site/dev/raw/postgres/account/2025-07-21/2025-07-21_08-00-00.parquet

Как я могу читать условно сущность https://s3.site/dev/raw/postgres/account/2*/*.parquet чтобы с ней работать? Это нужно задавать через seed?

Буду благодарен, если сможете ответить и разобраться в этом инструменте.

Этот путь к файлу нужно прописать в модели, которая использует Duckdb как движок. Seed не нужен.
Объяснение здесь https://juhache.substack.com/p/sqlmesh-and-multi-engine-data-stack
👍5🔥3🙏3
💻 Pair Programming Interview Guide - May 2025 (1).pdf
117.7 KB
Shopify уже проводит кодинг интервью c AI, Meta только начинает

Я прикрепил инструкцию от Shopify, как проходит такое интервью.

Задачи могут быть разными: написать сокращатель ссылок, сделать ленивый Map-Reduce на Python.

Я на днях напишу инструкцию (даже для себя), как я пишу код на Cursor.

PS: Я для теста прошел такое интервью, но тут отдельная история. Я становлюсь невнимательным к деталям, когда время жмет.
Например, всю городскую олимпиаду по физике я решил за 10 минут, сдал, ушел. Занял только шестое место, так как допустил мелкие неточности (детали)
👍153
Запустил пару недель назад веб-приложение с RAG

1) Сетка Qwen 3 embed 0.4B - работает прямо на процессоре, поэтому самая маленькая. Пришлось конвернуть в формат ONNX
2) Готовые эмбеддинги в Postgres в pg_vector. Считал на своем домашнем AI сервере

Пробовал RAG Pinecone - не понравилось, сделал сам.
Весь код писался в Cursor + иногда Claude code - самые дешевые подписки.
Front и Back дружат за счет htmx https://t.me/topdatalab/453
Никакого React и прочего. Что сильно облегчило тестирование в том числе в самом Cursor

Всем кто интересуются RAG - очень рекомендую пройти короткий курс https://learn.deeplearning.ai/courses/advanced-retrieval-for-ai/lesson/kb5oj/introduction
Без воды, все по делу.

Само приложение https://corpsignals.com/app/

UPDATE:
1) Для поиска использую косинусную меру (привет рекомендательные системы)
2) Как оно работает внутри
- собрал тексты
- пропустил их через локальную Qwen 3 у себя дома на сервере, можно на домашнем компе
- embeddings сохранил в Postgres в pg_vector, размерность 1024
- далее добавил в Web приложение загрузку локальной Qwen 3 в формате Onnx
- когда приходит запрос от пользователя - он отправляется в сетку на Onnx, вычисляются embeddings
- ищу для этого embedidng в Postgres в pg_vector ближайшие тексты по косинусу
👍13🔥84
Вот примерно как RAG ищет, с cosine similarity
2🔥1
Вышла в апреле, толстая - 500 страниц. Пора уже посмотреть на инженерные подходы, мне перестало хватать собственных знаний. Впечатления напишу потом
🔥95👍5🤯2😱1
Получил интересный опыт оптимизации очень сложного SQLскрипта

Был скрипт - считался 900 секунд в SQL mesh, написан сложно. Я в его предметной области плохо разбирался.
Что я сделал
- Запустил по нему EXPLAIN ANALYZE DBeaver
- Подождал, cохранил результат в файл
- Загрузил файл в GPT5, попросил оптимизировать и предложить индексы
- Взял скрипт, запустил его в отдельной ветке SQLMesh, индексы не стал делать
- Попросил GPT5 написать SQL скрипт, который бы сравнил два результата в двух ветках SQLMesh
- Он его написал и использованием md5 от всех значений таблицы. Результат полностью совпал

Индексы я делать не стал. Скрипт стал работать 43 секунды.
Я такое сам бы не написал 🙁
🔥25👏8
Закончил свежий курс по Claude Code

Что нового узнал:
1) про MCP, например я сразу прикрутил Playwright, планирую еще Postgres
2) про параллельное программирование в Claude. Я правда не понял, зачем оно нужно. Параллельно задачи сложно делать
3) про Github issues и хуки, было интересно увидеть, как СС закрывает issues
4) как использовать дизайны Figma

В целом рекомендую, авторы - Anthropic
https://learn.deeplearning.ai/courses/claude-code-a-highly-agentic-coding-assistant/

Промпты с курса тут, буду к ним возвращаться
https://github.com/https-deeplearning-ai/sc-claude-code-files
👍108🙏1