Как стать автором
Обновить
41.14

SQL *

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

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

pgmig — история разработки инструмента управления изменениями в БД или чего нам не хватило в Liquibase и Flyway

Уровень сложности Средний
Время на прочтение 28 мин
Количество просмотров 1.8K
Блог компании Ростелеком PostgreSQL *SQL *

Всем привет! На связи разработчики БД - Юрий Плотников и Андрей Григорьев, в этот раз рассказывать мы будем вдвоем, вернее не совсем вдвоем - об одном "фирменном" решении расскажут коллеги из нашего центра компетенций PostgreSQL.

Пара слов о заглавной картинке и логотипе

Несмотря на то, что история pgmig началась раньше, большое развитие он получил при разработке наших "сказочных" продуктов (youtube).

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

Начнем издалека, с очевидных вещей, однако без этого было бы сложнее понять главную идею. Итак, к делу:

Читать далее
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 11

Новости

Когда SQL решает, и задачки для прокачки

Время на прочтение 4 мин
Количество просмотров 4.9K
Занимательные задачки MySQL *SQL *Учебный процесс в IT
Из песочницы

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

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

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

Читать далее
Всего голосов 7: ↑1 и ↓6 -5
Комментарии 8

Всегда ли хорош Index Only Scan?

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 4.1K
Блог компании Тензор Высокая производительность *PostgreSQL *SQL *Администрирование баз данных *
Кейс

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

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

Читать далее
Всего голосов 26: ↑25 и ↓1 +24
Комментарии 3

Аналитика небольших данных: как совместить Excel, Python и SQL с помощью инструментов с открытым исходным кодом

Время на прочтение 3 мин
Количество просмотров 5.8K
Open source *Python *SQL *
Туториал

Как с помощью двух мощных инструментов с открытым исходным кодом можно совместить привычный для пользователей интерфейс, надежность и мощь SQL, гибкость Python и командную работу как в Google Spreadsheet?

Читать далее
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 6

Истории

Аналитики с диапазонами дат в MS SQL

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 1.9K
SQL *Microsoft SQL Server *
Аналитика

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

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

Читать далее
Всего голосов 4: ↑2 и ↓2 0
Комментарии 32

Мигрируем в PostgreSQL, тестируем OLAP-кубы и разбираемся с валидацией T-SQL-кода: три доклада с митапа ЮMoney

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 3.4K
Блог компании ЮMoney PostgreSQL *SQL *IT-инфраструктура *Microsoft SQL Server *

Всем привет от команды ЮMoney 👋

Делимся видеозаписями и главными мыслями митапа High SQL, который посвятили работе с данными в DWH на Microsoft SQL Server.

Кому советуем посмотреть доклады

◾️ Тем, кто планирует перебраться с Microsoft SQL в PostgreSQL, но всё ещё сомневается.

◾️ Тем, кто выбирает между ANTLR и DacFx и хочет научиться решать проблемы во время ревью TSQL-кода.

◾️ И тем, кто хочет узнать, зачем тестировать OLAP-кубы, что может пойти не так и какой результат дают автотесты силами разработчиков и тестировщиков.

Смотреть доклады
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 1

MSSQL: ребилд индексов в высоко нагруженных системах, Standard Edition

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 1.8K
SQL *PowerShell *Microsoft SQL Server *

В одной из моих предыдущих статей я рассказал о скрипте с названием GentleRebuild, который делал index rebuild в базах, работающих под нагрузкой 24/7, когда нет maintenance window, в Enterprise Edition. Там можно использовать опции ONLINE=ON и даже RESUMABLE=ON, вежливо уступая основной нагрузке базы.

А как же Standard Edition, где этого нет? Каюсь, раньше у меня в скрипте даже стояла проверка, и для Standard Edition скрипт сразу завершался. Но шеф меня попросил заняться и серверами со Standard Edition, и мне пришлось выжать из ситуации максимум.

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Комментарии 1

Использование составных триггеров (compound triggers) Oracle

Время на прочтение 4 мин
Количество просмотров 823
Oracle *Программирование *SQL *
Из песочницы

Пример использования триггеров, при взаимном обновлении таблиц. При таких задачах возникает ошибка мутирования таблиц ORA-04091: table is mutating.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 6

Решение проблемы N+1 запроса с помощью группировки вызовов

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 2.5K
Разработка веб-сайтов *PHP *SQL *
Кейс

Проблема N+1 запросов

Проблема N + 1 возникает, когда фреймворк доступа к данным выполняет N дополнительных SQL-запросов для получения тех же данных, которые можно получить при выполнении одного SQL-запроса.

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

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Комментарии 10

