Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate очень много одинаковых таблиц / 25 сообщений из 47, страница 1 из 2
13.05.2013, 22:31:30
    #38255854
NetImperia
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
Здравствуйте. Подскажите пожалуйста. Пытаюсь изучить Hibernate. Покопавшись в старых темах, не обнаружил похожего вопроса.(если не заметил буду рад за ссылку)

Имеется проект. В нём > 200 одинаковых таблиц(совершенно одинаковая структура). Имена у них на подобии table_1, table_2 итд (таблицы могут автоматически добавляться)
В них находятся некоторые данные, которые выбираются по primary key.
Номер таблицы, выбирается по определённому алгоритму, на основе primary key ID.
Помимо этого, есть много таблиц в единичном экземпляре.

С теми таблицами которых один экземпляр, вопросов нет.

Но вот как замапить что не в 1 экземпляре (все эти table_XXX)? Может ли Hibernate вообще работать с такой структурой?
Хочется сделать что-то вроде 1 класса на все.


Заранее всем спасибо за ответы.
...
Рейтинг: 0 / 0
13.05.2013, 22:43:41
    #38255865
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
Есть ещё какие-то таблицы помимо этих 200? Если нет, то и hibernate брать не за чем.
...
Рейтинг: 0 / 0
13.05.2013, 22:47:06
    #38255872
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
NetImperia,
я так понимаю у вас таким образом реализован шардинг, вроде в hibernate было что-то такое, посмотрите hibernate shards.
А так соглашусь с Blazkowicz, что стоит хорошо подумать, а нужен ли Вам hibernate?
...
Рейтинг: 0 / 0
13.05.2013, 22:47:43
    #38255874
NetImperia
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
BlazkowiczЕсть ещё какие-то таблицы помимо этих 200? Если нет, то и hibernate брать не за чем.
В том и проблема что есть.
Как я писал выше: Помимо этого, есть много таблиц в единичном экземпляре.
...
Рейтинг: 0 / 0
13.05.2013, 22:54:28
    #38255877
NetImperia
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
just_vladimirNetImperia,
я так понимаю у вас таким образом реализован шардинг, вроде в hibernate было что-то такое, посмотрите hibernate shards.
А так соглашусь с Blazkowicz, что стоит хорошо подумать, а нужен ли Вам hibernate?

Именно. Спасибо за наводку. Сел читать.
...
Рейтинг: 0 / 0
14.05.2013, 08:14:58
    #38256029
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
NetImperia,
Понять причину
Почему их много. И исправить.
...
Рейтинг: 0 / 0
14.05.2013, 10:18:57
    #38256154
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
Petro123NetImperia,
Понять причину
Почему их много. И исправить.
Оптимизаия производительности. Вычислить маленькую таблицу по ID и найти в ней запись намного быстрее чем найти запись в одной таблице размером в 200 раз больше. Банально дискового пространства может не хватать. Разные таблицы разбросаны по разным дискам. Продвинутые базы это умеют прозрачно, не затрагивая клиетский код. Здесь, вероятно, сделано вручную.
...
Рейтинг: 0 / 0
14.05.2013, 10:28:11
    #38256177
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
BlazkowiczPetro123NetImperia,
Понять причину
Почему их много. И исправить.
Оптимизаия производительности. Вычислить маленькую таблицу по ID и найти в ней запись намного быстрее чем найти запись в одной таблице размером в 200 раз больше. Банально дискового пространства может не хватать. Разные таблицы разбросаны по разным дискам. Продвинутые базы это умеют прозрачно, не затрагивая клиетский код. Здесь, вероятно, сделано вручную.
да нету такого.
Чтобы справочник городов разбивали по буквам алфавита - ГородаА, ГородаБ - изврат))))
...
Рейтинг: 0 / 0
14.05.2013, 10:33:49
    #38256195
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
Petro123да нету такого.

Тебе виднее. Проект Hibernate Sharding тоже из пальца высосан. Ведь так никто не делает.

Petro123Чтобы справочник городов разбивали по буквам алфавита - ГородаА, ГородаБ - изврат))))
Кто говорил про "справочник"? Базу сети супермаркетов со всеми чеками за N лет видел когда-нибудь?
...
Рейтинг: 0 / 0
14.05.2013, 10:54:36
    #38256234
