Обновить
128K+

SQL *

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

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

Что нужно знать при миграции с MySQL на PostgreSQL?

Время на прочтение8 мин
Охват и читатели37K
В продолжение статьи о теории и практике миграции хранилищ данных на PostgreSQL, мы поговорим о проблемах, с которыми вы можете столкнуться при переезде с распространенной СУБД MySQL. Дабы не утомлять всех лишней риторикой, сегодняшний рассказ будет более тезисный и проблемно-ориентированный.

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

Именно поэтому в предыдущей статье я рекомендовал не тратить время на поиск серебряной пули и написать что-нибудь свое “на коленке”, что действительно работает. Данная статья призвана облегчить написание такого инструмента, указывая на потенциальные изъяны, в наличии которых вы может сравнительно быстро убедиться.

Перейдем к делу.
Читать дальше →

Система комментариев Cackle: как мы делали аналитику

Время на прочтение7 мин
Охват и читатели7.5K
Всем привет! В нашем предыдущем посте про облачный сервис Cackle мы рассказали об архитектуре, технологиях и нагрузках в целом. Сегодня хотим поделиться о том, как в условиях столь сильных нагрузок и уже накопленной информации (30 000 000 комментариев с 2011 года) мы сделали подробную аналитику для системы комментариев Cackle. Наш метод сбора статистики универсальный и думаю будет интересен, в плане практического применения, всем тем, кто столкнулся с задачей разработки аналитики, но пока не совсем представляет с чего начать.
Cackle аналитика

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

Data Lake – от теории к практике. Сказ про то, как мы строим ETL на Hadoop

Время на прочтение6 мин
Охват и читатели98K
В этой статье я хочу рассказать про следующий этап развития DWH в Тинькофф Банке и о переходе от парадигмы классического DWH к парадигме Data Lake.

Свой рассказ я хочу начать с такой вот веселой картинки:



Да, ещё несколько лет назад картинка была актуальной. Но сейчас, с развитием технологий, входящих в эко-систему Hadoop и развитием ETL платформ правомерно утверждать то, что ETL на Hadoop не просто существует но и то, что ETL на Hadoop ждет большое будущее. Далее в статье расскажу про то, как мы строим ETL на Hadoop в Тинькофф Банке.
Читать дальше →

24 часа PASS — обзор докладов SQL-конференции

Время на прочтение11 мин
Охват и читатели15K
«24 Hours of PASS» — это ежегодная онлайн-конференция о MS SQL Server, проводимая по эгидой профессиональной ассоциации PASS, и длящаяся 24 часа. Вот прям буквально 24 часа: докладчики из разных частей света сменяют друг-друга в марафоне вебинаров (конечно же, это отсылка к 24 часам Ле-Мана).

Усилиями Андрея Коршиков, уже несколько лет проводится русскоязычная версия «24 часа PASS». Последняя состоялась в середине марта, и если вы ещё не успели посмотреть все 24 часа видео (кстати, вот плей-лист на YouTube), то именно для вас я и сделал этот обзор.


  • SQL Server 2014 In-Memory OLTP — Сергей Олонцев
  • Размер имеет значение: 10 способов уменьшить размер БД — Дмитрий Короткевич
  • Внутри оптимизатора запросов: Соединения — Дмитрий Пилюгин
  • Оптимизация SSAS-кубов — Евгений Полоничко
  • Тяп-ляп и в продакшн! — Алексей Ковалёв
  • Оффлайн-разработка баз данных и тестирование с SSDT — Андрей Завадский
  • Deadlocks 3.0. Final Edition — Денис Резник
  • BIML — лучший друг для SSIS-разработчика — Андрей Коршиков
  • Power BI Q&A — Константин Хомяков
  • Azure Data Factory — облачный ETL — Сергей Лунякин
  • Все что вы хотели узнать о Workspace memory — Мария Закурдаева
  • Быстрый анализ производительности SQL Server за 1,5 часа — Кирилл Панов
  • Внутреннее устройство страниц и экстентов SQL Server — Алексей Князев

Так о чём же они всё это время рассказывали?

Инвентаризация и рационализация: управляем программными активами крупных компаний. Опыт использования Microsoft Assessment and Planning Toolkit

Время на прочтение18 мин
Охват и читатели23K
Недавно на Хабре появилась обзорная статья об инструментах Microsoft MAPT. Программа предназначена для проведения инвентаризации ИТ-инфраструктуры, помощи в миграции машин на новую версию ОС, оценки загруженности серверов, консолидации их на платформе Hyper-V и т.п. Мы решили рассказать о реальном опыте использования этого инструмента для решения настоящих бизнес-задач.

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

Уникальный TechTalk c Майклом Монти Видениусом

Время на прочтение1 мин
Охват и читатели7.8K
Если вы интересуетесь ИТ, то вам, скорее всего, не нужно объяснять, что такое MySQL. А если вы знаете про MySQL, то наверняка вам знакомо имя Майкла Монти Видениуса. Для всех остальных и тех, кто подзабыл, напоминаем: MySQL – самая популярная в мире система управления базами данных, а Монти – её создатель, основатель компании MySQL AB, знаменитый ИТ-гуру и просто горячий финский парень.



