Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
 Re: Парсинг динамического контента  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2694
Leonid Kudryavtsev
и если достаточно памяти у JVM

если бы не достаточно было -ошибка бы вывалилась
вот сама сущность

@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 то все привет-виснет на глушняк
24 окт 19, 17:05    [22001902]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2694
ivanra
asv79,
10000 записей это ни о чем для хибера. Если конечно нет косяков в меппинге

да косяков то нет ,проблема в фетче я так понимаю
24 окт 19, 17:06    [22001906]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16782
забыл ник
Где-то недалеко вадя горько плачет
а чё мне плакать?
24 окт 19, 17:07    [22001908]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
mayton
Member

Откуда: loopback
Сообщений: 42861
Вот забегая вперед. Тебе repo.findAll() зачем нужен?

Тоесть что ты будешь делать потом со всей коллекцией всех своих билетов?
24 окт 19, 17:09    [22001910]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2694
mayton
Вот забегая вперед. Тебе repo.findAll() зачем нужен?

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

класть их номера в лист и выявлять какой процент каждой цифры

поставил фетч лейзи
вытянул билеты
сейчас уже минут 5 пытаюсь достать цифры -это 300000 записей где то даже поболе
не пойму толи комп дохлый толи что ,ну не должно так долго это быть явно же
24 окт 19, 17:14    [22001914]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2694
облегчил хиберу задачу-взять все тикеты и у первых 100 тикетов выбрать номера и положить их в лист

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

итого на 10800 воросов (325000 записей) нужно минут 40))это чо за прикол
24 окт 19, 17:21    [22001923]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
ivanra
Member

Откуда:
Сообщений: 868
asv79,

foreign key - то в базе есть?
24 окт 19, 17:22    [22001926]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2694
ivanra
asv79,

foreign key - то в базе есть?

есть как же без него
24 окт 19, 17:27    [22001931]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
ivanra
Member

Откуда:
Сообщений: 868
asv79,

если хочется жадно выбрать все 10000 записей с вложенными элементами, то в findAll надо написать селект с джойном, типа такого
"select t from ticket t join fetch t.numbers"
24 окт 19, 17:34    [22001936]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16782
asv79
облегчил хиберу задачу-взять все тикеты и у первых 100 тикетов выбрать номера и положить их в лист

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

итого на 10800 воросов (325000 записей) нужно минут 40))это чо за прикол
для базы эти размеры ни о чём...
24 окт 19, 17:42    [22001937]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
забыл ник
Member

Откуда:
Сообщений: 3038
вадя
asv79
облегчил хиберу задачу-взять все тикеты и у первых 100 тикетов выбрать номера и положить их в лист

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

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


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

На всякий - </sarcasm>
24 окт 19, 17:48    [22001943]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2694
ivanra,да он нормально выбирает,но очень долго
24 окт 19, 17:54    [22001956]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16782
забыл ник
Да что ты понимаешь? Зато не переедешь с mysql на Oracle если вдруг понадобится.
тебе слова mayton напомнить?

даже если переедешь на Oracle или mssql это не ускорит. так что есть ли смысл в переезде?
потому как хибер не зависит от субд....
24 окт 19, 17:57    [22001959]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
забыл ник
Member

Откуда:
Сообщений: 3038
П.C. Не помогло...
24 окт 19, 17:58    [22001960]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
mayton
Member

Откуда: loopback
Сообщений: 42861
asv79
mayton
Вот забегая вперед. Тебе repo.findAll() зачем нужен?

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

класть их номера в лист и выявлять какой процент каждой цифры

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

Коробочное решение этой проблемы - это pagination. Тоесть разбивание выборки на страницы.

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)
 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 лямах ты все равно
упадешь и Хибер тут будет тоже непричем. А причем здесь будет изначальная постановка задачи.
А именно ЧТО ТЫ СЧИТАЕШЬ? Каков метод и алгоритм.

Обсуди в форуме метод и алгоритм твоих билетов! Безотносительно хибера и базы.
24 окт 19, 18:14    [22001982]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
mayton
Member

Откуда: loopback
Сообщений: 42861
В тему стримов вот еще почитай как тут пишут.

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

public interface BookRepository extends Repository<Book, Long> {

    Stream<Book> getAll();
}
24 окт 19, 18:33    [22002009]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2694
mayton

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

Обсуди в форуме метод и алгоритм твоих билетов! Безотносительно хибера и базы.

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

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

@ElementCollection(targetClass = Long.class, fetch = FetchType.LAZY)
    @CollectionTable(name = "numbers", joinColumns = @JoinColumn(name = "number"))
    private List<Long> numbers;

надо просто загуглить как в рамках хибернейта к такого рода таблицам обращаться можно
24 окт 19, 18:52    [22002022]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
mayton
Member

Откуда: loopback
Сообщений: 42861
asv79, еще раз. Твоя проблема не в Хибере а в постановке задачи. Ты решаешь не задачу билетов а технологиеское
нагромождение технологий 90% из которых тебе в принципе не нужна. Ты втащил их просто по приколу.

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

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

Разумеется я отсюда исключил парсинг сайта. Ведь это вообще другая задача верно?
24 окт 19, 18:57    [22002025]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
chpasha
Member

Откуда:
Сообщений: 8593
забыл ник
П.C. Не помогло...

нужен бейджик "не понимаю сарказм" рядом с именем мембера Картинка с другого сайта.
24 окт 19, 19:05    [22002028]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2694
mayton

Разумеется я отсюда исключил парсинг сайта. Ведь это вообще другая задача верно?

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

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

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

я не пойму про какие вычисления ты говоришь -найти плохие цифры?
у меня это две строчки кода и хешмапа
24 окт 19, 19:08    [22002029]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
mayton
Member

Откуда: loopback
Сообщений: 42861
asv79
у меня это две строчки кода и хешмапа

(устало)
Зачем тебе хеш-мапа когда у тебя база данных?
24 окт 19, 19:09    [22002030]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2694
mayton
asv79
у меня это две строчки кода и хешмапа

(устало)
Зачем тебе хеш-мапа когда у тебя база данных?

затем что в рамках хибера у меня ограничен функционал)
24 окт 19, 22:37    [22002127]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
mayton
Member

Откуда: loopback
Сообщений: 42861
Как будет угодно. Видимо тебе не нужно решать задачу билетов.

Тебе хочется играть с хибером. Разве-ж я могу помешать если просто хочется?
25 окт 19, 09:05    [22002220]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2694
mayton
Как будет угодно. Видимо тебе не нужно решать задачу билетов.

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

какая задача у билетов?

пс.уже все куплено,за ночь компухтер определелил те цифры ,которые встречаются чаше других
25 окт 19, 11:40    [22002386]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг динамического контента  [new]
mayton
Member

Откуда: loopback
Сообщений: 42861
Вот прикинь. Владельцы игорного бизнеса (покер клубы, казино и лотереи в том числе) - обычно
выходцы из преступного мира. И тут вдруг (!) внезапно они узнают что какой-то пиздюк (я говорю
не о тебе а просто образно) на публичном форуме хачит и ломает их бизнес. И делает публичной
их подноготную.

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

Но если... короче думай сам.
25 окт 19, 12:02    [22002412]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
Все форумы / Java Ответить