ant74
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
BlazkowiczОптимизаия производительности. Вычислить маленькую таблицу по ID и найти в ней запись намного быстрее чем найти запись в одной таблице размером в 200 раз больше. Банально дискового пространства может не хватать. Разные таблицы разбросаны по разным дискам. Продвинутые базы это умеют прозрачно, не затрагивая клиетский код. Здесь, вероятно, сделано вручную.Что же это за СУБД, если такую оптимизацию нельзя на уровне БД реализовать. Как вариант через view или stored procedure.
...
Рейтинг: 0 / 0
14.05.2013, 10:55:31
    #38256237
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
ant74BlazkowiczОптимизаия производительности. Вычислить маленькую таблицу по ID и найти в ней запись намного быстрее чем найти запись в одной таблице размером в 200 раз больше. Банально дискового пространства может не хватать. Разные таблицы разбросаны по разным дискам. Продвинутые базы это умеют прозрачно, не затрагивая клиетский код. Здесь, вероятно, сделано вручную.Что же это за СУБД, если такую оптимизацию нельзя на уровне БД реализовать. Как вариант через view или stored procedure.
+1
...
Рейтинг: 0 / 0
14.05.2013, 11:00:13
    #38256253
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
ant74Что же это за СУБД, если такую оптимизацию нельзя на уровне БД реализовать.
Любое говно мамонта. Мало что ли legacy систем?

ant74Как вариант через view или stored procedure.
Да, можно попробовать логику внутри view реализовать. Но получится ли? Да, и вопрос не о том был.
...
Рейтинг: 0 / 0
14.05.2013, 11:11:50
    #38256279
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
Blazkowicz,
что нам за аффтора додумывать?
Согласись, выглядит странно:
- долго ищет таблице = 1 решение - а нафига индексы? Потом, кластерный индекс? Потом железо? Потом OLAP\OLTP. Потом решения ОРАКЛ\Сиквел \ партиционирование.
А потом уже ломать проект и делать велосипед у программиста.
"Если ты Сервер, не суетись под клиентом (с)"
...
Рейтинг: 0 / 0
14.05.2013, 11:31:30
    #38256314
ivanra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
Не вдаваясь в подробности, а нафига это надо, могу предложить такую схему решения:
- описать суперкласс для одинаковых таблиц
- с помощью cglib нагенерить классы, примерно так
Код: java
1.
2.
3.
		Enhancer e = new Enhancer();
		e.setSuperclass(superСlass);
		Class tableXXXClass = e.createClass();


- нагенерить меппинги названиями нагенеренных классов tableXXXClass и добавить их в конфигурацию
Код: java
1.
2.
3.
4.
		Configuration cfg ...
		cfg.addXml(String xml)
		// или
		cfg.addDocument(Document doc)


Как потом с этим работать - фиг знает, hql врядли заработает, может быть, Criteria взлетит.
Скорее всего, придется использовать SQLQuery, а тогда нафига всё это надо?
...
Рейтинг: 0 / 0
14.05.2013, 12:56:02
    #38256460
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
Petro123,
не пойму, что Вас смущает, описанная автором ситуация вполне распространенный подход по реализации партиционирования для бедных. Например, может быть у человека нет нужной лицензии или используется PostgreSQL, где прямо в доке предлагают создавать кучу таблиц. Более того, тот же hibernate вообще не умеет использовать нативные механизмы партиционирования СУБД.

Или Вам непонятно зачем нужно партиционирование в принципе?

ant74,
я думаю вариант со stored procedure вполне себе жизненный. Когда для сущности, которая шардится/партиционируется весь CRUD вынести в процедуры.
...
Рейтинг: 0 / 0
14.05.2013, 13:05:36
    #38256475
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
just_vladimirИли Вам непонятно зачем нужно партиционирование в принципе?
расшифровываю.
Это вопрос по архитектуре. Там принципы - от простого к сложному .
Т.е. сначала БЕЗ партиций в любом виде. Потом, обосновав - на уровне СУБД.
Потом уже на уровне Java.
Я ведь выше привёл линейку масштабирования.
Если тут форум Java, это не значит, что БД - импотент. (т.е. у заказчика на терабайт данных нет 1000 баксов на СУБД)
Логично?
...
Рейтинг: 0 / 0
14.05.2013, 13:10:10
    #38256481
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
just_vladimirPostgreSQL, где прямо в доке предлагают создавать кучу таблиц
пруфлинк?
...
Рейтинг: 0 / 0
14.05.2013, 13:18:53
    #38256499
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
Petro123расшифровываю.
Это вопрос по архитектуре. Там принципы - от простого к сложному .
Т.е. сначала БЕЗ партиций в любом виде. Потом, обосновав - на уровне СУБД.
Потом уже на уровне Java.
Я ведь выше привёл линейку масштабирования.
Если тут форум Java, это не значит, что БД - импотент. (т.е. у заказчика на терабайт данных нет 1000 баксов на СУБД)
Логично?
Не уловил Ваших мыслей. Откуда домыслы что проект автора уже не прошел все простые варианты на тему индексов и т.д.?