25 мая, то есть в ближайший понедельник, Монти будет в Москве и проведёт мастер-класс, на котором поделится секретами вывода софтверных проектов на рынок, расскажет о том, как построить карьеру в ИТ, как продать компанию за миллиард долларов и начать всё сначала, приоткроет свои планы на будущее.
Читать дальше →

Распределенные транзакции между RabbitMQ и MS SQL

Время на прочтение5 мин
Охват и читатели19K
Для реализации асинхронного общения между двумя системами очень выгодно использовать очереди сообщений. Даже если одна из систем лежит, другая этого не замечает и спокойно продолжает слать ей сообщения, которые будут обработаны, когда вторую систему поднимут. В качестве очереди сообщений можно использовать таблицу MS SQL, но это не особо масштабируемое решение.

Однако, как только у нас появляется отдельная система для хранения очереди сообщений (мы используем RabbitMQ), сразу возникают проблемы с транзакционностью. Например, если мы хотим сохранить в БД отметку о том, что мы отправили сообщение в Rabbit, не так уж и просто гарантировать, чтобы отметка была сохранена только в случае успешной отправки сообщения. О том, как мы справлялись с этой проблемой читайте под катом.
Читать дальше →

Полезное расширение для SQL Server Management Studio

Время на прочтение2 мин
Охват и читатели23K
Доброго времени суток, уважаемые читатели!

Данный пост будет интересен тем, кто использует SQL Server Management Studio (SSMS) при работе c SQL Server.
Речь пойдет о расширении SQL Refactor Studio для SSMS.
Данное расширение позволяет значительно сэкономить время на ежедневных рутинных операциях.
Читать дальше →

Восстанавливаем поврежденные таблицы Innodb

Время на прочтение5 мин
Охват и читатели38K
Предположим, вы работаете с MySQL таблицами Innodb, и в один прекрасный не самый хороший момент подводит глючное железо, драйвер, бажит ядро, отключается электричество или случается одна из редких ошибок в среде MySQL. На выходе получаем повреждение некоторых страниц в табличной области Innodb.

В одной из предыдущих статей, в комментариях, нас спрашивали, что можно сделать в такой ситуации. Мы постараемся ответить максимально лаконично и по делу.
Читать дальше →

Проверяем MS SQL на прочность. Векторы атак на MS SQL Server

Время на прочтение11 мин
Охват и читатели40K
image

Практически ни один серьезный пентест не обходится без проверки СУБД, ведь это одна из самых популярных у злоумышленников дверей к желаемой информации и машине. В крупных проектах в качестве СУБД очень часто используется MS SQL Server. И о проверке именно его безопасности мы сегодня и поговорим. Открывать Америку не будем — опытные камрады лишь освежат свои знания, а вот для тех, кто только начинает осваивать тему, я постарался максимально подробно разложить все по пунктам.
Читать дальше →

Исправляем поврежденные MySQL-таблицы с myisamchk

Время на прочтение4 мин
Охват и читатели29K
MyISAM — основная, вернее, одна из главных (наряду с InnoDB) систем хранения данных в СУБД MySQL. При этом MyISAM таблицы повреждаются очень просто — с этим проблем нет никаких. Сложнее все повреждения ликвидировать, хотя это тоже можно сделать довольно быстро. В этом материале объясняется, как можно решить проблему с использованием myisamchk для идентификации проблемы с MyISAM и ее исправления.

Общеизвестно, что при создании таблицы в MySQL, создаются три различных файла: *.frm — формат таблицы, *.MYD (MyData) — хранение данных, *.MYI (MyIndex) — индекс. Для крупных баз данных стоит использовать InnoDB, поскольку здесь есть некоторая схожесть с Oracle и соответствующая функциональность.
Читать дальше →

Играем мускулами. Методы и средства взлома баз данных MySQL

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


MySQL — одна из самых распространенных СУБД. Ее можно встретить повсюду, но наиболее часто она используется многочисленными сайтами. Именно поэтому безопасность базы данных — очень важный вопрос, ибо если злоумышленник получил доступ к базе, то есть большая вероятность, что он скомпрометирует не только ресурс, но и всю локальную сеть. Поэтому я решил собрать всю полезную инфу по взлому и постэксплуатации MySQL, все трюки и приемы, которые используются при проведении пентестов, чтобы ты смог проверить свою СУБД. 0day-техник тут не будет: кто-то еще раз повторит теорию, а кто-то почерпнет что-то новое. Итак, поехали!
Читать дальше →

Атака на оракула. Подробный гайд по векторам атак на Oracle DB

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


