Рубрика «базы данных» - 34

image

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

Сам проект написан на Django, в качестве бекенда — PostgreSQL. В самом начале работы было решено, по крайней мере, частично отказаться от использования Django ORM в пользу «сырого» SQL и хранимых процедур. Другими словами, почти вся бизнес-логика вынесена на уровень базы данных. Сразу скажу, что готовить ORM я умею, но в данном случае требовалось производить многоступенчатые вычисления, связанные с множеством выборок, а это лучше делать на сервере БД и не таскать промежуточные данные в приложение.

Столкнувшись с необходимостью поддержания структуры базы данных вручную, без приятностей Django Migrations, я выяснил, что вручную писать инкрементальные SQL патчи возможно, но трудно уследить за зависимостями объектов БД. К примеру, когда функции, которая используется где-то еще, добавляешь еще один аргумент, простого CREATE OR REPLACE недостаточно — ее нужно сначала DROP, а потом CREATE. При этом нужно предварительно удалить зависимые от нее функции, а потом создать заново (а если от этих функций еще кто-то зависит, тогда надо и их пересоздать).

Под катом краткое описание возможностей в виде туториала. Встречайте — Sqlibrist.Читать полностью »

Это третья часть цикла «Масштабирование Wix до 100 миллионов пользователей». Вступление и второй пост.

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

Развертывание новой версии нашей системы в некоторых случаях требовало изменения схемы MySQL. Поскольку Hibernate не прощает несовпадений между ожидаемой им схемой и реальной схемой базы данных (БД), мы использовали общую практику развертывания программного обеспечения: плановая двухчасовая остановка в период наименьшего трафика (полночь в США на выходных). За время этой плановой остановки мы должны были остановить сервис, выключить сервер, внести изменения в схему MySQL, развернуть новую версию и перезапустить сервер.

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

Зачем нужна денормализация баз данных, и когда ее использовать - 1

В нашем блоге на Хабре мы не только рассказываем о развитии своего продукта — биллинга для операторов связи «Гидра», но и публикуем материалы о работе с инфраструктурой и использовании технологий.

Недавно мы писали об использовании Clojure и MongoDB, а сегодня речь пойдет о плюсах и минусах денормализации баз данных. Разработчик баз данных и финансовый аналитик Эмил Дркушич (Emil Drkušić) написал в блоге компании Vertabelo материал о том, зачем, как и когда использовать этот подход. Мы представляем вашему вниманию главные тезисы этой заметки.Читать полностью »

Полезные трюки PostgreSQL - 1

В мануале есть всё. Но чтобы его целиком прочитать и осознать, можно потратить годы. Поэтому один из самых эффективных методов обучения новым возможностям Postrges — это посмотреть, как делают коллеги. На конкретных примерах. Эта статья может быть интересна тем, кто хочет глубже использовать возможности postgres или рассматривает переход на эту СУБД.
Читать полностью »

Mail.ru нашла способ снизить инфраструктурные издержки заказчиков. Компания разработала новую технологию оптимизации хранения данных на основе opensource-решения Tarantool.

Один сервер с Tarantool способен заменить от 30 и более серверов с классической системой управления базами данных (СУБД), говорит представитель Mail.ru Group: «Само решение бесплатное, но клиенты смогут получать платную техническую поддержку, а также кастомизировать Tarantool под специфические запросы».

По прогнозам Gartner, к 2018 году 70% новых и 50% существующих приложений в мире будут использовать базы данных с открытым кодом. Мировой рынок СУБД в 2015 году достиг $41,5 миллиарда и к 2017 году может вырасти до $50 миллиардов, оценивала IDC.

Гендиректор «Новых облачных технологий» Дмитрий Комиссаров оценивает российский рынок баз данных в $400–500 миллионов:Читать полностью »

Публикуем перевод статьи, в которой рассматривается поэтапное создание простого инструмента SQL Server Tool.

Простой инструмент SQL Server Tool на C# - 1
Читать полностью »

За и против: Когда стоит и не стоит использовать MongoDB - 1

Разработчик и сотрудник проекта CouldBoost.io Наваз Дандала (Nawaz Dhandala) написал материал о том, почему в некоторых случаях не стоит использовать MongoDB. Мы в «Латере» развиваем биллинг для операторов связи «Гидра» и уже много лет работаем с этой СУБД, поэтому решили представить и свое мнение по данному вопросу.Читать полностью »

Дженнифер Нуль и другие неудачные фамилии - 1

Муж Дженнифер Нуль (Jennifer Null) до свадьбы предупреждал о проблемах в повседневной жизни, если она возьмёт его фамилию. Она представляла, что её ждёт — семья мужа постоянно шутила по этому поводу. И неудивительно, что проблемы начались сразу после свадьбы.

«Мы переезжали в новый дом, когда поженились, так что я занялась покупкой авиабилетов практически сразу, как сменила фамилию, — рассказывает Дженнифер Нуль. Покупка билетов оказалась непростой задачей: почти все сайты после заполнения формы почему-то возвращали сообщение об ошибке (поле «Фамилия» не заполнено, попробуйте ещё раз).
Читать полностью »

Под высокой нагрузкой: наши способы применения Tarantool - 1

Многие из вас уже слышали о нашем проекте Tarantool. Это СУБД, или, попросту говоря, база данных с сервером приложений внутри. Tarantool — проект с открытым исходным кодом, и с ним может работать кто угодно. Развивается этот проект уже больше восьми лет. В Mail.Ru Group Tarantool активно используется более чем в половине продуктов: в Почте, Облаке, Моём Мире, Агенте и др. Все сделанные нами доработки этой БД мы коммитим обратно на GitHub, и сообществу доступна та же самая версия БД, что и нам. Сейчас у нас есть клиентские библиотеки почти ко всем языкам, мы сильно прибавили в этом направлении за последний год. Часть из них написана сообществом, часть — нами. Если появляется какая-то более эффективная библиотека, то мы просто делаем её официальной. Мы стараемся, чтобы всё было прямо из коробки — и БД, и библиотеки.

Одна из главных особенностей Tarantool заключается в объединении свойств БД и кэша. БД — это нечто надёжное, с транзакциями, серверным языком запросов. А кэш быстрый. И оба этих мира органично сливаются воедино в Tarantool. Эта БД предназначена для использования в высоконагруженных проектах и для работы с горячими данными.
Читать полностью »

Уважаемые коллеги, у меня для вас отличные новости!
image
Открытая NoSQL-база данных Tarantool, которую разрабатывает компания Mail.ru была сертифицирована для облачной плафтормы Azure и опубликована в Azure Marketplace для удобства и скорости развертывания.

Tarantool – это высокопроизводительные сервер приложений на базе Lua интегрированный с NoSQL СУБД. База данных разрабатывается в виде открытого проекта под лицензией BSD компанией Mail.ru и сообществом разработчиков.

Крупнейшим кейсом использования Tarantool служит сама компаний Mail.ru, которая с поомщью этой БД обеспечивает работу 30 миллионов пользователей и 25 миллионов email в сутки. Другими пользователями Tarantool являются Badoo, Avito, Qiwi, Wallarm и так далее.

Подробнее о Tarantool вы можете узнать на официальном сайте http://tarantool.org/ и странице на Facebook https://www.facebook.com/TarantoolDatabase/.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js