Использование функций регулярных выражений в PostgreSQL / Greenplum

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 2.3K
PostgreSQL *SQL *Data Engineering *
Из песочницы

О том, как именно использовать регулярки, написано уже много статей и туториалов. Другой вопрос, что сами по себе регулярные выражения являются параметром, подающимся на вход какой-нибудь функции. Именно функция осуществляет поиск по указанному регулярному выражению. О функциях, использующих регулярки мы сегодня и поговорим. Возможно, и по самим регуляркам я бахну свой гайд, но, как было сказано в том самом фильме: «Обязательно бахнем и не раз, весь мир в труху! Но потом...»

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 1

Whirl Platform — разработка длиной в 10 лет

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 1.9K
Open source *Java *SQL *Софт
Из песочницы

Поведаю историю развития одного проекта длительностью в более чем 10 лет. На основе проекта, речь о котором пойдет ниже, случилось мое становление как разработчика/архитектора.

История более биографическая, чем техническая, с вкраплением мыслей о разработке в целом и небольшим обзором проекта который развивает наша команда. Если вы ждете техно-жесткача с фреймворками, конфигами и кусками кода, то дальше читать не надо - такого не будет. Продолжив вы узнаете про чужой опыт развития долгоживущего продукта, узнаете о еще одном отечественном open source проекте и просто увидите картинки с UI конструктором приложений.

Читать далее
Всего голосов 13: ↑11 и ↓2 +9
Комментарии 19

Логмайним Оракл

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 1.1K
Блог компании Axenix (ex-Accenture) Oracle *PostgreSQL *SQL *
Туториал

Перед нашей командой была поставлена задача осуществить миграцию из Oracle в PostgreSQL большой (несколько десятков терабайт) работающей базы с нагрузкой порядка 20 миллионов dml-операций в час и генерацией 2ГБ редо-логов в минуту. Особенность задачи состояла в том, что миграция должна была происходить не один-в-один, а по частям в разные шарды. А какие данные в какие шарды и в каком порядке поедут, определялось бы в процессе самой миграции, по результатам этой миграции, в режиме, так сказать, ручного управления.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 0

database/sql биндинги для YDB в Go

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 1.8K
Блог компании YDB SQL *Go *
Туториал
Перевод

YQL — это SQL‑диалект, специфичный для базы данных YDB. YQL требует заранее объявлять имена и типы параметров запроса. Это обеспечивает высокую производительность и корректное поведение. В синтаксисе YQL параметры необходимо перечислять явно с помощью инструкции DECLARE. И этот нюанс YDB может быть неожиданным для пользователей традиционных баз данных. В статье раскрывается вспомогательный механизм, позволяющий писать привычные простые SQL‑запросы при работе с YDB.

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Комментарии 5

Мониторинг PostgreSQL. Новые возможности анализа производительности 1С и других систем

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 5.5K
Блог компании SOFTPOINT PostgreSQL *SQL *Microsoft SQL Server *Администрирование баз данных *
Обзор

В данной статье хочу поднять тему, которая представляет собой одну большую боль для администраторов, разработчиков и тестировщиков высоконагруженных (и не очень) систем под управлением PostgreSQL. Даже не «боль», а «БОЛЬ»!

Удивительно, что за почти 30 лет существования PostgreSQL не появилось нормальных инструментов для получения вменяемых счетчиков и трассировок. Все, кто работают с MS SQL Server используют профайлер. Это обязательный и привычный инструмент, который позволяет вылавливать запросы, интересные нам в рамках исследования. Вылавливать как все запросы без разбора, так и какие-то единичные запросы, которые удовлетворяют правилам отбора. Кроме того, можно настроить не одну трассу, а столько сколько нужно, с разными фильтрами. Эти трассы содержат очень богатый набор измерений для анализа: – Reads физические и логические; Writes; SPID, Процессорное время; план запроса (хэш плана), количество строк и т.д.

Многие компании стали всерьез рассматривать СУБД PostgreSQL как замену MSSQL и сталкиваются с тем, что возможностей для ее мониторинга просто нет – она как черный ящик, в котором наощупь вылавливаешь какую-ту информацию и пытаешься систематизировать ее хоть как-то.

Читать далее
Всего голосов 13: ↑7 и ↓6 +1
Комментарии 14

Многомерные базы данных

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 3K
Блог компании OTUS SQL *Администрирование баз данных *


Многомерные базы данных (МБД) представляют собой эффективные инструменты для организации и анализа больших объемов данных в сфере аналитики. Они представляют данные в форме кубов, где каждая ось представляет собой отдельное измерение, а значения представляются в виде ячеек. Концепция МБД зародилась в конце 1970-х годов.

