powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Парсинг динамического контента
25 сообщений из 110, страница 4 из 5
Парсинг динамического контента
    #39881102
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevи если достаточно памяти у JVM
если бы не достаточно было -ошибка бы вывалилась
вот сама сущность

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
@Data
@Entity(name = "ticket")
public class TicketEntity {
    @Id
    private Long number;
    @ElementCollection(targetClass = Long.class, fetch = FetchType.LAZY)
    @CollectionTable(name = "numbers", joinColumns = @JoinColumn(name = "number"))
    private List<Long> numbers;
}


если фетч стоит lazy я нормально выбираю все,но потом не могу получить листы с nambers
если фетч ставлю eger то все привет-виснет на глушняк
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881105
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanraasv79,
10000 записей это ни о чем для хибера. Если конечно нет косяков в меппинге
да косяков то нет ,проблема в фетче я так понимаю
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881107
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никГде-то недалеко вадя горько плачета чё мне плакать?
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881109
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот забегая вперед. Тебе repo.findAll() зачем нужен?

Тоесть что ты будешь делать потом со всей коллекцией всех своих билетов?
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881112
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВот забегая вперед. Тебе repo.findAll() зачем нужен?

Тоесть что ты будешь делать потом со всей коллекцией всех своих билетов?
класть их номера в лист и выявлять какой процент каждой цифры

поставил фетч лейзи
вытянул билеты
сейчас уже минут 5 пытаюсь достать цифры -это 300000 записей где то даже поболе
не пойму толи комп дохлый толи что ,ну не должно так долго это быть явно же
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881119
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
облегчил хиберу задачу-взять все тикеты и у первых 100 тикетов выбрать номера и положить их в лист

3 минуты делал)

итого на 10800 воросов (325000 записей) нужно минут 40))это чо за прикол
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881122
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asv79,

foreign key - то в базе есть?
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881127
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanraasv79,

foreign key - то в базе есть?
есть как же без него
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881131
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asv79,

если хочется жадно выбрать все 10000 записей с вложенными элементами, то в findAll надо написать селект с джойном, типа такого
Код: java
1.
"select t from ticket t join fetch t.numbers"
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881132
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79облегчил хиберу задачу-взять все тикеты и у первых 100 тикетов выбрать номера и положить их в лист

3 минуты делал)

итого на 10800 воросов (325000 записей) нужно минут 40))это чо за приколдля базы эти размеры ни о чём...
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881136
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяasv79облегчил хиберу задачу-взять все тикеты и у первых 100 тикетов выбрать номера и положить их в лист

3 минуты делал)

итого на 10800 воросов (325000 записей) нужно минут 40))это чо за приколдля базы эти размеры ни о чём...

Да что ты понимаешь? Зато не переедешь с mysql на Oracle если вдруг понадобится.

На всякий - </sarcasm>
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881144
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanra,да он нормально выбирает,но очень долго
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881146
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никДа что ты понимаешь? Зато не переедешь с mysql на Oracle если вдруг понадобится.тебе слова mayton напомнить?

даже если переедешь на Oracle или mssql это не ускорит. так что есть ли смысл в переезде?
потому как хибер не зависит от субд....
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881147
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П.C. Не помогло...
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881162
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79maytonВот забегая вперед. Тебе repo.findAll() зачем нужен?

Тоесть что ты будешь делать потом со всей коллекцией всех своих билетов?
класть их номера в лист и выявлять какой процент каждой цифры

поставил фетч лейзи
вытянул билеты
сейчас уже минут 5 пытаюсь достать цифры -это 300000 записей где то даже поболе
не пойму толи комп дохлый толи что ,ну не должно так долго это быть явно же
Коробочное решение этой проблемы - это pagination. Тоесть разбивание выборки на страницы.

Код: sql
1.
2.
3.
SELECT select_list
    FROM table_expression
    [LIMIT { number | ALL }] [OFFSET number]



Но это базе не нужно. Это нужно веб-серверу или юай чтоб он не умер от испуга.

Вот так.

Или если-б ты работал с ResultSet напрямую то ты некоторые калькуляции бы выполнял
one-by-one. Тоесть в режиме последовательной обработки как работают со Streams.
В 90% случаев мне удавалось написать такой SQL запрос который делает все из коробки.
В том числе и твою аналитику. И расчет средних. И корреляции и дисперсии и прочее.
Даже без включения Java.

Вообще современная Dbms такая как MS_SQL и Oracle делает все вычисления в контексте SQL
машины и выдавая в Java только резалт.

Так-же работает и PL/SQL машина в оракле. Она старается избавить программиста от коллекций.
Предлагая ему универсальный шаблон процессинга данных бесконечного размера. Типа