Сегодня я бы хотел поговорить о векторах атак на СУБД Oracle на разных стадиях: как прощупать слабые места базы снаружи, проникнуть и закрепиться внутри плюс как все это дело автоматизировать с помощью специализированного софта. Архитектура и возможности базы данных весьма интересны, занимательных моментов немало, а значит, немало и способов все испортить. Однако не забывай: ломать — не строить, поэтому вся дальнейшая информация предоставлена исключительно с целью выявить недочеты в защищенности тестируемых систем и повысить безопасность.
Читать дальше →

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

Все о триггерах в Oracle

Время на прочтение17 мин
Охват и читатели208K
Традиционно статья написана тезисно. Более подробное содержание можно найти в приложенном внизу статьи видео с записью лекции про триггеры Oracle.

Все шокирующие подробности про триггеры в Oracle

Microsoft SQL Server Data Tools

Время на прочтение8 мин
Охват и читатели65K
В данной статье хотел бы рассказать про набор полезных дополнений к Visual Studio, которые могут в значительной мере облегчить разработку баз данных на основе MS SQL Server.
Основными преимуществами использования SSDT я бы выделил следующее:
  • возможность простого изменения (refactoring) схемы базы (можно переименовать колонку таблицы и все Views, Functions и Stored Procedures ссылающиеся на неё автоматически будут исправлены для отражения изменений)
  • создание юнит тестов для базы данных
  • хранение структуры базы данных в Source Control
  • сравнение схемы/данных c возможностью генерации скрипта для приведения схемы/данных к требуемому состоянию

Безусловно на этом плюсы использования SSDT не заканчиваются, но остальное не так сильно впечатляет, как то, что упомянуто выше. Если вас интересует, как воспользоваться этими и другими преимуществами — прошу под кат.
Читать дальше →

Учебник по языку SQL (DDL, DML) на примере диалекта MS SQL Server. Часть пятая

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

Предыдущие части




В данной части мы рассмотрим


Здесь мы в общих чертах рассмотрим работу с операторами модификации данных:
  • INSERT – вставка новых данных
  • UPDATE – обновление данных
  • DELETE – удаление данных
  • SELECT … INTO … – сохранить результат запроса в новой таблице
  • MERGE – слияние данных
  • Использование конструкции OUTPUT
  • TRUNCATE TABLE – DDL-операция для быстрой очистки таблицы

В самом конце вас ждут «Приложение 1 – бонус по оператору SELECT» и «Приложение 2 – OVER и аналитические функции», в которых будут показаны некоторые расширенные конструкции:
  • PIVOT
  • UNPIVOT
  • GROUP BY ROLLUP
  • GROUP BY GROUPING SETS
  • использование приложения OVER


Операции модификации данных очень сильно связаны с конструкциями оператора SELECT, т.к. по сути выборка модифицируемых данных идет при помощи них. Поэтому для понимания данного материала, важное место имеет уверенное владение конструкциями оператора SELECT.
Читать дальше →

Учебник по языку SQL (DDL, DML) на примере диалекта MS SQL Server. Часть четвертая

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

Предыдущие части




В данной части мы рассмотрим


Многотабличные запросы:
  • Операции горизонтального соединения таблиц – JOIN
  • Связь таблиц при помощи WHERE-условия
  • Операции вертикального объединения результатов запросов – UNION

Работу с подзапросами:
  • Подзапросы в блоках FROM, SELECT
  • Подзапрос в конструкции APPLY
  • Использование предложения WITH
  • Подзапросы в блоке WHERE:
    • Групповое сравнение — ALL, ANY
    • Условие EXISTS
    • Условие IN

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

Учебник по языку SQL (DDL, DML) на примере диалекта MS SQL Server. Часть третья

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

Предыдущие части




О чем будет рассказано в этой части


В этой части мы познакомимся:
  1. с выражением CASE, которое позволяет включить условные выражения в запрос;
  2. с агрегатными функциями, которые позволяют получить разного рода итоги (агрегированные значения) рассчитанные на основании детальных данных, полученных оператором «SELECT … WHERE …»;
  3. с предложением GROUP BY, которое в скупе с агрегатными функциями позволяет получить итоги по детальным данным в разрезе групп;
  4. с предложением HAVING, которое позволяет произвести фильтрацию по сгруппированным данным.

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

Spring + Hibernate для новичков

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

Вместо дисклеймера


На Хабре уже есть множество статей на тему работы с Hibernate, однако, как мне показалось, все они довольно сложные для новичков. Эта статья направлена на разъяснение основ работы с ORM и будет полезна в первую очередь тем, кто только начинает разрабатывать собственные приложения и имеет мало опыта работы с базами данных в общем, и с инструментами, вроде Hibernate, в частности. Матерые разработчики вряд ли найдут в статье для себя что-то новенькое; всех остальных прошу под кат.
Читать дальше →

Снова про AUTO_INCREMENT

Время на прочтение3 мин
Охват и читатели11K
Все, кто работает с базами данных, знают, что такое AUTO_INCREMENT. Про него много всего написано, в том числе и на хабре. В этой статье я хочу изложить свои мысли на эту тему, потому что ранее я не встречал рассуждений именно в таком плане. Но сначала давайте определимся, зачем нам вообще база данных.
Читать дальше →