Форум об интернет-маркетинге
Вернуться   Форум об интернет-маркетинге > Не про работу > Курилка

Курилка Автомобили, хобби, спорт. И Garik77 с металлоискателем. Коммерция запрещена.

Ответ
 
Опции темы
Старый 01.07.2024, 00:28   #201
HappySoftX
Senior Member
Доцент
 
Аватар для HappySoftX
 
Регистрация: 23.06.2020
Сообщений: 490
Сказал(а) спасибо: 1,926
Получил(а) "Спасибо": 2,516
Нарушения: 0/0 (0)
Репутация: 80425

Thread Starter Re: "Тупая" железяка

Цитата:
Сообщение от vastmanager Посмотреть сообщение
Для знатоков вопрос. Есть более простая задача. Без регулярок даже.
Имеется текстовый файл 9,5 Гб. объемом. В файле 360 млн. строк.
Это база запросов в Гугл на англ. языке за несколько лет.
Задача: Быстро сделать выборку из файла примерно по 100 тыс. вхождений.
В основном это однословные вхождения (ключи).
Вбиваем для выборки viagra к примеру, а оно нам выдает: buy viagra, online viagra и т.д. -
все ключи с вхождением этого слова.

При небольшом количестве запросов все реально сделать на домашнем компе при помощи
KeyWordKeeper - эта программа сеошникам хорошо известна. Также хорошо работает Penguin Keywords Tools,
но не на много быстрее.

Но нужно, чтобы выборка прошла по 100 тыс. однословных ключей.
Пока лучший результат получен при помощи системной утилиты grep на линуксовой машине 8 CPU 16 Гб. Ram
на процессоре Райзен. При загрузке процессора на 67% все заняло около суток.

Мне тут посоветовали оба файла загрузить в БД SqlLite3 и делать выборку уже в базе.
Даже скрипт на python прислали. Вроде так быстрее, хотя я не уверен. Пока предложенный код в базу не грузит ничего.
Хотя код запускается норм.
Вопрос такой - реально ли через БД быстрее будет? Или это враки. Разработчик уверял, что скорость выборки до 20-ти млн.
ключей в секунду. И если ТЗ грамотно составить, что может предложить ИИ по этому вопросу?
Покажи несколько строчек из файла
HappySoftX вне форума   Ответить с цитированием
Старый 01.07.2024, 00:42   #202
vastmanager
ОПТимизирую оптом.
Академик
 
Аватар для vastmanager
 
Регистрация: 26.06.2020
Сообщений: 1,182
Сказал(а) спасибо: 1,474
Получил(а) "Спасибо": 3,201
Нарушения: 0/0 (0)
Репутация: 903053

По умолчанию Re: "Тупая" железяка

Цитата:
Сообщение от HappySoftX Посмотреть сообщение
Покажи несколько строчек из файла
Тут выборка уже сделана по теме казино.
По ключу на строку:

Online casino
Casinos online
Slots
Best online casino
Casino
Online slots
Mobile casino
Blackjack online
Slot machine
Online casino canada
Online roulette
Slot machines
Slot games
Slot sites
Canada casino
Casinos
Play slots
New casino
Best online casinos
New slot
Slots games
Slots casino
Game slot
Best online slot sites
New slots sites
Money slots
Club casino
Casino real money games


Сам файл из которого нужно выборку сделать - 9,5 Гб. объёмом.
vastmanager на форуме   Ответить с цитированием
Старый 01.07.2024, 01:09   #203
HappySoftX
Senior Member
Доцент
 
Аватар для HappySoftX
 
Регистрация: 23.06.2020
Сообщений: 490
Сказал(а) спасибо: 1,926
Получил(а) "Спасибо": 2,516
Нарушения: 0/0 (0)
Репутация: 80425

Thread Starter Re: "Тупая" железяка

Я про несколько строчек из файла 9.5 гб
HappySoftX вне форума   Ответить с цитированием
Старый 01.07.2024, 01:21   #204
vastmanager
ОПТимизирую оптом.
Академик
 
Аватар для vastmanager
 
Регистрация: 26.06.2020
Сообщений: 1,182
Сказал(а) спасибо: 1,474
Получил(а) "Спасибо": 3,201
Нарушения: 0/0 (0)
Репутация: 903053

По умолчанию Re: "Тупая" железяка

Цитата:
Сообщение от HappySoftX Посмотреть сообщение
Я про несколько строчек из файла 9.5 гб
Там все тоже самое, только по разным темам. По ключевой фразе на строку.
И без заглавных букв.
vastmanager на форуме   Ответить с цитированием
Старый 01.07.2024, 01:27   #205
HappySoftX
Senior Member
Доцент
 
Аватар для HappySoftX
 
Регистрация: 23.06.2020
Сообщений: 490
Сказал(а) спасибо: 1,926
Получил(а) "Спасибо": 2,516
Нарушения: 0/0 (0)
Репутация: 80425

Thread Starter Re: "Тупая" железяка

Цитата:
Сообщение от vastmanager Посмотреть сообщение
Там все тоже самое, только по разным темам. По ключевой фразе на строку.
И без заглавных букв.
То есть тебе надо вытащить строки в которых есть вхождение определенного одного слова и сохранить эти строки в файл?

Или тебе надо вытащить строки в которых есть вхождение любого слова из заданного списка?
HappySoftX вне форума   Ответить с цитированием
Старый 01.07.2024, 01:42   #206
vastmanager
ОПТимизирую оптом.
Академик
 
Аватар для vastmanager
 
