Обновить
68.82

SQL *

Формальный непроцедурный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Impala vs Greenplum vs StarRocks: тестирование производительности на объеме порядка десятков миллионов строк

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели4.6K

Задача: быстро выполнять агрегирующие запросы (JOIN, GROUP BY, COUNT) по десяткам миллионов строк в офлайновых сценариях на Big Data‑платформе. Мы сравнили три подхода: Parquet + Impala в экосистеме CDH, MPP‑движок Greenplum и MPP‑СУБД StarRocks. В единой тестовой среде (SAD ~7 млн, ITEM ~3 млн записей) выполнили серию запросов JOIN + GROUP BY + ORDER BY и замерили суммарное время 10 прогонов. Показано, что внедрение MPP заметно ускоряет аналитику (типично 1–2 с на запрос), при этом StarRocks в среднем немного обходит Greenplum. В статье — методика, параметры развертывания, нюансы импорта из Oracle (CloudCanal) и сводные метрики.

Читать далее

Шпаргалка по работе с PostgreSQL для бэкенд-разработчиков

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели14K

Лайфхаки для миграций, оптимизации и избегания граблей

Реальные лайфхаки и проверенные практики по миграциям, оптимизации запросов, управлению индексами и обратной совместимости кода. Узнайте, как:

Не сломать прод при миграции.
Избежать N+1 и других проблем SQL-запросов.
Планировать откаты и работать безопасно на высоконагруженных БД.

Читать далее

Гид по Cloudberry ч.2: advanced-возможности, дорожная карта и планы развития

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели5.7K

В прошлый раз, в первой части нашего гида по Apache Cloudberry™, мы поговорили об истории проекта, его архитектуре, ядре СУБД и функциях платформы. 

Но помимо ядра СУБД, мы также хотим использовать data‑lakehouse‑запросы. В Data Lakehouse есть некоторые проблемы: мы не можем получать данные оттуда напрямую. В Cloudberry разработана технология, с помощью которой можно это делать, так что поговорим об этом подробнее. А также рассмотрим ещё несколько интересных возможностей и расскажем о планах проекта.

Читать далее

Как я написал CRM-систему для компании с помощью ChatGPT. Без опыта в коммерческом программировании

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели26K


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

Это история о том, как я написал полноценную CRM-систему с помощью ChatGPT, работая обычным менеджером по работе с заказчиками.

Читать далее

Вы все еще изобретаете велосипеды при миграции данных из Oracle в Postgres? Мы тоже

Время на прочтение24 мин
Охват и читатели6.4K

В статье я расскажу о практических кейсах и сложностях, возникающих (и возникавших) в процессе миграции данных между СУБД (Oracle -> Postgres), а также о собственном инструменте миграции данных, который вы также можете попробовать.

Читать далее

StarRocks Lakehouse: быстрый старт — Hive Catalog

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели3.3K

StarRocks Lakehouse на практике: пошаговый гайд по интеграции с Apache Hive через Hive Catalog. На прикладочном сценарии «управление заказами» показываем, как построить слой ODS/DWD/DWS/ADS в озере данных и ускорить запросы без миграции данных: от создания таблиц и генерации тестовых наборов до подключения External Catalog. Разбираем включение Data Cache для ускорения чтения из HDFS/S3/OSS (Parquet/ORC/CSV) и применение асинхронных материализованных представлений в StarRocks для витрин DWD/DWS/ADS. Поясняем, как добиться быстрых запросов за счёт векторизированного движка и CBO, а также даём практические советы по настройке (Kerberos/HMS, конфигурация BE/FE, прогрев кэша, сбор статистики, MV‑rewrite). Материал будет полезен инженерам по данным и архитекторам DWH, которым нужна аналитика в реальном времени по данным озера без лишнего ETL.

Читать далее

ClickHouse уже не один: StarRocks показывает, что lakehouse-аналитика может быть проще и быстрее»

Время на прочтение5 мин
Охват и читатели6.3K

С распространением сценариев real-time аналитики, lakehouse & modern BI всё чаще сталкиваются две флагманские аналитические СУБД: ClickHouse и StarRocks. Одна из ключевых конкурирующих битв ведётся не на маркетинговом поле, а в производительности, гибкости архитектур и удобстве поддержки сложных аналитических схем.

ClickHouse, будучи зрелым и широко используемым решением, зарекомендовал себя как очень быстрый колонковый движок, оптимизированный для агрегаций, фильтров и чтения узкого поднабора колонок из огромных объёмов данных. ClickHouse+2Instaclustr+2 Он эффективен в задачах логов, телеметрии, веб-аналитики и других OLAP-нагрузках, где схемы часто «расстилаются» — с минимальным числом джоинов и высокой степенью денормализации. Decube+2Wikipedia+2

Однако подход ClickHouse — оптимизация работы с плоскими таблицами и минимизация связанных таблиц — становится ограничением, когда бизнес-сценарии требуют моделирования звёздной схемы (fact + dimension) и выполнения динамических запросов с join’ами. В таких случаях ClickHouse часто вынужден либо смягчать нагрузку через ETL денормализацию, либо сталкиваться с трудоёмкими запросами. CelerData+2StarRocks+2

