В процессе работы над одним огромным проектом на Zend Framework, возникла необходимость миграции баз данных и перемещение между версиями, т.е. кроме update, был необходим так называемый downdate. Немного погуглив натолкнулся на интересную статью Роба Алана (в дальнейшем Автор) «Akrabat_Db_Schema_Manager: Zend Framework database migrations». Данная статья не является переводом оригинала, а скорее синтезом его и возникшей проблемы. Об этом и пойдет разговор.
Читать полностью »
Рубрика «базы данных» - 47
Миграция базы данных в Zend Framework: Akrabat_Db_Schema_Manager
2012-08-01 в 6:48, admin, рубрики: mysql, php, Zend Framework, базы данных, миграции, Песочница, метки: mysql, PHP, zend framework, базы данных, миграцииПоприветствуйте вашего старого нового друга
2012-07-22 в 21:44, admin, рубрики: mysql, open source, oracle, postgresql, sql server, wtf, базы данных, переводыСегодня разнообразные открытые СУБД встают лицом к лицу против массивных, неуклюжих и дорогостоящих «корпоративных» систем, таких как SQL Server и Oracle. Часто открытые СУБД прекрасно работают лучше закрытых систем, не уступая даже в функциональных возможностях.
Из всех открытых систем управления базами данных самой умной, производительной и функциональной системой является Postgres, которая заслуженно привлекает всё больше и больше внимания.
Читать полностью »
Набор заметок. Производительность и защита, от сайта до системы
2012-07-14 в 17:23, admin, рубрики: framework, linux, systemd, web-разработка, авторизация, базы данных, Веб-разработка, защита, Песочница, производительность, сервер, метки: framework, linux, systemd, web-разработка, авторизация, базы данных, защита, производительность, серверКраткий анонс
Собирался добавить пару предположений на счет авторизации и регистрации на сайте, но то ли от недосыпания, то ли от многочисленных выпитых сегодня чашек кофе меня потянуло в дебри. Набросал некоторые заметки. Возможно кто-то из Вас найдет что-то новое для себя, возможно кто-то подскажет новое правило для кого-то, возможно кто-то поправит меня тем самым дав и мне урок, и другим. Ниже идут некоторые заметки работы с БД, еще ниже уже несколько заметок про работу самого сервера и т.д.
Читать полностью »
Эволюция аналитической инфраструктуры (продолжение)
2012-07-06 в 10:28, admin, рубрики: datawarehouse, sql, Vertica, Администрирование баз данных, базы данных, Блог компании «LifeStreet Media», хранилище данных, метки: datawarehouse, Vertica, базы данных, хранилище данныхВ предыдущей статье я рассказал, как и почему мы выбрали Вертику. В этой части я постараюсь рассказать об особенностях этой необычной базы данных, которой мы пользуемся уже более двух лет. Написание этой статьи заняло несколько больше времени, чем я планировал, в частности из-за того, что надо было рассказать с одной стороны достаточно технически подробно, с другой — доступно, и при этом не нарушить NDA. В результате я пошел по компромиссному пути: я попытаюсь описать, как Вертика устроена и работает в принципе, не касаясь деталей.
Часть 3. Vertica. Simply Fast
Simply Fast — этот вертиковский слоган возник не на пустом месте. Она, действительно, очень быстрая. Быстрая даже с “коробочными” настройками, что показали наши тесты во время выбора решения. В процессе миграции инфраструктуры мы хорошо изучили, как сделать Вертику еще быстрее и получать от нее максимальную производительность. Но обо всем по порядку.
Читать полностью »
Резервирование больших данных
2012-06-21 в 10:33, admin, рубрики: datawarehouse, Администрирование баз данных, базы данных, Блог компании «LifeStreet Media», бэкапы, хранилище данных, метки: datawarehouse, базы данных, бэкапы, хранилище данныхПри проектировании и эксплуатации нашего хранилища данных, несколько раз возникал вопрос, как делать бэкапы или репликацию. Я на него неизменно давал один и тот же ответ — никак. Объясню немного почему.
Бэкапы больших баз данных (от сотен гагабайт и выше) достаточно бесполезное занятие по одной простой причине: восстановление из бэкапа может занять дни. Если база данных используется постоянно для ведения бизнеса и в нее непрерывным потоком грузятся данные — это неприемлимо. Несколько лучше обстоит дело в случае инкрементального бэкапа на резервную систему, которую можно включить прямо поверх бэкапа. Однако, такой способ подходит не для всех баз данных, а только на тех, которые не меняют однажды записанные на диск файлы. Например, для MySQL этот способ плохо подходит, все таблицы лежат или в едином tablespace (InnoDB), или в отдельных файлах (MyISAM). Для Вертики — это возможный вариант, так как данные записываются в безличных файлах, которые не меняются после записи, а только удаляются. Однако, в случае кластерных систем необходимо обеспечивать идентичную топологию основной и резервной систем. Также могут возникнуть проблемы с целостностью данных в случае сбоя основной системы.
Иногда для поддержания резервной системы используют репликацию. Но надо понимать, что репликация довольно сильно просаживает производительность, так как требует записи бинарного лога, а если репликация синхронная, то и синхронизации. В аналитических приложениях с большим потоком данных, когда требуется постоянно грузить в базу данных тысячи или десятки тысяч записей в секунду, это может быть неприемлимо.
Что же делать?Читать полностью »
Эволюция аналитической инфраструктуры
2012-06-20 в 22:48, admin, рубрики: mysql, Vertica, Администрирование баз данных, базы данных, Блог компании «LifeStreet Media», метки: mysql, Vertica, базы данныхЭтой статьей я открываю серию материалов про инфраструктуру для аналитики вообще и экзотическую для России базу данных Vertica в частности. Статьи описывают опыт серии проектов в моей компании LifeStreet и не претендуют на полноту. Однако, где это представляется возможным, я буду пытаться давать общие обзоры. Прежде чем начать разговор собственно о Вертике, я хочу рассказать немного о том, как мы к ней пришли. Начнем с истории развития аналитической инфраструктуры в нашей компании.
Часть 1. Немного истории, теории и практики
Традиционно мы исповедуем итеративный процесс разработки всего нового. То есть сначала делается быстрый прототип, чтобы “пощупать” некоторую предметную или технологическую область. Затем, отталкиваясь от прототипа, разрабатывается архитектура и дизайн “как надо”, причем предпочтение отдается быстрым в реализации достаточно хорошим решениям, нежели академически правильным, но долгим и сложным. Затем, понятие о том, “как надо”, меняется, и архитектура модифицируется, “как на самом деле надо”. И так далее. Все изменения происходят на работающем и динамично развивающемся бизнесе, что требует осторожного эволюционного подхода. Так было и с аналитической платформой.
Первая версия “инфраструктуры” была сделана “на коленке” за два дня в далеком 2006 году, когда в компании было 4 человека разработчиков, и примерно столько же людей из бизнеса. Читать полностью »
Метрики Хранилища Данных
2012-06-10 в 14:10, admin, рубрики: oracle, sql, Администрирование баз данных, базы данных, метрики, хранилище данных, метки: базы данных, метрики, хранилище данныхПриветствую.
Создавая, или даже поддерживая, существующее хранилище данных, неизбежно возникает такой этап, когда множественность желаний пользователей встречается с неизбежностью физических ограничений той СУБД, которая используется для хранилища. В действительности, никто не может иметь бесконечного места на диске, процессорной мощности или сколь угодно долгого времени на обновление данных.
В этот момент у руководства могут возникнуть вопросы, если они не возникли ранее, что именно занимает так много места в БД, почему загрузка до сих пор не закончилась и прочее подобное.
Чтобы знать, что отвечать, необходимо провести учет. Создание ХД — процесс длительный, люди, разрабатывавшие архитектуру могут быть уже далеко, я не говорю уже о том, что бизнес требования меняются, иногда, так же быстро, как выходят новые версии браузера Firefox.
Читать полностью »
Firebird BD на Java
2012-06-08 в 18:07, admin, рубрики: eclipse, firebird, java, swing, базы данных, Песочница, метки: Eclipse, firebird, java, swing, базы данныхВступление
Год назад потребовалось написать БД в рамках курсовой работы. Особого труда это не вызвало. Выбрал тему, начертил ER-диаграмму, определился с полями таблиц и начал написание. Язык долго не выбирал, на тот момент начинал работать на Java в Eclipse. Выбрал СУБД, мой выбор пал на Firebird. Добавил таблиц через IBExpert и был всем доволен, как только написал UI для пары таблиц понял что можно создавать остальные с помощью копипаста. Код получился ужасный(ООП? не не слышал, так можно это было охарактеризовать), но на тот момент меня все радовало. Прошел год и по воле случая пришлось пересматривать свой код. Это было нечто страшное с непонятной структурой.
Перед собой решил поставить несколько целей:
— простое добавление таблиц
— применить, наконец, ООП
— применить шаблоны проектирования(для обучения)
Также сейчас непонятно почему людям в институте сложно писать простые БД (или лень), в любом случае, хочу показать простоту написания БД и познакомить со своим видением приложения (на мой взгляд очень простым).
Читать полностью »
Установка Oracle 10g на CentOS 6.2 x64
2012-05-23 в 14:35, admin, рубрики: howto, linux, oracle, Администрирование баз данных, базы данных, метки: howto, базы данныхНа днях пришлось установить данный вид продукции на данную официально не поддерживаемую ораклом ось. CentOS для меня достаточно неизученный Linux, поэтому как устанавливать гуглил. Нашел несколько инструкций, к сожалению ни одна из них не была тем самым руководством, тупо следуя которому можно было бы выполнить это действо. Все требовали доработки, поиска недостающих библиотек и т.д. В итоге написал некое подобие HOWTO с учетом всех поправок. Может быть кому-то будет интересно.
П.С. Тру фанатов оракла прошу строго не судить, мне известно что установка этой БД на неподдерживаемы ОС чревата и т.д… Но поскольку имею практический опыт в эксплуатации данной СУБД в нескольких «несертифицированных» ОС и опыт разрешения весьма небольшого числа коллизий по ходу эксплуатации — до сих пор считаю требование к «сертифицированности» ОС сильно преувеличенным.
Денормализация данных лучше, чем делать вычитание таблиц
2012-04-23 в 23:29, admin, рубрики: mysql, php, Администрирование баз данных, базы данных, метки: базы данных
Здравствуйте господа.
Этот пост адресован не столько к опытным разработчикам, сколько к молодым людям в этой области, которые постигают азы на университетской скамье. В университете учат, что данные должны быть нормализованы и теория должна быть вся выполнена, так как это снизит риск потенциальных ошибок и сделает данные более компактными. В реальной ситуации намного энергоэффективней производить разные оптимизации структуры БД, о чем и будет этот пост.
В данном посте будут только размышления на примере задачи, все структуры данных и алгоритмы будут написаны на псевдоязыке в качестве пищи для мозгов, но не более.
Читать полностью »