Регистрация: 26.06.2020
Сообщений: 1,182
Сказал(а) спасибо: 1,474
Получил(а) "Спасибо": 3,201
Нарушения: 0/0 (0)
Репутация: 903053

По умолчанию Re: "Тупая" железяка

Цитата:
Сообщение от HappySoftX Посмотреть сообщение
То есть тебе надо вытащить строки в которых есть вхождение определенного одного слова и сохранить эти строки в файл?

Или тебе надо вытащить строки в которых есть вхождение любого слова из заданного списка?
Надо вытащить строки в которых есть вхождение любого слова из заданного списка. Причем в заданном списке порядка 100-120 тыс. слов.

Вот так с grep работает:
grep slovo allkey.txt >> rez.csv;
grep slovo2 allkey.txt >> rez.csv;

grep -f pat.txt allkey.txt >> rez.csv
В pat.txt список искомых слов.
Но при 100 тыс. слов для поиска все занимает сутки.
Нужно быстрее.
vastmanager на форуме   Ответить с цитированием
Старый 01.07.2024, 01:49   #207
HappySoftX
Senior Member
Доцент
 
Аватар для HappySoftX
 
Регистрация: 23.06.2020
Сообщений: 490
Сказал(а) спасибо: 1,926
Получил(а) "Спасибо": 2,516
Нарушения: 0/0 (0)
Репутация: 80425

Thread Starter Re: "Тупая" железяка

grep slovo allkey.txt >> rez.csv

поиск одного слова сколько по времени занимает?
HappySoftX вне форума   Ответить с цитированием
Старый 01.07.2024, 02:02   #208
vastmanager
ОПТимизирую оптом.
Академик
 
Аватар для vastmanager
 
Регистрация: 26.06.2020
Сообщений: 1,182
Сказал(а) спасибо: 1,474
Получил(а) "Спасибо": 3,201
Нарушения: 0/0 (0)
Репутация: 903053

По умолчанию Re: "Тупая" железяка

Цитата:
Сообщение от HappySoftX Посмотреть сообщение
grep slovo allkey.txt >> rez.csv

поиск одного слова сколько по времени занимает?
На хорошей машине менее 1 сек. Я пачками по 10-20 слов делал, тоже быстро.
И еще на уник. походу сортировал. Несколько секунд все занимало.
Теперь по 100 тыс. слов надо. На уник. не нужна уже сортировка.

За сутки в один поток если, 20 тыс. слов обработать может. Я в пять потоков запускаю.
Собственно вопрос - стоит ли в базу загружать список и искать уже в базе. Будет ли это быстрее?
vastmanager на форуме   Ответить с цитированием
Старый 01.07.2024, 12:02   #209
burunduk
попробуй отними
Профессор
 
Аватар для burunduk
 
Регистрация: 14.07.2020
Сообщений: 905
Сказал(а) спасибо: 1,099
Получил(а) "Спасибо": 2,159
Нарушения: 0/0 (0)
Репутация: 757769

По умолчанию Re: "Тупая" железяка

Цитата:
Сообщение от HappySoftX Посмотреть сообщение
. Ты так уверено говорил про регулярки, что я аж засомневался. Самому стало интересно, может там нанотехнологии и работают они на другом уровне. Но нет, чуда не произошло 18 секунд.
а откуда оно возникнет если ты даже регулярку некорректно записал?
сравни
Цитата:
Сообщение от HappySoftX Посмотреть сообщение
(^|\\s)((8|\\+7)[\\- ]?)?(\\(?\\d{3}\\)?[\\- ]?)?[\\d\\- ]{10}(\\s|$)
и
PHP код:
(^|\s)((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{10}(\s|$) 
более того ты опять применяешь регулярку построчно, попробуй работать сразу со столбцом что то типа SELECT regexp_count
или
Splitter.SplitTextByCharacterTransition({"0".."9"} , (c) => not List.Contains({"0".."9"}, c))

P.S. попробовал твой код, он дольше отрабатывает чем просто подсчёт цифр в строке
burunduk вне форума   Ответить с цитированием
Старый 01.07.2024, 12:28   #210
burunduk
попробуй отними
Профессор
 
Аватар для burunduk
 
Регистрация: 14.07.2020
Сообщений: 905
Сказал(а) спасибо: 1,099
Получил(а) "Спасибо": 2,159
Нарушения: 0/0 (0)
Репутация: 757769

По умолчанию Re: "Тупая" железяка

Цитата:
Сообщение от vastmanager Посмотреть сообщение
Собственно вопрос - стоит ли в базу загружать список и искать уже в базе. Будет ли это быстрее?
будет быстрее только если поле с текстом индексируемое (не во всех базах возможно тип поля длинный текст сделать индексируемым)

если задача по выгрузке ключей постоянная то можно даже в excel реализовать, основные тормоза это загрузить всё в модель данных и при новом открытии файлов загрузка модели данных
следующий тормоз это выгрузка результата на лист (и здесь будет ограничение 1млн записей)
сохранение результата в файл достаточно быстро

именно по причине необходимости множественной выгрузки проще сразу с бд работать
burunduk вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отзывы: литературный конкурс "Первый 2024-ый, святочный"" valergapeev Курилка 113 02.02.2024 20:50
Литературный конкурс "Первый 2024-ый, святочный"" valergapeev Курилка 11 23.01.2024 21:42
Мегафон, тарифы "зеленый" и "звони легко", безлимит от 60 рублей в месяц dobroset Биржа услуг 16 19.03.2023 23:49
Ну и зачем сделали все подразделы "Не про работу" только для активных пользователей? Кокетыч О форуме 113 23.07.2020 17:28


Текущее время: 17:45. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc. Перевод: zCarot