tgindex

Data Science. SQL hub

описание

По всем вопросам- @workakkk @itchannels_telegram - 🔥лучшие ит-каналы @ai_machinelearning_big_data - Machine learning @pythonl - Python @pythonlbooks- python книги📚 @datascienceiot - ml книги📚 РКН: https://vk.cc/cIi9vo #VRHSZ

35 864
подписчиков
Охват к подписчикам
10,2%
ERR
Реакции к просмотрам
0,35%
743 на 50 постов
Пересылки к просмотрам
1,24%
2 617
Постов в день
1,0
всего 52

Где отзываются чаще

доля реакций к просмотрам
  • 16 авг.🐘 SQL-совет, который многие игнорируют: не используй `COUNT(*)`, если тебе нужно только проверить существование строки. Часто пишут так: SELECT COUNT(*) FROM orders WHERE user_id = 42; А потом проверяют, больше ли результат нуля. Но базе приходится посчитать все совпадения, хотя тебе нужна всего одна информация: есть хотя бы одна строка или нет. Лучше использовать: SELECT EXISTS ( SELECT 1 FROM orders WHERE user_id = 42 ); EXISTS может остановить поиск сразу после первого совпадения. На маленькой таблице разницы почти не заметишь. На миллионах строк и частых проверках это уже может серьёзно экономить ресурсы. Если нужен ответ «да/нет» — не заставляй SQL считать всё.2,06%
  • 21 июл.Рой ИИ-агентов написал аналог SQLite на Rust за несколько часов 🤯 Cursor провела необычный эксперимент: агентам выдали только официальную документацию SQLite объёмом 835 страниц и поручили с нуля реализовать собственный движок базы данных на Rust. Без интернета, готового исходного кода и дополнительной помощи. Уже через четыре часа получившиеся реализации правильно выполняли 73–85% запросов из скрытого теста. После дальнейшей работы некоторым командам удалось довести результат до 100%. Но особенно удивила стоимость: - связка Opus 4.8 и Composer 2.5 потратила около $1 400; - Fable — примерно $20 000. Одинаковая задача, но почти пятнадцатикратная разница в цене. Во время разработки агенты столкнулись с до боли знакомыми командными проблемами: дублировали работу, конфликтовали при изменении одних и тех же файлов и избегали трогать ядро системы, даже когда без этого было невозможно двигаться дальше. Получается, ИИ уже способен за часы собрать сложный системный проект, но митинги, конфликты и страх ответственности он тоже автоматизировал 😂 #ai #rust #sqlite #agents #programming https://cursor.com/blog/agent-swarm-model-economics @rust_code1,02%
  • 7 авг.💡 SQL-трюк: сравнивайте `NULL` без костылей В PostgreSQL обычное сравнение может неожиданно сломать условие: SELECT NULL = NULL; Результат: NULL Потому что NULL означает «неизвестное значение», а не конкретное значение. Из-за этого часто пишут громоздкие условия: WHERE a = b OR (a IS NULL AND b IS NULL) Но есть оператор, о котором многие забывают: a IS NOT DISTINCT FROM b Он работает как NULL-safe equality: SELECT NULL IS NOT DISTINCT FROM NULL; -- true SELECT 10 IS NOT DISTINCT FROM 10; -- true SELECT 10 IS NOT DISTINCT FROM NULL; -- false Есть и обратный вариант: a IS DISTINCT FROM b Например, удобно искать реально изменившиеся значения: SELECT * FROM old_data o JOIN new_data n USING (id) WHERE o.email IS DISTINCT FROM n.email; Если оба email = NULL, строка не считается изменённой. Без этого обычное: o.email <> n.email может просто вернуть NULL и пропустить изменение. Особенно полезно при синхронизации данных, аудите изменений, ETL и UPSERT-логике. #SQL #PostgreSQL #Database0,94%
  • 9 авг.⚡️ SQL-приём: `GROUPING SETS` может заменить несколько тяжёлых `GROUP BY` + `UNION ALL`. Допустим, нужно одновременно получить статистику: - по стране и городу; - только по стране; - общий итог. Часто пишут так: SELECT country, city, SUM(revenue) FROM sales GROUP BY country, city UNION ALL SELECT country, NULL, SUM(revenue) FROM sales GROUP BY country UNION ALL SELECT NULL, NULL, SUM(revenue) FROM sales; Но SQL умеет это нативно: SELECT country, city, SUM(revenue) AS revenue FROM sales GROUP BY GROUPING SETS ( (country, city), (country), () ); () означает grand total. А если нужно понять, настоящий ли NULL лежит в данных или это строка итогов: GROUPING(country) GROUPING(city) вернут 1 для колонок, которые были свернуты агрегированием. 🔥 Особенно полезно для: OLAP-запросов; аналитических отчётов; дашбордов; многоуровневых итогов; запросов, где иначе появляется несколько почти одинаковых GROUP BY. Ещё есть: ROLLUP(...) CUBE(...) ROLLUP строит иерархические итоги, а CUBE - все комбинации измерений. Если в аналитическом SQL у вас появляется цепочка из GROUP BY + UNION ALL, возможно, вы просто забыли про GROUPING SETS. #SQL #PostgreSQL #DataEngineering #Analytics0,85%
  • 12:04🌟 Cohere Labs выложила компактную зрительно-языковую модель North Micro Vision Модель на 2,4 млрд параметров стала самой маленькой в линейке VLM компании. От большинства таких моделей она отличается тем, что работает с изображением в исходном разрешении. Обычно картинку перед подачей в модель сжимают, и мелкий текст, разметка таблицы и подписи на графике при этом теряются. Здесь пропорции сохраняются, а верхняя планка соответствует странице A4, отсканированной при 200 dpi. Отсюда и заявленная область применения - документы, таблицы, графики, скриншоты, формы. Компактный размер удобен для дообучения под свою предметную область, а квантованные сборки, по словам Cohere, пойдут не только на сервере, но и на ноутбуке или устройстве мобильного класса. 🟡Архитектура Зрительный энкодер на 400 млн параметров вырос из SigLIP 2 и держит исходное разрешение за счёт двумерного RoPE вместе с обученными одномерными позиционными эмбеддингами. Языковая часть - собственная North Micro LLM на 2 млрд параметров, повторяющая архитектуру Command A+: три слоя внимания со скользящим окном и RoPE чередуются с одним глобальным слоем, который работает вообще без позиционных эмбеддингов. Получается разделение труда - окна с RoPE держат локальный контекст, глобальный слой смотрит на всё сразу и в разметке позиций не нуждается. Между ними проектор, и здесь изюминка. Вместо того чтобы отдать языковой модели один готовый набор признаков, Cohere подмешивает эмбеддинги патчей с нескольких уровней зрительного энкодера в соответствующие ранние слои языковой модели. Так модель видит картинку сразу на разных степенях обобщения. Принцип взят из DeepStack. 🟡Тесты Замеры проводили через VLMEvalKit, сравнивая с восемью моделями размером от 1,6 до 5,1 млрд параметров. Сильнее всего North Micro Vision выглядит там, куда её и целили. На DocVQA 0,921, на ChartQA 0,808, на AI2D 0,775, на RefCOCO 0,732 (втрое выше, чем у Ministral и Qwen3-VL). Общий язык и рассуждение даются слабее. На MMMU 0,329, худший результат в таблице; на MMLU и MMLU-Pro модель тоже уступает большинству соседей. 📌Лицензирование: Apache 2.0 License. 🟡Статья 🟡Модель 🟡Демо @ai_machinelearning_big_data #AI #ML #VLM #NorthMicroVision #Cohere0,77%
  • 12 авг.Как SQLite выжимает скорость: байткод, VM и goto Некрасивый код, который делает SQLite быстрым0,73%
  • 19 июл.без подписи0,72%
  • 3 авг.SQL-совет: `LATERAL` вместо тяжёлого оконного запроса Нужно получить последнюю операцию каждого пользователя? В PostgreSQL можно не ранжировать всю таблицу через ROW_NUMBER(). SELECT u.id, last_order.id, last_order.created_at FROM users AS u LEFT JOIN LATERAL ( SELECT id, created_at FROM orders WHERE user_id = u.id ORDER BY created_at DESC LIMIT 1 ) AS last_order ON true; LATERAL запускает подзапрос отдельно для каждой строки слева и разрешает обращаться к u.id. Добавьте индекс: CREATE INDEX ON orders (user_id, created_at DESC); Тогда PostgreSQL сможет брать последнюю запись прямо из индекса, не сортируя все заказы пользователя. Такой приём особенно полезен для задач: - последняя операция пользователя; - актуальный статус заказа; - последнее событие устройства; - последние N записей для каждой группы. Для больших таблиц это часто быстрее и проще, чем оконная функция по всему набору данных.0,72%
  • 27 июл.SQLite установлен практически везде. Но отправить туда обычный pull request у вас не получится. SQLite работает на каждом iPhone и Android, в Chrome, Firefox, Safari, Windows, телевизорах, автомобилях и миллиардах других устройств. По оценке самого проекта, сейчас активно используется больше триллиона SQLite-баз. И при этом SQLite принципиально остаётся проектом с очень маленькой командой разработчиков. На официальном сайте это сформулировано прямо: Open source, but not open-contribution. Проект не принимает случайные pull request'ы и патчи из интернета. Чтобы код вообще мог попасть в SQLite, автор должен юридически передать свой вклад в public domain. Для этого существует отдельный подписываемый документ. Причина не в высокомерии разработчиков. Так они защищают одну из главных особенностей SQLite: весь основной код должен оставаться свободным от чужих copyright-претензий. Получился довольно редкий парадокс: одна из самых распространённых технологий на планете стала настолько успешной не благодаря тысячам контрибьюторов, а благодаря жёсткому контролю над тем, кто вообще может менять её код. И эта модель работает уже больше 25 лет.0,71%
  • 8 авг.🚀 ИИ-агент ускорил SQLite до 59% меньше чем за 8 часов Ускорить SQLite хотя бы на 5% уже было бы серьёзным результатом. Это один из самых зрелых и оптимизированных проектов в мире - его команда почти 20 лет выжимает из кода каждую долю производительности. Но AI-агент KISS Sorcar менее чем за 8 часов и с затратами меньше $150 добился заметного ускорения сразу в нескольких типах нагрузки. Результаты: - 2,06× быстрее в официальном speedtest1 (~30 тыс. операций) - 1,90× в TATP — транзакционная OLTP-нагрузка - 1,30× в Star Schema Benchmark — аналитические запросы - 1,25× в kvtest — работа с BLOB и дисковым I/O Агент нашёл места, где стандартная конфигурация SQLite несла лишние расходы — особенно при записи транзакций на диск. После этого он: - изменил код и настройки - прогнал бенчмарки - проверил свои же изменения на ошибки - сохранил совместимость с существующими тестами Более миллиона тестов SQLite продолжают проходить. анализ зрелой кодовой базы → поиск узких мест → изменение реализации → бенчмарки → проверка собственных решений. GitHub: https://github.com/ksenxx/sqlite-optimized/ Blog: https://kisssorcar.github.io/blog/sqlite-optimization-blog.html #AI #SQLite #Programming #CodingAgents #Performance #OpenSource0,70%
  • 15 авг.🔥 Tailscale полгода ловила «невозможную» порчу SQLite. В итоге нашли баг, который жил в базе минимум 16 лет В production у Tailscale начали случайно повреждаться SQLite-базы. Никакой стабильной причины: разные шарды, разная нагрузка, иногда между инцидентами проходили недели. За шесть месяцев компания поймала 19 случаев corruption. После месяцев форензики вместе с core-разработчиками SQLite нашли причину: редкий race condition между записью и WAL checkpoint. При очень точном совпадении по времени SQLite мог решить, что страницы уже перенесены из WAL в основной файл, хотя этого не происходило. Часть данных исчезала, а база становилась повреждённой. Баг получил название WAL-Reset. По оценке разработчиков SQLite, он существовал минимум 16 лет и был настолько редким, что для тестов пришлось специально писать код, который провоцирует нужную гонку. Tailscale ловила его чаще из-за агрессивного ручного checkpointing. А дальше стало ещё веселее: версия SQLite 3.52.0 с исправлением обнаружила вторую проблему со stale expression indexes и начала выдавать ложные сообщения о corruption. Релиз отозвали, а фикс WAL-Reset перевыпустили в SQLite 3.51.3. Редкий пример расследования, где компания полезла искать баг в одной из самых проверенных баз данных мира и действительно нашла его. 🔗 tailscale.com/blog/sqlite-wal-reset-bug #SQLite #Database #Linux #Backend #Engineering0,69%
  • 18 авг. 2025 г.📊 Из PDF в DataFrame за пару строк кода Работаете с финансовыми отчётами или любыми табличными данными в PDF? С библиотекой docling это становится максимально просто. Большинство инструментов для работы с PDF заставляют собирать пайплайн вручную: одна библиотека для извлечения текста, другая для парсинга, третья для чанкинга. Docling закрывает весь процесс — от сырых PDF до структурированных и готовых к поиску данных — в одном решении. 📌 Преимущества Docling: 🔹 Поддержка PDF, DOCX, PPTX, HTML и изображений 🔹 AI-модель TableFormer для понимания сложных таблиц 🔹 Vision-модели для OCR и image-to-text 🔹 Простой экспорт в pandas DataFrame, JSON и Markdown Пример: конвертируем PDF с отчётом о доходах и сразу получаем pandas DataFrame 👇 from docling.document_converter import DocumentConverter converter = DocumentConverter() result = converter.convert("financial_report.pdf") for table in result.document.tables: df = table.export_to_dataframe() 📌 Github @sqlhub #AI #RAG #Docling #DataEngineering #PDF0,63%