IT Kniga
Интернет-магазин компьютерной литературы

Базы данных

Пример DAX с точки зрения реляционной алгебры

SQL - habr.ru - Пнд, 23/09/2024 - 02:05

Привет, Хабр!

Существует множество инструментов для решения задач Business Intelligence, одним из удобных инструментов является функциональный язык DAX, позволяющий работать с различными СУБД и выполнять достаточно сложные аналитические расчеты.

Поскольку язык DAX в рамках Power BI способен работать со множеством различных СУБД (например Oracle, MS SQL, MySQL, PostgreSQL, ClickHouse и т. д.), т. е. работает со множеством диалектов SQL, то в некотором смысле DAX является «надмножеством SQL» и приближается в этом смысле к реляционной алгебре. В данной статье приводится разбор типичного DAX для получения записи этого DAX в нотации реляционной алгебры. Интересующимся погружением в DAX и его реляционное представление — добро пожаловать :)

Читать далее
Категории: Базы данных

Странное поведение планировщика запросов PostgreSQL

SQL - habr.ru - Втр, 17/09/2024 - 08:05

В одной из предыдущих статей я описывал проблемы, которые возникают при работе с временными таблицами. Тогда я вкратце описывал, почему нам приходится их так часто использовать. В частности, одной из причин была неправильная работа планировщика запросов в PostgreSQL. Многие из проблем планировщика запросов (и не только PostgreSQL) были также описаны в статье Почему не SQL. В этой статье я покажу достаточно простой и часто используемый случай, когда планировщик ошибается, что может приводить к значительному росту потребления ресурсов. 

Проблема воспроизводится на последней стабильной на данный момент версии PostgreSQL - 16.2. При этом используются стандартные настройки PostgreSQL. Я пробовал менять разные настройки, но мне не удалось добиться правильного плана в общем случае, поскольку в данном случае проблема скорее логическая, а не в определении стоимости вычислений. Однако, каждый может легко воспроизвести эту ситуацию локально и попробовать поиграться с настройками. 

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

Читать далее
Категории: Базы данных

Как мы ускорили Trino, научив оптимизатор удалять ненужные Join

SQL - habr.ru - Втр, 17/09/2024 - 05:30

Как мы ускорили запросы в Trino, научив оптимизатор удалять из плана лишние операторы Join.

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

Читать далее
Категории: Базы данных

Преимущества DAX на примере коэффициента проникновения

SQL - habr.ru - Пнд, 16/09/2024 - 08:20

Привет, Хабр! В рамках Business Intelligence для расчета KPI и других статистических характеристик могут использоваться различные средства. Универсальным и мощным инструментом является язык DAX, в этой статье я хочу показать его преимущества на примере популярной задачи расчета коэффициента проникновения в Power BI.

Если интересна аналитика с DAX - то добро пожаловать! :)

Читать далее
Категории: Базы данных

Решаем загадку Джиндоша на SQL в пять строчек

SQL - habr.ru - Сб, 14/09/2024 - 08:14

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

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

Как?!
Категории: Базы данных

Оцените свои знания SQL

SQL - habr.ru - Пт, 13/09/2024 - 11:18

Мы на Хабр Карьере помогаем IT-специалистам зарабатывать больше, а компаниям — быть в курсе трендов на рынке найма. 

Сейчас мы активно ударились в создание инструментов для тестирования навыков в IT. Пока начали с одного — SQL. Нам помогли эксперты из Яндекс.Практикума: они подготовили тест, а мы собрали его и принесли вам. Надеемся, он поможет вам оценить знания и понять свой уровень. 

Если вы успешно пройдете тест, он будет красиво подсвечен в вашем профиле на Хабр Карьере — работодатели будут знать, что вы подтвердили свои знания.

Читать далее
Категории: Базы данных

ClickHouse vs BigQuery: 4 отличия в SQL

SQL - habr.ru - Чт, 12/09/2024 - 13:41

Привет, Хабр!
Я Павел Беляев — тимлид дата-аналитиков. Наша компания отвечает за разработку и поддержку витрин данных. Как и многие, мы столкнулись с необходимостью перевести инфраструктуру с иностранного стека на отечественный.

Наша аналитическая база данных несколько лет строилась на базе Google BigQuery. Она содержала сотни представлений на гугл-диалекте SQL, и весь этот технопарк было решено перебазировать на российские платформы. Понятное дело, что ClickHouse и BigQuery — далеко не одно и то же, так что в процессе переезда нам пришлось набить немало шишек. В этой статье я покажу несколько отличий в SQL этих СУБД. Надеюсь, их понимание поможет сэкономить время и нервы тем, кто сталкивается с аналогичной задачей.

Читать далее
Категории: Базы данных

SQL HowTo: загадка Эйнштейна, или снова Джиндош

SQL - habr.ru - Чт, 12/09/2024 - 12:45

Пару дней назад был опубликован пост с решением на MySQL загадки Джиндоша (она же загадка Эйнштейна).

Предложенное решение показалось мне "неспортивным" - помимо необходимости жестко учитывать в структуре запроса количество исходных элементов ("джойнить" нужные таблицы нужное количество раз), так еще и условия в запросе приходилось многократно дублировать.

