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

SQL - habr.ru

RSS-материал Хабр
SQL – формальный непроцедурный язык программирования
Обновлено: 3 часа 55 секунды назад

Оптимизация JOIN в PostgreSQL

Ср, 19/02/2025 - 10:55

Хотите ускорить работу сложных SQL-запросов в PostgreSQL? ????В этой статье мы разберем, как правильно использовать JOIN, какие методы соединения выбирает PostgreSQL и как их оптимизировать. Узнайте, как индексы, статистика и параметры конфигурации влияют на производительность! ????

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

Работа с колонками типа JSON в PostgreSQL (на примере использования отдельных функций)

Ср, 19/02/2025 - 09:35

Содержание

Вступление (и некоторые общие сведения)

Немного теории

Используемые функции PostgreSQL

Описание используемого примера данных

Предварительные шаги

Запросы

Краткий итог

«Задачи»

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

Кастомные lookup-операторы в Django ORM

Втр, 18/02/2025 - 18:08

В этой статье рассмотрим тему кастомных lookup-операторов в Django ORM. Они позволяют расширить стандартный синтаксис Django, интегрируя свои SQL-функции и алгоритмы, при этом сохраняя привычный вид фильтрации.

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

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

Пт, 14/02/2025 - 11:00


Это продолжении серии статей о принятых изменениях в PostgreSQL 18. На этот раз речь пойдет о завершившемся в ноябре коммитфесте.


А самое интересное из предшествующих коммитфестов можно прочитать здесь: 2024-07, 2024-09.

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

Текстовая обработка в PostgreSQL: grep, sed, awk

Чт, 13/02/2025 - 16:03

Привет, Хабр. Всё, что пишет PostgreSQL в /var/log/postgresql/, можно разбирать, фильтровать, анализировать и автоматизировать. Не нужно вручную листать гигабайты логов — научимся вытягивать полезные данные и работать с конфигами в пару команд. О чём поговорим в статье:

grep — быстро ищем ошибки, медленные запросы, аномалии;
sed — редактируем конфиги PostgreSQL, комментируем, заменяем настройки;
awk — превращаем сырые логи в отчёты.

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

SQL HowTo: укрощаем рекурсию в лабиринте (Advent of Code 2024, Day 16: Reindeer Maze)

Чт, 13/02/2025 - 11:20

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

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

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

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

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

Чт, 13/02/2025 - 10:04

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

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

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

Первичный анализ производительности запросов в Arenadata DB 6.27 и Cloudberry Database 1.6

Чт, 13/02/2025 - 08:36

Некоторое время назад руководитель задал мне вопрос: «Какой MPP-кластер лучше с точки зрения разработчика: Arenadata 6 или Cloudberry?» Я рассказал про версии PostgreSQL, лежащие в основе этих кластеров, - 9 и 14 соответственно. Еще сказал, что для детального анализа производительности желательно развернуть кластеры на серверах, заполнить их данными и выполнить побольше разных запросов.

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

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

Прежде чем выбирать язык программирования, необходимо изучить SQL

Ср, 12/02/2025 - 16:16

Если вы только выбираете язык программирования или уже программируете, но не уверены в своём выборе — эта статья для вас. Мы рассмотрим, какие бывают виды языков программирования, почему данные — это основа любой программы, как эти данные хранятся и как с ними работать. В конце статьи я приведу 5 бесплатных ресурсов, которые сам использовал для изучения SQL.

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

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

Где я учился, чтобы перейти в it сферу и преуспеть

Ср, 12/02/2025 - 11:51

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

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

Установка Arenadata DB 7.2 на компьютер с небольшим объемом оперативной памяти

Ср, 12/02/2025 - 11:16

Установка Arenadata DB 7.2 выполняется с помощью Arenadata Cluster Manager (ADCM). Это средство предназначено для разворачивания кластера на большом числе хостов с большим объемом оперативной памяти на каждом из них. А если кластер Arenadata нужен не для производительной работы, а для проведения экспериментов или для разработки/тестирования, можно ли развернуть его на компьютере с небольшим объемом оперативной памяти, например, 32 Гб? Будет ли кластер работать стабильно? Позволит ли он выполнять тяжелые операции? Каково минимальное количество виртуальных машин, на которых можно запустить Arenadata DB 7.2?

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

Контент-менеджмент в ЮMoney: на стыке фронтенда, дизайна и тестирования (и котиков)

