Обновить
64.51

SQL *

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

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

Как правильно выбрать базу данных для разработки: понимание моделей репликации

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

Выбор подходящей системы управления базами данных (СУБД) — важнейшая задача при проектировании программных систем. Разработчики и архитекторы учитывают множество факторов: модель данных (реляционная или NoSQL), поддержку транзакций, масштабируемость, требования к согласованности и многого другое. Одним из ключевых архитектурных аспектов, влияющих на эффективность и надежность системы, является модель репликации данных. Репликация означает поддержание копий одних и тех же данных на нескольких узлах (серверах), соединённых по сети​.

Зачем это нужно? Репликация позволяет: во-первых, держать данные ближе к пользователям (уменьшая задержку при запросах); во-вторых, продолжать работу системы даже при сбое отдельных узлов (повышая доступность); в-третьих, масштабировать систему, увеличивая число узлов для обслуживания запросов на чтение (повышая пропускную способность)​.

Однако реализация репликации сопряжена с серьёзными архитектурными компромиссами. Согласно теореме CAP, в распределённой системе невозможно одновременно гарантировать все три свойства: консистентность данных, доступность сервиса и устойчивость к разделению сети. При возникновении сетевых сбоев (разбиении на изолированные сегменты) системе приходится жертвовать либо мгновенной согласованностью данных, либо доступностью части узлов. Поэтому разные СУБД делают разные выборы в этих компромиссах. Архитектурная модель репликации, лежащая в основе СУБД, определяет, как база данных достигает (или не достигает) консистентности, доступности и отказоустойчивости. Понимание этих различий крайне важно для архитекторов и разработчиков: зная поведение репликации, вы сможете выбрать такую СУБД, которая лучше соответствует требованиям вашего проекта по масштабу, геораспределенности, допустимой задержке и устойчивости к сбоям.

Читать далее

Уже через год мы будем общаться с базами данных по-русски

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

По прогнозу Gartner, запросы на естественном языке вытеснят SQL уже в 2026 году. Возможно, прогноз Gartner чересчур оптимистичный, но если они и ошибаются, то только в сроках — сам переход на естественный язык в работе с БД неизбежен.

Читать далее

Промежуточные витрины в SQL

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

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

Сегодня я хочу поговорить о том, без чего не обходится практически ни один серьёзный проект с большими данными (да и с не слишком большими тоже) — о промежуточных витринах (или более привычно – staging, core, data mart).

Читать далее

Экономия RAM с pandas.read_sql

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

Как экономить до 90% оперативной памяти при загрузке pandas DataFrame из базы данных?

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

Читать далее

Коротко про RFM-анализ на SQL

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

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

Сегодня поговорим про RFM-анализ на SQL. Простыми словами: RFM-анализ — это способ понять, насколько ценные у тебя пользователи.

Читать далее

5 вопросов на собеседовании про A/B-тестирование в SQL

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

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

Сегодня рассмотрим 5 вопросов на собеседовании про A/B-тестирование в SQL. И начнем с первого – как посчитать конверсии и относительную разницу между группами A и B?

Читать далее

SQL и нейросети: изучаем логику моделей через анализ и визуализацию весов

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

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

В статье разберём, как хранить и извлекать веса, вычислять ключевые метрики и строить графики.

Читать далее

Представление иерархии и выполнение иерархических запросов в ClickHouse с использованием хешей

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

Привет, Хабр! Достаточно часто используются иерархические фильтры или отчеты с иерархией, и представление иерархии может быть актуально как для UI (например, иерархических фильтров), так и для отчетов или дашбордов. Если рассматривать только структуру запроса с иерархией, без расчета промежуточных итогов и т.д., то сохранение структуры иерархического UI элемента при большом уровне вложенности, а также передача этой иерархии с UI на бэкенд и дальше, например, в виде SQL запроса в СУБД может быть относительно нетривиальной задачей. При относительно большом уровне вложенности (например, иерархия в 10 уровней), при решении «в лоб» и сохранении всех 10 выбранных значений на последнем уровне иерархии, станет неудобно хранить и передавать в качестве параметров с UI на бэкенд (для 1000 строк и 10 уровней вложенности может быть уже условно 10000 параметров), также растет и количество параметров в SQL, и проблемы усугубляются в случае микросервисной архитектуры, когда запрос SQL не сразу отправляется, например, в ClickHouse, а ещё эти 10000 параметров «путешествуют» из UI в один или несколько микросервисов, пока не попадут в ClickHouse. В связи с этим хочу рассмотреть одно из возможных решений проблемы с помощью хеширования на примере C# и ClickHouse, но это «не идеи, проверенные на продакшене», больше тема к обсуждению. Тем, кому интересно решение проблем иерархических запросов на примере C# и ClickHouse — добро пожаловать под кат :)

Читать далее

SQL HowTo: оконные функции (Advent of Code 2024, Day 22: Monkey Market)

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

В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.

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

Используем оконные функции, чтобы вычислить "третью производную".

Читать далее

Построение Flame Chart для MSSQL

Время на прочтение3 мин
Охват и читатели996

Если в вашем коде TSQL много вложенных вызовов stored procedures, вы можете наглядно построить стек вызовов с помощью «flame chart» — стандартным представлением для профилирования вызовов.

Опишем по шагам всю процедуру.

Читать далее

Как стать продуктовым аналитиком в Ozon Банке?

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

