Как стать автором
Поиск
Написать публикацию
Обновить
98.82

SQL *

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

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

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

Время на прочтение8 мин
Количество просмотров11K

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

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

Читать далее

Отслеживание изменений размеров таблиц Arenadata DB

Уровень сложностиСредний
Время на прочтение34 мин
Количество просмотров778

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

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

Читать далее

TrueSql — ультимативный sql-коннектор для Java

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2.3K

Community долго шло к видению, что Java новых версий это хороший язык, но у него проблема с библиотеками. Сегодня мы готовы публично представить TrueSql – библиотеку для “right” работы с базой данных из Java.

Читать далее

PostgreSQL 18: Часть 2 или Коммитфест 2024-09

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров2.8K


Согласно статистике, в сентябрьских коммитфестах меньше всего коммитов. Но похоже, что для релизного цикла 18-й версии это не так. Много принятых патчей и много интересных новых возможностей, информацией о которых хочется поделиться.


Напомню, что самое интересное из июльского коммитфеста можно прочитать здесь: 2024-07.

Читать дальше →

SQL HowTo: «чистые» регулярки (Advent of Code 2024, Day 3: Mull It Over)

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

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

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

В этой части будет очень простой код, с чуть-чуть сложным регулярным выражением.

Читать далее

SQL HowTo: логические агрегаты (Advent of Code 2024, Day 2: Red-Nosed Reports)

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

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

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

В этой части с решением нам помогут логические агрегаты bool_and/bool_or.

Читать далее

Меньше JOIN’ов — больше скорость! Или несколько примеров оптимизаций DAX и SQL

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

Все мы любим ClickHouse, но прекрасно знаем, что у этой СУБД есть свои особенности и ограничения. В этой статье мы поговорим о том, почему нужно избавляться от лишних операторов JOIN, если вы работаете с большими нагрузками, а также оценим, какой эффект дает исключение JOINов, поднятие их на уровень выше, перестановка таблиц местами и некоторые другие хитрые трюки на уровне кода SQL. Всех, кто работает с ClickHouse, а также тех, кто не хочет работать с ClickHouse, но подумывает получить все готовенькое от Visiology, приглашаю под кат!

Читать далее

Модели данных в BI-платформах: физика против логики

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

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

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

Читать далее

Тестируем LLM для русского языка: Какие модели справятся с вашими задачами?

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров19K

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

Готовые LLM для русского языка часто показывают низкую точность и ограниченные возможности. Проблемы конфиденциальности также вынуждают компании выбирать локальные модели.

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

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

Читать далее

SQLAlchemy 2.0 + Python Generic, или как создать универсальный репозиторий для работы с БД

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

Доброго времени суток, товарищи, эта статья, так скажем, продолжение предыдущей статьи об SQLAlchemy 2.0 для новичков, в этой статье мы узнаем что такое Python Generic и как его можно использовать в наших целях при взаимодействии с БД.

Читать далее

ETL-проект для начинающих Data Engineers: От почтового сервера до Greenplum

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

Привет, Хабр! Меня зовут Дмитрий, я инженер данных, и это моя первая статья. В ней я хочу поделиться своим пет-проектом, который посвящен созданию ETL-процесса — важного элемента в работе любого Data Engineer. Мой проект направлен на извлечение данных из электронной почты и их загрузку в базу данных Greenplum для анализа.

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

Готовые приложения часто ограничены в настройке, поэтому я решил использовать Python для автоматизации обработки данных, а Greenplum для их хранения и аналитики. В статье я расскажу, как мне удалось автоматизировать процесс извлечения данных из писем "ВкусВилл", структурировать их и загрузить в базу для дальнейшего анализа.

Читать далее

SQLAlchemy 2.0 для новичков

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

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

Предполагается, что вы знакомы с базовым синтаксисом языка Python и, возможно, новичок в программировании.

Читать далее

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

Время на прочтение4 мин
Количество просмотров3.2K

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

Одной из таких задач является приближенный расчет количества уникальных значений в поле таблицы (или кардинальности). Казалось бы, практическая польза от быстрого расчета количества уникальных значений поля без больших затрат памяти невелика, однако это позволяет, например, построить оптимальный с точки зрения производительности SQL запрос с этим полем, или использовать это поле в UI (например, элемент с бесконечной прокруткой или элемент с поиском при значительном количестве уникальных значений, а не отображение конечного списка) и т.д. Задача может быть эффективно решена в СУБД, обладающей соответствующими инструментами, поэтому будет рассмотрен ClickHouse.

Интересно решение задачи расчета количества уникальных значений столбца в ClickHouse? Добро пожаловать :)

Читать далее

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

Вычисляем Вес в приросте в Superset

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

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

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

Уверен, что мой рассказ будет полезен не только пользователям Superset, но и всем аналитикам, которые используют SQL в своей работе и учёбе.