(скопипащено отсюда https://gerardnico.com/lang/plsql/open_for)
Код: plsql
1.
2.
3.
4.
5.
6.
7.
 OPEN emp_cv FOR sql_stmt USING my_job;
   LOOP
      FETCH emp_cv INTO emp_rec;
      EXIT WHEN emp_cv%NOTFOUND;
      -- process record
   END LOOP;
   CLOSE emp_cv;



Ты же решил в Java делать бигдату и сам попался. Ну не на 300 тыщях так на 3 лямах ты все равно
упадешь и Хибер тут будет тоже непричем. А причем здесь будет изначальная постановка задачи.
А именно ЧТО ТЫ СЧИТАЕШЬ? Каков метод и алгоритм.

Обсуди в форуме метод и алгоритм твоих билетов! Безотносительно хибера и базы.
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881180
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В тему стримов вот еще почитай как тут пишут.

https://blog.madadipouya.com/2019/03/26/high-performance-data-fetching-using-spring-data-jpa-stream/

Код: java
1.
2.
3.
4.
public interface BookRepository extends Repository<Book, Long> {

    Stream<Book> getAll();
}
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881190
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ты же решил в Java делать бигдату и сам попался. Ну не на 300 тыщях так на 3 лямах ты все равно
упадешь и Хибер тут будет тоже непричем. А причем здесь будет изначальная постановка задачи.
А именно ЧТО ТЫ СЧИТАЕШЬ? Каков метод и алгоритм.

Обсуди в форуме метод и алгоритм твоих билетов! Безотносительно хибера и базы.
я просто удивлен почему так медленно,даже 100 билетов ( в которых по 30 Long ) итого 3000 лонгов достает около 3 минут
у меня не падет ни хибер ни сервер ничего,просто тупо очень долго
но оно и правильно,не спроста же придумали Lazy

а
вообще мне не нужно обращаться к таблице ticket
мне нужно обратиться вот к этой таблице

Код: html
1.
2.
3.
@ElementCollection(targetClass = Long.class, fetch = FetchType.LAZY)
    @CollectionTable(name = "numbers", joinColumns = @JoinColumn(name = "number"))
    private List<Long> numbers;


надо просто загуглить как в рамках хибернейта к такого рода таблицам обращаться можно
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881193
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79, еще раз. Твоя проблема не в Хибере а в постановке задачи. Ты решаешь не задачу билетов а технологиеское
нагромождение технологий 90% из которых тебе в принципе не нужна. Ты втащил их просто по приколу.

Вот сделай чистую рафинированную задачи билетов. Как на контестерах. Запаблиши ее в Программирование.

И тебе ее решат ра 2 секунды на каком-нить Паскале.

Разумеется я отсюда исключил парсинг сайта. Ведь это вообще другая задача верно?
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881196
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никП.C. Не помогло...
нужен бейджик "не понимаю сарказм" рядом с именем мембера
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881197
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Разумеется я отсюда исключил парсинг сайта. Ведь это вообще другая задача верно?
это все одна задача
взять с сайта билеты положить их в базу ,а затем произвести над ними некие манипуляции,назовем их аналитикой

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

решения этой задачи -простое обращаться напрямую к таблице коллекции
надо посмотреть как это делается и все)

я не пойму про какие вычисления ты говоришь -найти плохие цифры?
у меня это две строчки кода и хешмапа
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881198
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79у меня это две строчки кода и хешмапа
(устало)
Зачем тебе хеш-мапа когда у тебя база данных?
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881272
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonasv79у меня это две строчки кода и хешмапа
(устало)
Зачем тебе хеш-мапа когда у тебя база данных?
затем что в рамках хибера у меня ограничен функционал)
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881323
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как будет угодно. Видимо тебе не нужно решать задачу билетов.

Тебе хочется играть с хибером. Разве-ж я могу помешать если просто хочется?
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881435
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКак будет угодно. Видимо тебе не нужно решать задачу билетов.

Тебе хочется играть с хибером. Разве-ж я могу помешать если просто хочется?
какая задача у билетов?

пс.уже все куплено,за ночь компухтер определелил те цифры ,которые встречаются чаше других
...
Рейтинг: 0 / 0
Парсинг динамического контента
    #39881453
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот прикинь. Владельцы игорного бизнеса (покер клубы, казино и лотереи в том числе) - обычно
выходцы из преступного мира. И тут вдруг (!) внезапно они узнают что какой-то пиздюк (я говорю
не о тебе а просто образно) на публичном форуме хачит и ломает их бизнес. И делает публичной
их подноготную.

Тут есть разные варианты развития событий. До тех пор пока ты не создал им проблем - ты никому не нужен.

Но если... короче думай сам.
...
Рейтинг: 0 / 0
25 сообщений из 110, страница 4 из 5
Форумы / Java [игнор отключен] [закрыт для гостей] / Парсинг динамического контента
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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