Многомерные базы данных отличаются от обычных реляционных баз данных тем, что они специально оптимизированы для работы с аналитическими запросами и агрегированными данными. В отличие от традиционных баз данных, где данные хранятся в виде таблиц, в МБД основное внимание уделяется анализу данных и созданию быстрых и эффективных запросов.
Читать дальше →
Всего голосов 13: ↑11 и ↓2 +9
Комментарии 4

Генерация штрих-кодов QR Code в отчете SSRS с помощью библиотеки QRCoder

Время на прочтение 5 мин
Количество просмотров 145
Блог компании OTUS SQL *
Перевод

Хотя библиотека с открытым исходным кодом QRCode4CS, использованная в статье "Генерация двумерных штрих-кодов QR Code® в отчете SSRS", позволяет отображать QR-коды в отчетах SSRS, оказалось, что она поддерживает только стандарт Micro QR Code, который ограничивает строку ввода до 34 символов.

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

Читать далее
Всего голосов 5: ↑3 и ↓2 +1
Комментарии 0

Data Consistency: как быть уверенным, что с данными всё ок

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 4.1K
SQL *Data Mining *Big Data *Data Engineering *
Туториал

Я довольно долгое время работала аналитиком в Яндекс.Метрике - системе web аналитики. Такие системы помогают сайтам собирать и анализировать поведение пользователей на их сайтах.

Естественно, в таких продуктах как аналитические системы, данные - это главная ценность. Поэтому одна из моих задач как аналитика был мониторинг того, что с данными всё ок.

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

Поехали
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 1

Митигация SQL-инъекций при работе с PostgreSQL

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 2.3K
Блог компании ГК «Астра» Информационная безопасность *PostgreSQL *SQL *
Туториал

Привет, Хабр! Меня зовут Игорь, я занимаюсь разработкой серверной части в команде RuBackup.

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

Наверняка многие из вас знают, что валидирование пользовательского ввода — краеугольный камень процесса безопасной разработки. С одной стороны, нам как разработчикам не хочется ограничивать пользователей в наборе таких входных данных, как символы и выражения, которые они могут использовать в работе, например, в паролях. С другой стороны, нельзя допустить выполнения в СУБД вредоносного кода, который приводит к SQL-инъекциям. А такие случаи время от времени происходят и становятся достоянием гласности. PostgreSQL дает разработчику возможность решить эту проблему экранированием потенциально опасных символов, превращая их в безопасные. Таким образом, для PostgreSQL будет вполне безвредно, если пользователь в качестве пароля использует строку "password' OR 1=1".

Для защиты от SQL-инъекций в прикладных библиотеках PostgreSQL libpq и libpqxx применяется техника «эскейпинг» или экранирование строки. Она заключается в том, чтобы убрать лишние символы разрыва строк в строках, содержащих специальные символы. С помощью этой функций символы удваиваются и более не считаются окончанием строки, а интерпретируются как обычные символы. Я буду рассматривать только библиотеку libpqxx, так как она, по сути, является С++ оберткой над более низкоуровневой С библиотекой libpq, где и реализованы все функции, о которых далее пойдет речь.

Читать далее
Всего голосов 16: ↑4 и ↓12 -8
Комментарии 30

Задачи третьего этапа олимпиады «IT-Планеты» по PostgreSQL

Время на прочтение 13 мин
Количество просмотров 5.8K
Блог компании Postgres Professional Ненормальное программирование *PostgreSQL *SQL *

В шахматы меня когда-то легко обыгрывал восьмибитный компьютер, а действующего чемпиона мира IBM-овский Deep Blue одолел уже в 1997 году. Но игра Го держалась значительно дольше: победить обладателя девятого дана Ли Седоля удалось только в 2016 году компании Гугл с машиной AlphaGo. В Го простые правила, которые, однако, приводят к очень сложным стратегическим построениям. Ровно то, что нужно: простое условие, не дающее намека на то, как справиться с задачей одним SQL-запросом. Тема Го и легла в основу задач финала олимпиады, про которую я уже начал рассказывать в прошлый раз.

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

Поговорим про задачи
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 10

Шпаргалка по SQL (postgres), которая выручает меня на собесах

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 121K
PostgreSQL *SQL *Администрирование баз данных *Терминология IT Интервью
Из песочницы

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

Я решил посвятить свою первую статью SQL. Вопросы, рассмотренные ниже мне задавали на собеседованиях на позицию python-разработчика. Естественно отвечать правильно получалось не всегда, а если точнее то чаще не правильно, однако проведя N часов в рефлексии я составил перечень ответов, которыми пользуюсь до сих пор.

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

Читать далее
Всего голосов 191: ↑184 и ↓7 +177
Комментарии 177

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