Поэтому я попробовал решить эту задачу "в общем виде", используя возможности PostgreSQL, и вот что из этого получилось.

Читать далее
Категории: Базы данных

Курс «PostgreSQL для начинающих»: #4 — Анализ запросов (ч.2 — узлы получения данных)

SQL - habr.ru - Ср, 11/09/2024 - 09:25

Продолжаю публикацию расширенных транскриптов лекционного курса "PostgreSQL для начинающих", подготовленного мной в рамках "Школы backend-разработчика" в "Тензоре".

В первой части лекции мы узнали, что такое план выполнения запроса, как и зачем его читать (и почему это совсем непросто), и о каких проблемах с производительностью базы он может сигнализировать. В этой - разберем, что такое Seq Scan, Bitmap Heap Scan, Index Scan и почему Index Only Scan бывает нехорош.

Как обычно, для предпочитающих смотреть и слушать, а не читать - доступна видеозапись (часть 1часть 2) и слайды.

Читать далее
Категории: Базы данных

Решаем загадку Джиндоша из Dishonored 2 на SQL перебором с возвратом

SQL - habr.ru - Втр, 10/09/2024 - 13:01


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

Сегодня мы рассмотрим решение непростой загадки Джиндоша из замечательной игры Dishonored 2 с помощью SQL. SQL Может Многое!
Категории: Базы данных

Решаем загадку Джиндоша из Dishonored 2 на SQL перебором с возвратом

MySQL - habr.ru - Втр, 10/09/2024 - 13:01


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

Сегодня мы рассмотрим решение непростой загадки Джиндоша из замечательной игры Dishonored 2 с помощью SQL. SQL Может Многое!
Категории: Базы данных

Примеры использования state функций в ClickHouse

SQL - habr.ru - Втр, 10/09/2024 - 01:36

Существуют базы данных различного вида, и для колоночных баз данных, таких как, например, ClickHouse, характерны особые инструменты для вычислений аггрегированных значений.

Из документации ClickHouse не всегда легко сразу понять ценность функций для имплементации бизнес-логики, в частности, ценность функции runningAccumulate. Например, несмотря на богатые возможности runningAccumulate, неотформатированный код и имена вида k и sum_k из документации могут немного ввести в заблуждение.

Если Вам интересно рассмотреть state функции ClickHouse на паре примеров с более понятной логикой, то добро пожаловать :)

Читать далее
Категории: Базы данных

Генерация диаграммы «Сущность-Связь/ Entity-Relationship» с помощью Laravel

SQL - habr.ru - Пнд, 09/09/2024 - 02:18

Laravel ERD (Схема сущность/связь)

Автоматическая генерация диаграмм базы данных под ваши сущности в Laravel

Читать далее
Категории: Базы данных

Хранение данных в Postgresql

SQL - habr.ru - Вс, 08/09/2024 - 10:15

В этом тексте хочется подробнее рассмотреть хранение данных в PostgreSQL на физическом уровне.

Для начала определимся с общеизвестными вещами. Данные хранятся в таблицах, таблицы находятся в схемах, схемы, в свою очередь, в базах данных. Под данными я тут подразумеваю одну или несколько строк. В качестве примера будем рассматривать эталон критики, по моему личному мнению, цитаты Линуса Торвальдса.

Подробнее под катом
Категории: Базы данных

PostgreSQL 17: Часть 5 или Коммитфест 2024-03

SQL - habr.ru - Пт, 06/09/2024 - 15:06


После выхода релиз-кандидата версии 17 в плане выпуска осталась последняя незакрытая дата: 26 сентября 2024 года. На этот день намечен официальный выпуск PostgreSQL 17.


В этой статье рассказывается о патчах, принятых в ходе последнего мартовского коммитфеста. Предыдущие статьи о коммитфестах 17-й версии: 2023-07, 2023-09, 2023-11, 2024-01.


Все вместе они дают подробное представление о новой версии СУБД.

Читать дальше →
Категории: Базы данных

Вложенные тексты как возможность для композиции (разделения на части) в длинных текстах (so10; sapscript text)

SQL - habr.ru - Пт, 06/09/2024 - 14:12

В статье рассмотрены примеры использования длинных (sapscript) текстов для построения шаблонов с использованием вложенности шаблонов, переменных и условных конструкций. Статья будет полезна для разработок рассылок на основе SAP NetWeaver, формирование печатных форм, рекомендательной/пояснительной документации.

О, покажите мне, что может текстозавр...
Категории: Базы данных

Статический анализ структуры базы данных в проекте GitLab

SQL - habr.ru - Пт, 06/09/2024 - 05:36

Возможно ли применить статический анализ структуры базы данных к реальным проектам, которые используют PostgeSQL, какой будет результат? Давайте применим и посмотрим что получится. В качестве реальных проектов возьмем инструменты с открытым кодом, которыми многие пользуются ежедневно - GitLab и Redmine.

Читать далее
Категории: Базы данных

Чт, 01/01/1970 - 00:00

Большая распродажа компьютерной литературы

Полный список здесь

RSS-материал