Ср, 12/02/2025 - 09:33

Привет, меня зовут Влада, я и жнец, и швец, и на дуде игрец веб-специалист в ЮMoney. О своей должности и о том, почему контент-менеджмент — это не только наполнение сайта текстами и картинками, я расскажу в своей первой статье для Хабра. А также поделюсь, зачем контентщику SQL и CSS (а ещё JS, HTML, XML, Markdown и многое другое). Поехали!

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

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

Пнд, 10/02/2025 - 09:00

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

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

SQL HowTo: играем в сокобан с помощью json-карты и типа point (Advent of Code 2024, Day 15: Warehouse Woes)

Ср, 05/02/2025 - 07:30

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

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

Многие слышали о классической игре сокобан, а кто-то наверняка играл в "Мудрого крота" из Роботландии. В этой части мы будем двигать ящики по складу, используя возможности json[b] и геометрического типа point.

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

Использование полиморфных табличных функций в Oracle

Втр, 04/02/2025 - 10:44

Привет! Меня зовут Зураб Диаконашвили, я разработчик в компании SM Lab. Сегодня поговорим об использовании полиморфных табличных функций в Oracle и рассмотрим их работу на примерах.

При работе с Oracle используются SQL-запросы – они помогают управлять базами данных, представленными в виде таблиц. Мы получили задачу на динамическое добавление полей в стационарный набор полей сущности. Для этого мы решили попробовать PTF-функцию (пользовательскую табличную функцию, которая вызывается в предложении FROM) и сравнить результат её работы с обычным SQL PIVOT и JavaScript.

Полиморфные табличные функции (PTF) являются частью стандарта SQL: 2016. В Oracle они представлены в версии 18c.

Что необходимо знать при работе с PTF:

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

Цикл статей о Greenplum. Часть 3. Оптимизация

Втр, 04/02/2025 - 10:19

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

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

Освежить память о содержании предыдущих статей можно здесь и здесь.

В данной статье мы совместно с @omoskvinрасскажем о том, что влияет на оптимальность выполнения запросов, как отслеживать различные проблемы и, конечно же, как с ними справляться. 

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

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

Вс, 02/02/2025 - 14:32

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

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

Маскирование данных от А до Я

Пт, 31/01/2025 - 10:03

Всем привет! Меня зовут Светлана Анохина, я младший бизнес-партнёр по информационной безопасности в Ozon. Несмотря на небольшой стаж, опыт работы у меня довольно разносторонний, ведь моя роль предполагает участие практически во всех аспектах безопасности (если интересно, кто такие бизнес-партнёры по ИБ, то рекомендую почитать статьи моих коллег Даши или Максима на эту тему).

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

На первых этапах погружения в профессию, когда я была студенткой и только начинала разбираться в защите данных, проблемы безопасности казались мне чем-то далёким и почти гипотетическим. Мысль о том, что личная информация — адрес, электронная почта или данные банковской карты — может попасть в чужие руки, не вызывала у меня особого беспокойства. Утечка данных? Да, неприятно, но ведь это происходит где-то далеко и вряд ли касается меня напрямую.

Но всё изменилось, когда я впервые устроилась работать в команду безопасности данных крупной компании. Я увидела, как это выглядит в реальной жизни: настоящие утечки, реальные данные и конкретные последствия. Тогда я осознала, что даже самая простая ошибка или недосмотр могут привести к тому, что чья-то личная информация окажется у злоумышленников, и защита данных — это не прихоть, а насущная необходимость. Каждая строка кода, каждое принятое решение могут стать барьером между безопасностью и катастрофой.

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

За время своей работы в e-commerce-компаниях я собрала некоторый перечень подходов и инструментов защиты, которые реализую в своём направлении. Сегодня я хочу рассказать о маскировании вам, моим коллегам, которые так же, как и я, стремятся сделать данные безопасными, а жизнь пользователей — спокойной.

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

SQL HowTo: находим «елочку» с помощью центра масс (Advent of Code 2024, Day 14: Restroom Redoubt)

Пт, 31/01/2025 - 06:30

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

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

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

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

По ту сторону экрана: про найм в Data-аналитики глазами нанимающего Лида

Чт, 30/01/2025 - 09:58

Да, IT-найм сломан, но и соискатели не упрощают ситуацию потенциальным руководителям и себе самим. Пара примеров, как не надо делать.

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

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

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