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

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

image

ХостТрекер предлагает функцию для решения подобных задач — мониторинг БД.

Читать полностью »

В следующую субботу, 19 июля, проведем в офисе Badoo встречу пользователей Tarantool.

СТРАНИЦА МЕРОПРИЯТИЯ НА MEETUP.COM

Константин Осипов (Mail.ru) расскажет о Tarantool 1.6, новой версии сервера, в которой были пересмотрены многие технические решения и сделана удобная, безопасная и по-прежнему высокопроизводительная СУБД.
Tarantool — это, в первую очередь, lock-free база данных, обрабатывающая все транзакции последовательно в одном потоке. Tarantool 1.6 — это и ещё полноценный Lua Application Server с поддержкой кооперативной многозадачности, неблокирующего ввода-вывода, стандартных пакетов Lua и пакетов, созданных специально для Tarantool.

Антон Поваров (Badoo) выступит с докладом«Tarantool в Badoo: хранение истории посещений».
Каждый день на badoo.com пользователи просматривают порядка 100 миллионов профилей других юзеров. Мы храним счетчики и полную историю посещений за последние 90 дней, с некоторой агрегацией — это около 5 миллиардов ивентов.
Читать полностью »

Ниже представлен опыт нагрузочного тестирования базы данных с использованием JUnit и ассоциированных с ним DBUnit и ContiPerf.

ContiPerf

ContiPerf — утилита, которая позволяет использовать JUnit4 для нагрузочных тестов. Проста в использовании, легко и разнообразно настраивается. Использует Java аннотации для задания настроек теста и требований выполнения, создает подробный отчет в виде html файла с графиком распределения времени выполнения. Требует использование Java не ниже 5 версии и JUnit не ниже версии 4.7.

DBUnit

DBUnit — расширение для JUnit, упрощающее тестирование программ, работающих с бд. Впрочем, вполне популярен и в представлении не нуждается, поэтому ограничусь ссылками: знакомство для начинающих, упоминания на хабре. Читать полностью »

Как только ваша информационная система становится рабочей (prоduction), появляется необходимость иметь как минимум две копии ее базы данных. Первая, резервная, с некоторой частотой создается при помощи штатных утилит и представляет собой согласованный дамп (consistent dump). Цель его создания — восстановление системы после сбоя (disaster recovery).

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

Есть немало книг, описывающих особенности и специфику конкретных БД.
Значительно меньше «программно-независимых» изданий, которые рассказывают об общих правилах и законах проектирования баз, принципах построения, нарушение которых может привести в дальнейшем к серьёзным ошибкам и проблемам. Где рассмотрена вся методологическая цепочка от постановки задачи до итогового анализа уровня целостности данных для каждого приложения.

Мы сейчас обсуждаем возможность издать на русском языке книгу Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design и хотели бы включить в эту дискуссию «коллективный разум».

Уважаемые читатели! Пожалуйста, оцените это издание по пятибалльной шкале. Насколько оно раскрывает тему? Будет ли оно полезно разработчикам БД — лично вам, или, может быть, вашим менее опытным коллегам, которые смогут избежать ошибок проектирования?
Комментарии своей оценки, как всегда, приветствуются.
Читать полностью »

YAWNDB — time series база данных

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

Наиболее простым и наглядным способом представления статистических данных является построение графиков. Существует много специализированных программных решений, предназначенных для анализа статистических данных с последующей визуализацией.Мы стали искать подходящий инструмент; основным требованием при этом была высокая производительность. В результате этих поисков… Впрочем, обо всем по порядку. Начнем с небольшого теоретического вступления.Читать полностью »

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

Согласно официальному сайту, Holland — фреймворк с открытым исходным кодом для создания резервных копий, разработанный Rackspace и написанный на языке Python. Проект преследует цель создания бекапов с большой гибкостью настройки, логичной структурой и простотой использования. В данный момент Holland работает с MySQL и PostgreSQL, однако в будущем будет включать большее разнообразие баз данных, и даже приложения, никак не относящимся к базам данных. Благодаря модульной структуре Holland может быть использован для создания резервных копий чего угодно, как угодно.
Читать полностью »