Не буду рассказывать про базовое построение таблиц на BI системе Superset, с этим прекрасно справятся тонны видео на ютубе и бесполезные курсы (про которые я писал ранее). Но сразу скажу, что суперсет в отличие от некоторых других BI систем начинает раскрываться только если ты знаешь SQL, так что хотим мы этого или нет – погружаться в тонкости языка придётся.

Больше двух недель на поиск оптимального решения, ошибки, костыли и элегантный финал.

Итак, Что такое «Вес в приросте» и чем он отличается от обычного «Прироста», и в чем собственно говоря — сложность?

Разберёмся на примере:

Читать далее

Как заставить вашу базу данных летать, а не ползать. Часть 2 – когда репликации недостаточно и пора использовать шардинг

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

Всем привет! На связи снова Илья Криволапов — системный аналитик в SENSE, где мы трудимся на проекте одного из цветных банков РФ. Работаю в профессии уже пятый год и, несмотря на мою фамилию, с продом у нас в целом тёплые отношения. 

Помимо боевых задач, я преподаю курс «Хранение и обработка больших объемов данных» и за это время накопил немало практических кейсов и наблюдений. Всё это добро я решил не держать при себе и собрал самое полезное в виде ультимативного гайда по оптимизации и грамотному проектированию баз данных с расчетом на масштабирование, который сейчас публикую на Хабре.

Цикл состоит из 3 частей. В первой мы обсудили два базовых подхода к масштабированию БД: вертикальный и горизонтальный. Поговорили о плюсах, минусах и о том, как делать точно не стоит. 

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

Материал по-прежнему будет полезен всем, кто заботится о «здоровье» базы данных: DBA, архитекторам, DevOps-инженерам, аналитикам и разработчикам.

Готовы продолжать? Тогда поехали!

Читать далее

25 бесплатных курсов для начинающих аналитиков

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров14K

Привет, Хабр! Меня зовут Алёна, я middle‑продуктовый аналитик. Мне нравится то, чем я занимаюсь, поэтому в свободное время я пишу полезные статьи и веду свой пока небольшой tg-канал про продуктовую аналитику.

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

Читать далее

Нужен ли Postgres альтернативный сборщик статистики таблиц?

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

Речь здесь пойдёт о стабильности стандартной статистики Postgres и об идее очередного расширения - на этот раз альтернативы команде ANALYZE. Всё началось с того, что заканчивая работу над предыдущей статьёй я вдруг заметил, что результат выполнения одного и того же запроса теста Join Order Benchmark (JOB) в серии последовательных прогонов может отличаться в разы и даже на порядки - причем как по значению параметра execution-time, так и по pages-read. Это выглядело очень странно, поскольку и тест и ноутбук и все настройки оставались теми же - даже погода за окном. И я решил расследовать, что происходит …

Читать далее

Записки оптимизатора 1С (часть 9). Влияние сетевых интерфейсов на производительность высоконагруженных ИТ-систем

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

Подумал, что необходим небольшой пост, посвященный сетевым адаптерам/интерфейсам, которые устанавливают в своих ИТ-ландшафтах пользователи. Речь пойдет не столько о конкретных моделях, сколько про то, что сеть такой же компонент информационной системы (как и те же диски, память, CPU), и на него нужно обращать не менее тщательное внимание. Многие его просто игнорируют и недооценивают – «Ну сеть и сеть, что там с ней может быть не так? Вот же 10 Гбит/с. Вот график пропускной способности. Всё прекрасно.».

Читать далее

Планы и факты: работаем с денормализованной таблицей

Время на прочтение6 мин
Количество просмотров3.7K

Привет, Хабр! В этой статье я хотел бы поговорить про особенности план-факт анализа, а также о работе с денормализованной таблицей, которая «была, есть и будет использоваться», потому что оказывается удобной для некоторых приемов работы с BI. Под катом вы найдете 7 примеров решения типовых задач план-факт анализа, включая расчет долей, отображение данных с учетом иерархии, разбивку по регионам и так далее. Всех, кому интересны эти практические аспекты, жду под катом :)

Читать далее

Каверзные вопросы на интервью аналитика: В каком порядке обрабатываются SQL-запросы?

Время на прочтение5 мин
Количество просмотров41K

Поздравляем всех хабровцев с новым рабочим годом и продолжаем посты на тему технических интервью. Сегодня короткий пост для джунов и выпускников ИТ-курсов по специальности «системный аналитик». На техническом интервью вам могут попасться разные нестандартные вопросы. Вот один из них: «В каком порядке обрабатываются SQL-запросы?». На первый взгляд кажется, что SQL-запросы выполняются в том порядке, в котором мы их пишем: сначала SELECT, затем FROM, WHERE и так далее. Однако, на самом деле, SQL обрабатывает запросы в иной логической последовательности, которая отличается от порядка написания.

Читать далее

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