Вот где StarRocks начинает оспаривать лидерство. Он предлагает архитектуру, ориентированную на эффективные join и агрегации “на лету”, поддерживая материализованные представления (MV), которые автоматически обслуживаются и подменяются при выполнении запросов. DZone+3StarRocks+3StarRocks+3 В бенчмарках StarRocks часто показывает преимущество: в тестах на SSB (набор из 13 запросов) StarRocks в среднем быстрее ClickHouse почти вдвое. StarRocks Docs+2CelerData+2

Читать далее

GigAPI — это лёгкий «тайм-серии-лейкхаус» на базе DuckDB + Parquet с FDAP-стеком

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.3K

Если вы когда-нибудь собирали аналитику по кликам, метрикам или логам, то знаете цену вопроса: хочется SQL за миллисекунды, хранение в дёшёвом объектном хранилище, минимум «танцев» с кластером и—если повезёт—MIT-лицензию без ловушек. На одном берегу — «тяжёлые» распределённые OLAP-системы (ClickHouse, Pinot, Druid), на другом — специализированные TSDB (InfluxDB, TimescaleDB, QuestDB). Между ними набирает силу «озёрный» подход: складывать сырые события в Parquet, а считать — встраиваемым движком с Arrow/FlightSQL поверх.

GigAPI как раз из этой когорты: DuckDB + Parquet, чтение из локального диска или S3, запросы через FlightSQL (gRPC) и HTTP, режимы writeonly/readonly/compaction, один контейнер для старта и понятная философия «делай просто, делай быстро». Проект обещает суб-секундные аналитические запросы, компактизацию и дружбу с FDAP-миром (Arrow/DataFusion/Parquet/Flight) — всё то, что нравится инженерам, уставшим от «зоопарков» сервисов.

Читать далее

Arc: Убийца ClickHouse на стероидах из DuckDB и Parquet? Разбираем новый движок для time-series

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели9.9K

Привет, Хабр! Если последние годы вас не отпускала фантомная боль от вечного выбора между ураганной скоростью ClickHouse, невозмутимой простотой SQLite и порой адской сложностью настройки InfluxDB, — возможно, вы, как и мы, дождались чего-то по-настоящему нового.

На горизонте появился проект Arc от команды Basekick Labs. Это не просто очередная попытка, а дерзкая заявка на соединение всего лучшего из мира time-series и lakehouse-подхода. Забудьте о тяжёлых серверах и мучительной шардированной архитектуре. Arc предлагает:

Читать далее

SQL или NoSQL? Кто есть кто и с чем их едят

Время на прочтение6 мин
Охват и читатели5.9K

Научная группа из Московского Энергетического Института сделала обзор основных преимуществ баз данных SQL или NoSQL. Итак, в чем разница между данными базами данных, и какую базу данных выбрать в том или ином случае? Представьте, что вам нужно организовать хранение информации. У вас есть два подхода: аккуратно разложить всё по папкам с ярлыками в строгом порядке (это SQL) или скинуть всё в один большой складской ящик, но с умной системой быстрого поиска нужной вещи (это NoSQL). Оба метода работают, но предназначены для разных задач. Давайте разберемся, что к чему.

Читать далее

Apache Cloudberry — открытое будущее Greenplum. Сравнение, архитектура, перспективы

Время на прочтение4 мин
Охват и читатели4.2K

Если вы работаете с аналитическими базами данных, то наверняка слышали о Greenplum — одном из самых мощных MPP-решений (Massively Parallel Processing) на базе PostgreSQL.
Однако в последние годы в экосистеме PostgreSQL появилось новое имя — Apache Cloudberry.

На первый взгляд, это ещё один форк Greenplum.
Но на деле Cloudberry — переосмысление архитектуры MPP-СУБД, выполненное с уважением к наследию Greenplum, но с современным кодом, ядром PostgreSQL 14+, открытым управлением через Apache Foundation и амбициозной целью стать по-настоящему открытой аналитической платформой уровня DWH.

Читать далее

Сапёр в эпоху LLM: Создание Text-to-SQL агента для базы данных SAP ERP

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели6.8K

Привет, Хабр! Если вы читали мою прошлую статью Сапёр в эпоху LLM: Повайбкодим на ABAP , то уже знаете, что попытка «повайбкодить» на ABAP с помощью LLM — затея, мягко говоря, неоднозначная. Модели «галлюцинируют», выдумывают несуществующие BAPI и таблицы, и в целом чувствуют себя в закрытой экосистеме SAP не очень уверенно. Как говорится, вайбкодинг не задался.
В комментариях к статье прозвучала здравая мысль: будь у модели больше контекста, она бы справилась лучше.Раз появились такие идеи — значит, пора воплощать их в жизнь. На этот раз — новая серия экспериментов: в этот раз займемся переводом вопросов по SAP из обычного языка в SQL-запросы, плюс построим агента с необходимыми для этого инструментами.

Читать далее