Всем привет! Меня зовут Миша, и я работаю продуктовым аналитиком в Ozon Банке. Мой путь в профессии начался всего 3 года назад, и я отлично помню, как мне самому не хватало подробного плана по входу в профессию. Поэтому я решил написать свой. Надеюсь, что он поможет новичкам и тем, кто только задумывается об аналитике данных)

Для того чтобы мой план был более интерактивным, давайте представим, что, идя по плану мы как Танос из вселенной Marvel – собираем навыки аналитика в свою перчатку бесконечности.

Читать далее

Третий шаг к повышению производительности Firebird

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

Данная статья является третьей частью перевода руководства по повышению производительности Firebird за авторством А.Ковязина и Э.Грегорио от 23.05.2024 (и потому продолжается сквозная нумерация пунктов), а так же текстовой расшифровкой соответствующего видео.

Читать далее

5 причин плохого настроения. История одного Flutter-проекта, который заставил нас поломать голову

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

Привет! На связи Никита Грибков, Flutter-разработчик AGIMA. В прошлом году я стал свидетелем жутких событий, которые разворачивались на одном из наших проектов. В сущности, жуткими они были только потому, что техзадание состояло из сложных и нестандартных задач — но всё-таки они изрядно потрепали нам нервы.

Времени на всё про всё, как водится, было по минимуму. Мы закатали рукава, вооружились всеми доступными инструментами — и начали подбирать решение для каждой проблемы. Ниже опишу, что представлял собой проект и какие именно задачи заставили нас поднапрячься.

Читать далее

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

Плюсы и минусы написания запросов с ORM и на SQL

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

SQL против ORM — один из самых горячих споров среди разработчиков. Одни уверены, что писать SQL-запросы вручную — это гарантия контроля и эффективности. Другие считают, что ORM упрощает жизнь и снижает вероятность ошибок. А что, если правда где-то посередине?

Читать далее

SQL vs Excel: когда таблицы уже не справляются

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

Когда в компании работа выстроена в Excel, проблем нет, пока в таблице несколько тысяч строк. Но бизнес растёт, и вот в файле уже миллион записей. Поиск тормозит, сложные формулы зависают. А если сотрудник случайно удалит столбец — восстанавливать придётся вручную. Это первые сигналы, что Excel не справляется. 

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

Читать далее

Боремся с токсичными комментариями с помощью ИИ, FastAPI и React

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

В последнее время я перестал читать комментарии к статьям на Хабре. Причина — токсичность и ненависть друг к другу. Абсолютно безобидные технические статьи подчас вызывают бурю агрессии у отдельных лиц. Всех банить тоже нельзя — свобода слова закреплена в Конституции. Но есть решение: давайте используем искусственный интеллект, который будет анализировать комментарий и переписывать его, меняя токсичность на вежливость, сохраняя основную мысль комментария.

Мы воспользуемся FastAPI для бэкенда, React для фронтенда, заставим их между собой общаться через RESTful API, а бизнес-логику реализуем путём обращения к ИИ через gRPC.

Читать далее

SQL HowTo: моделирование против подсчета (Advent of Code 2024, Day 21: Keypad Conundrum)

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

В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.

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

Пробуем смоделировать преобразования строк "в лоб", а потом - организовать подсчет и решить более сложную задачу в разы быстрее простой!

Читать далее

Оптимизация скриптов для витрин данных: от суток к часам

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

В 2022 году я присоединился к команде Газпромбанка в должности дата-инженера. В мои обязанности входила поддержка витрин данных для машинного обучения. Главной проблемой, с которой мне пришлось столкнуться, оказалось непомерно долгое время обработки данных при использовании устаревших скриптов. Например, расчет среза одной из витрин занимал более суток! Причина крылась в неоптимизированных скриптах, которые изначально разрабатывались для гораздо меньших объемов данных. Со временем объем обрабатываемой информации значительно увеличился, что закономерно привело к драматическому ухудшению производительности. В этой статье поделюсь своим опытом решения проблемы и расскажу о подходах, которые помогли сократить время выполнения с суток до нескольких часов.

Читать далее

BI-Ассистент для создания аналитических дашбордов и автоматизированного анализа данных

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

BI-Ассистент для создания аналитических дашбордов и автоматизированного анализа данных

Привет, Habr! На связи Александр Сулейкин, Founder DUC Technologies и наша LLM-команда – Роман Бабенко и Александра Деведерова, а также Бутнев Даниил — аналитик, бывший сотрудник компании, являющейся центром компетенций по качеству и метрологии. Мы подготовили статью по возможному применению и созданию BI-ассистентов на базе LLM моделей для создания аналитических дашбордов. Данная сфера пока еще находится в зачаточном состоянии, развитие LLM для BI-решений только набирает популярность. В данной статье мы описали возможный кейс совмещения BI и LLM на примере реального Use Case в сфере метрологии.

1. Введение

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

Цель данной статьи - представить разработку BI-Ассистента, виртуального помощника, предназначенного для автоматизации процесса создания аналитических дашбордов и выполнения аналитических запросов. Этот инструмент направлен на упрощение взаимодействия с данными и снижение порога входа для пользователей, не обладающих технической подготовкой.

Читать далее

Меньше кода, больше результата: применяем sqlc для работы с БД

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

Привет, Хабр! Инструмент, который генерирует производительный и безопасный код для работы с базой данных — миф или реальность? В этой статье обсудим, что такое sqlc, откуда он появился и какие идеи в него заложены. Разберём его возможности и ограничения, а также кейсы, когда он подходит лучше всего.

Читать далее

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