Petro123just_vladimirPostgreSQL, где прямо в доке предлагают создавать кучу таблиц
пруфлинк?
http://www.postgresql.org/docs/9.1/static/ddl-partitioning.html
...
Рейтинг: 0 / 0
14.05.2013, 13:29:12
    #38256520
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
just_vladimir,
вот же любители спорить)).
Первый мой пост аффтару:
авторNetImperia,
Понять причину
Почему их много. И исправить.
пусть скажет причину.
Так понятно?
ЗЫ.
Я кстати, ни с кем тут не спорил). Даже с тем что Хибер выбросить.
...
Рейтинг: 0 / 0
14.05.2013, 14:03:45
    #38256591
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
Petro123,
понять причину - я задал уточняющий вопрос, являются ли данные множественные таблицы оптимизацией основанной на шардинге, на что получил утвердительный ответ. При этом замечу, что Ваш вопрос о причине было несколько позже :) Или Вы о какой-то другой причине?

ЗЫ: да Вы тоже смотрю не проч по спорить ;)
...
Рейтинг: 0 / 0
14.05.2013, 14:15:54
    #38256609
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
just_vladimir,
))
ну дак мы все разные.
Тебя ответ - "Да" - устроил.
Меня, как и вот тут.....
партиции и производительность
- не устраивает.
Поэтому, не будем толкаться локтями).
ЗЫ. Спор без автора топика - мазохизм)).
...
Рейтинг: 0 / 0
14.05.2013, 14:21:34
    #38256630
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
Petro123ЗЫ. Спор без автора топика - мазохизм)).
Вот с этим соглашусь :-)
...
Рейтинг: 0 / 0
14.05.2013, 14:51:37
    #38256709
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
NetImperiajust_vladimirNetImperia,
я так понимаю у вас таким образом реализован шардинг, вроде в hibernate было что-то такое, посмотрите hibernate shards.
А так соглашусь с Blazkowicz, что стоит хорошо подумать, а нужен ли Вам hibernate?

Именно. Спасибо за наводку. Сел читать.

Шардинг — это когда на разных серверах и в разных базах. А это — просто хрень какая -то.
...
Рейтинг: 0 / 0
14.05.2013, 17:10:34
    #38256992
NetImperia
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
Я удивлён что такие споры из-за моего вопроса.

Приоткрою немного инфы. :)

Скажу сразу. Это не публичный проект.
Изначально проект был 1 сервер (за 300$ в месяц) + MySQL 3 + PHP 3. Тогда и не планировалось что данных будет так много.
Данных становилось всё больше и больше. И они перестали вмещаться на один винт. Помимо этого, поиск даже по индексу занимал очень много времени. Так как решать надо было быстро, да и денег было мало. В результате просто добавили винты и таблицы поделены на части.

Через некоторое время проект медленно начали переписывать на Java. Потом проект был заброшен. Но продолжал работать.
И так всё это продолжалось довольно долго. В результате это всё превратилось в полное извращение.

Сейчас это монстр из 7 компов в каждом 36 винтов. Часть на PHP, часть на Java и есть даже кусок на ruby(кто на нём написал до сих пор не ясно. Очень хочется поймать его и кое что оторвать). + MySQL 5

Вообщем 100% пример. Как нельзя делать проекты.

Недавно было решено таки закончить с перепиской на Java. Обозначалось это фразой: Ты у нас сейчас свободен. Вот и иди занимайся :) Попутно решил изучить Hibernate получше.

Как понимаете сейчас весь это зоопарк выглядит просто дико. Но что есть то есть.

Понятное дело что по хорошему надо сделать тупо кластер. Но сейчас нет денег на это. У проекта очень ограниченный бюджет.

По поводу структуры:

Для тех кто

По поводу всяких Oracle итд. Опять-же всё упирается в деньги.
...
Рейтинг: 0 / 0
14.05.2013, 17:17:32
    #38257008
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Hibernate очень много одинаковых таблиц
MySQL 5 умеет всяческий partitioning. Может действительно всё в одну таблицу слить? (но оставить в разных файлах как и есть).
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate очень много одинаковых таблиц / 25 сообщений из 47, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]