Как мы обеспечили +33% к точности на сложных SQL-запросах

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели5.8K

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

Читать далее

Ближайшие события

Greengage DB: новый open-source монстр MPP-аналитики. Конец эпохи Greenplum?*

Время на прочтение9 мин
Охват и читатели5.1K

Что, если Greenplum пережил перерождение?
Новый проект Greengage DB возвращает PostgreSQL в большую игру — теперь с авто-масштабированием, чистым ядром и реальной совместимостью.
Разбираемся, почему этот форк может стать «Linux для аналитики».

Читать далее

Как мы в Циане готовим Data Vault на GreenPlum

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели3.5K

Привет! Меня зовут Влад, я DWH-инженер в Циан. Занимаюсь проектированием витрин и пайплайнов для доставки данных в корпоративное хранилище. В этой статье хочу поделиться опытом применения методологии Data Vault на Greenplum.

Data Vault часто упоминают рядом с Kimball и Inmon, но практических материалов по его внедрению заметно меньше. Для инженеров, которые только начинают строить DWH или думают о переходе на Data Vault, я собрал практический разбор: на каких задачах методология действительно помогает, с какими трудностями можно столкнуться и как это выглядит в реальном проекте.

Читать далее

Arrow Flight, Flight SQL и ADBC: Прощаемся с тормозами ODBC/JDBC в мире больших данных

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели6.9K

Привет, Хабр! Если вы хоть раз пытались выгрузить из базы данных несколько гигабайт данных в pandas DataFrame, то вам знакома эта боль. Вы пишете простой SELECT, запускаете скрипт и... уходите пить кофе. А потом ещё раз. Почему так медленно? Ведь и база быстрая, и сетка не загружена, и ваш Python-скрипт крутится на мощной машине.

Проблема кроется в невидимом, но коварном враге — старых и проверенных, как дедушкин паяльник, протоколах вроде ODBC и JDBC. Они были созданы для мира транзакционных, построчных баз данных и совершенно не готовы к современным аналитическим нагрузкам.

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

В основу легла статья Dipankar Mazumdar.

Читать далее

Parquet — король умер? Да здравствует… кто? Обзор BtrBlocks, FastLanes, Lance и Vortex

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели8.8K

Привет, Хабр! Если вы работаете с большими данными, то для вас, скорее всего, Parquet — это как воздух. Стандарт де-факто для колоночного хранения в экосистеме Hadoop, Spark, и вообще всего, что связано с аналитикой. Он эффективен, надёжен и поддерживается практически всеми инструментами. Казалось бы, живи и радуйся.

Но что, если я скажу, что в мире современных SSD, многоядерных CPU и вездесущих векторных баз данных старый добрый Parquet начинает показывать свой возраст? Он был спроектирован в эпоху, когда узким местом были HDD и сетевые задержки, а не скорость процессора. Сегодня железо изменилось, задачи тоже, и на сцену выходят новые, амбициозные форматы.

Давайте разберёмся, где именно Parquet даёт слабину и кто эти дерзкие новички, которые метят на его трон.

За основу взята статья Dipankar Mazumdar.

Читать далее

Можно ли DAX-запрос превратить в SQL? Да, и сейчас я покажу, как (и зачем)

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели3.6K

Аналитика, Power BI, DAX, SQL, Базы данных

Каждый, кто перешел в Power BI из мира баз данных или просто имеет за плечами опыт работы с SQL, наверняка задавался этим вопросом. Пишешь очередную навороченную меру на DAX, смотришь на результат и думаешь: «А как бы эта магия выглядела на старом добром, понятном SQL?».

Хватит гадать. Короткий ответ: да, это возможно, но это не прямой перевод с одного языка на другой. Забудьте о волшебном онлайн-конвертере, который сделает всё за вас. Это ручной процесс, требующий анализа и понимания.

Читать далее

Гематоэнцефалогический барьер для динамического SQL-кода

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели4.5K

Создаем песочницу для безопасного выполнения non-trusted DSQL-кода и возвращаем из него by design безопасный результат в высокопривилегированное кольцо

добро пожаловать под кат

О параллельности при создании индексов в Postgres (часть 1)

Время на прочтение4 мин
Охват и читатели6.2K

Добрый день, коллеги!

Сегодня я хочу поделиться некоторыми проблемами (и решениями) при создании большого количества индексов и ограничений целостности (констрейнтов) одновременно.

Но для начала хочу порассуждать о том, почему вообще возникли такие вопросы.

При развёртывании новой крупной базы данных с «нуля» (например путём миграции), возникает необходимость построить также большое количество индексов в весьма ограниченное тех. окно. Как известно, процесс построения индекса это не только ценный мех IO, но и довольно большое количество CPU при достаточно производительной дисковой подсистеме. Чем больше ядер вы сможете задействовать — тем быстрее пойдёт процесс (в общем случае утверждение, конечно, спорное, но в моём случае обоснованное и проверенное).

На пути «параллелизации» всего и вся возникают разнообразные проблемы, про 3 такие проблемы я и хочу рассказать сегодня.

Читать далее

Вклад авторов