Уже более 3 лет наша команда занимается разработкой такого важного компонента сети оператора как PCRF. Policy and Charging Rules Function (PCRF) – решение для управления политиками обслуживания абонента в сетях LTE (3GPP), позволяющее в реальном времени назначать ту или иную политику, принимая во внимание сервисы, подключенные у абонента, его местонахождение, качество сети в данном месте в данный момент, время суток, объем потребленного трафика и т.д. Под политикой в данном контексте подразумевается доступный абоненту набор сервисов и параметры QoS (качества обслуживания). Анализируя соотношение цена-качество для различных продуктов в данной области от разнообразных поставщиков, мы приняли решение разрабатывать свой продукт. И вот уже более 2 лет, наш PCRF успешно работает на коммерческой сети компании Yota. Решение полностью софтовое, с возможностью устанавливать даже на обычные виртуальные сервера. Работает в коммерции на Red Hat Linux, но в целом возможна установка и под другие Linux-системы.
Читать полностью »

image

Предлагаю всем джангистам/алхимистам немного отвечься и почитать вольную интерпретацию вводного туториала и частично документации по Peewee – stand-alone ORM, обязательной к ознакомлению любому питонщику и, в особенности, фласкеру. Пишут о ней мало, а зря. С Peewee очень просто подружиться, особенно если вы уже знакомы с какой-нибудь ORM на ActiveRecord. Что более важно – с ней приятно дружить :) Ну, начнём.

Установка

С pip:

pip install peewee

Из репозитория:

git clone https://github.com/coleifer/peewee.git cd peewee python setup.py install

Тесты:

python setup.py test

Есть обвязка для flask:

pip install flask-peewee

Определение моделей или «попахивает джангой»

Весь нижеследующий код можно повторить один к одному в интерактивном интерпретаторе или отдельном скрипте.

from peewee import *

db = SqliteDatabase('people.db')

class Person(Model):
    name = CharField()
    birthday = DateField()
    is_relative = BooleanField()

    class Meta:
        database = db  # модель будет использовать базу данных 'people.db'

Типов полей много, на все случаи жизни. Peewee берёт на себя преобразование питоновских объектов в значения, подходящие для базы данных, и наоборот.
Читать полностью »

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

  • Обновление БД с конкретной версии на любую другую за один шаг, как на более позднюю, так и возврат к предыдущей;
  • Легкое получение скриптов миграции в автоматическом режиме, с возможностью «ручного» внесения исправлений в крайнем случае;
  • Создание «с нуля» нового экземпляра БД, соответствующего имеющейся версии приложения;
  • Простое создание тестовых/девелоперских экземпляров БД на базе актуальных рабочих БД для ведения разработки на них, которые максимально соответствуют этим рабочим.
  • Контроль и аудит нежелательных изменений в экземплярах БД, при необходимости автоматический возврат к эталонному состоянию в сжатые сроки.

Уже упоминалось, что версионный подход не очень эффективно применять без использования каких-либо инструментальных решений. Посмотрим, как можно решить эти задачи с помощью DB Change Manager компании Embarcadero. Это утилита для администраторов БД и разработчиков баз данных позволяет упростить и автоматизировать внесение изменений в базы данных и создавать отчеты об изменениях. DB Change Manager обеспечивает согласованность БД, соблюдение норм и конфиденциальность данных.

Концепция работы утилиты основывается на операциях сравнения и «архивирования». DB Change Manager позволяет анализировать и сравнивать элементы БД, взятые из двух различных источников данных. Он генерирует SQL-скрипт, с помощью которого один источник данных будет изменен так, чтобы он совпадал с другим.
Читать полностью »


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