Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Использование нескольких баз данных [RSS Feed]

#1 Ноя. 3, 2009 13:57:21

ilganas
От:
Зарегистрирован: 2009-11-03
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование нескольких баз данных

Доброго времени суток.
=====================
Проблема заключается в следующем
==================================
У меня локальная сеть предприятия
Хотелось бы написать маленький веб интерфейс для отображения статистической информации
Инфа будет браться из 4тырёх баз расположенных на разных серверах
1. MS SQL 2000
2. MS SQL 2000
3. Oracle 10
4. MySQL (своя база куда будет сохранять лог из первых трёх баз)
Вопрос заключатся в следующем, как можно организовать это используя Django?
Сервер свой, так что нет разницы в настройках, мне непонятна сама реализация
=========================================================================
Если сможете подскажите пожалуйсто.



Офлайн

#2 Ноя. 3, 2009 14:24:54

vvp91
От:
Зарегистрирован: 2009-06-08
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование нескольких баз данных

ilganas
Инфа будет браться из 4тырёх баз расположенных на разных серверах
Ключевой момент!
Предлагается следующий вариант:
1. сделать 3 linked servers в оракле из mssql и mysql,
2. поднять для нужных данных из связанных серверов необходимые views с данными.
3. потом над базой с ораклом построить джанго-приложение по схеме работы с унаследованными данными на чтение (Integrating Django with a legacy database).

Можно конечно начать использовать какие-то затычки по поддержке многобазовости в джанго, но…



Офлайн

#3 Ноя. 3, 2009 14:38:51

ilganas
От:
Зарегистрирован: 2009-11-03
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование нескольких баз данных

Предлагается следующий вариант:
1. сделать 3 linked servers в оракле из mssql и mysql,
2. поднять для нужных данных из связанных серверов необходимые views с данными.
3. потом над базой с ораклом построить джанго-приложение по схеме работы с унаследованными данными на чтение (Integrating Django with a legacy database).

Можно конечно начать использовать какие-то затычки по поддержке многобазовости в джанго, но…
————-
Базы с которыми работаю, богу только на просмотр. трогать нельзя….!!!!
Необходимо только собирать с них инфу…
================================================================
Вопрос заключается в том, вообще это можно реализовать в django или можно ли легко…



Отредактировано (Ноя. 3, 2009 14:40:56)

Офлайн

#4 Ноя. 3, 2009 15:01:04

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование нескольких баз данных

Можно сделать сервис на джанго для просмотра статистики и только, а сбор данных будет реализовывать обычный питоновский скрипт, который будет запускаться по крону (например) и выполнять несколько SQL запросов для экспорта нужных данных из 1,2,3-й баз данных в 4-ю.



Офлайн

#5 Ноя. 3, 2009 15:17:08

vvp91
От:
Зарегистрирован: 2009-06-08
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование нескольких баз данных

ilganas
Базы с которыми работаю, богу только на просмотр. трогать нельзя….!!!
Я не предлагал “трогать” базы. Добавление linked servers и создание view в какой-либо схеме оракла не может называться “троганием”.
* поднимите пятую базу, например на MSSQL,
* создайте схему данных, содержащую интересующие структуры, можно с использованием моделей джанги
* настройте DTS, который будет импортировать из других баз данные в вашу базу.
* сделайте джанго-приложение, работающее с вашей новой базой.

Суть одна - дать джанге возможность работать только с одной базой средствами СУБД.



Офлайн

#6 Ноя. 3, 2009 22:18:52

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Использование нескольких баз данных

тут корректней поднять репликацию и вытягивать нужную инфу в базу которая корректно поддерживается джангой, и уже с этими данными работать

хотя “linked” я так понимаю что-то вроде proxy-таблиц, только опять же накой тогда тут джанга с её ОРМом?)
а вот с в варианте с репликацией гавнистость орма будет неощутима

Офлайн

#7 Ноя. 4, 2009 01:22:11

Evg
От:
Зарегистрирован: 2008-12-25
Сообщения: 346
Репутация: +  -1  -
Профиль   Отправить e-mail  

Использование нескольких баз данных

ilganas
Инфа будет браться из 4тырёх баз
Я для похожей задачи переключения бд патчил джангу, основываясь на этом - http://code.djangoproject.com/ticket/1142 - вцелом вроде все работает через orm (кроме некотрых моментов где joins с разных бд) пришлось помучатся, недавно еще обнаружился баг с тем что не закрываются коннекты к базам и накапливаются, еще придется допиливать, но вообще в новой версии джанги 1.2 обещают multidb.



Отредактировано (Ноя. 4, 2009 01:27:06)

Офлайн

#8 Ноя. 4, 2009 10:10:45

vvp91
От:
Зарегистрирован: 2009-06-08
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование нескольких баз данных

slav0nic
хотя “linked” я так понимаю что-то вроде proxy-таблиц, только опять же накой тогда тут джанга с её ОРМом?)
а вот с в варианте с репликацией гавнистость орма будет неощутима
1. Связанные сервера (linked servers) - это доступ к данным сервера_1 через механизмы сервера_2, причем прозрачный доступ, т.е. клиент сервера_2 считает, что данные хранятся на сервере_2, и этот клиент может ничего не знать про сервер_1.
Вьюхи предлагались для большей прозрачности, поскольку их можно так разработать, чтобы джанга вообще думала, что работает со своими оригинальными названиями таблиц и полей.
2. Репликацию я предлагал сделать конкретным механизмом - MS DTS.



Отредактировано (Ноя. 4, 2009 10:11:09)

Офлайн

#9 Ноя. 4, 2009 13:17:46

ilganas
От:
Зарегистрирован: 2009-11-03
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование нескольких баз данных

Спасибо, механизм в целом понятен,
========================
Либо средствами СУБД, Либо средствами Python
Сделать так чтобы все данные стекались в ту базу, с которой Django будет работать….
А на Django сделать оббертку чтобы это все просматривать!
========================
Спасибо за помощь.



Офлайн

  • Начало
  • » Django
  • » Использование нескольких баз данных[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version