LINUX.ORG.RU

Реализация быстрой проверки строки из файла в несколько гб

 ,


1

2

Обычный текстовый файл со строками, каким образом лучше будет его спарсить (в бд например), что бы без большой нагрузки проверять постоянно наличие в этом файле строки?

что бы без большой нагрузки проверять постоянно наличие в этом файле строки

Файл-то пополняется что ли? Строка одна и та же, или меняется?

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Возможно пока бесконечное количество вариантов ответов.

ТС не задал сформулированный вопрос для написания алгоритма.

HIS
()
Ответ на: комментарий от MKuznetsov

По вашему варианту есть лишнее действие.

Можно в БД искать сразу строки и не тратить время на хеши.

HIS
()
Ответ на: комментарий от no-such-file

строки разные, генерируются по несколько штук в секунду и нужно чекать, пока смотрю в сторону pickle и разбивки их на части

noname_user ★★★
() автор топика
Ответ на: комментарий от MKuznetsov

Но пока ТС не сформулировал у себя в голове, что на самом деле нужно - это всё пустая болтовня.

HIS
()
Ответ на: комментарий от HIS

1.Имеем 1 файл 2 гб со строками

2.Генерируем рандомные строки по несколько штук в секунду

  1. В цикле при генерации рандомной строки, чекнуть есть ли она в файле
noname_user ★★★
() автор топика
Ответ на: комментарий от noname_user

Ты можешь не лить мусор, а написать нормально ТЗ?

Я уверен, что решение прейдёт моментально, как только ты нормально опишешь задание.

В СУБД разных есть нормально оптимизированные поиски строк.

HIS
()
Последнее исправление: HIS (всего исправлений: 2)
Ответ на: комментарий от noname_user

Понятно…

За тебя напишу нормально формулировку.

У тебя есть куча строк и тебе нужно найти есть ли точно такая строка как ты хочешь найти.

Правильно я понял?

HIS
()
Ответ на: комментарий от HIS

да, при этом не нагрузить сервер до пика

так как эта операция проверки должна повторятся очень много раз долгое время

noname_user ★★★
() автор топика
Последнее исправление: noname_user (всего исправлений: 1)
Ответ на: комментарий от noname_user

так как эта операция проверки должна повторятся очень много раз долгое время

Я просил описать ТЗ.

Что ты за ересь опять пишешь.

HIS
()
Ответ на: комментарий от noname_user

Имеем 1 файл 2 гб со строками

Ещё раз, файл меняется (добавляются строки, удаляются строки, просто файл заменяется на другой)?

no-such-file ★★★★★
()
Ответ на: комментарий от noname_user

Но в голове логика есть хоть?

Опиши что ты делаешь и для чего. Есть вариант что выплывет, что ты не с того конца подошёл.

И это всё можно сделать совершенно не так и проще.

У меня были десятки вариантов в моей практике, что я находил как сделать в сотни раз проще чем мне казалось в начале.

HIS
()
Ответ на: комментарий от noname_user

Тогда тебе нужно сделать полнотекстовый индекс и по нему проверять. Впрочем, опять же, подробности с тебя трясут не зря. Если тебе нужно проверять не произвольный текст, а именно построчно, то можно обойтись простым построчным индексом.

В общем, напиши в чём задача, а не в чём вопрос.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от no-such-file

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

noname_user ★★★
() автор топика
Ответ на: комментарий от no-such-file

Мне кажется ТС не понимает что ему нужно сделать.

HIS
()
Ответ на: комментарий от noname_user

Вопрос на «засыпку». Зачем тебе более одного раза проверять существование какого либо слова в файле, если он (файл) не меняется?

HIS
()
Ответ на: комментарий от HIS

Пан генерирует строки в своём питоне. Для каждой генерированной строки он хочет проверить, есть ли она в статичном файле.

slaykovsky ★★★
()
Ответ на: комментарий от slaykovsky

А зачем это всё?

Если он не доверяет этому питону - может его и юзать не нужно?

HIS
()
Ответ на: комментарий от HIS

Причём тут компилятор, если я генерирую нужную мне строку по нужному алгоритму и чекаю ее в файле с похожими миллионами строк ?

noname_user ★★★
() автор топика
Ответ на: комментарий от noname_user

И дополнительно. Вообще что и зачем там проверять если файл сгенерирован твоей прогой.

В твоих высказываниях не сходится буквально всё.

HIS
()
Ответ на: комментарий от slaykovsky

Пан я как вижу хочет чтобы за него придумали что он хочет придумать.

Мне уже почти забавно.

HIS
()
Ответ на: комментарий от peregrine

Да всё ему рассказали уже. Он просто сам пока не понял что ему нужно.

HIS
()
Ответ на: комментарий от peregrine

Думаю за то время пока я из него «клещами» вытаскиваю инфу по его вопросу, уже запилил бы весь проект целиком, если бы было понятно что нужно сделать.

HIS
()
Ответ на: комментарий от HIS

Неповторимый ЛОРовский флоу ответов на вопросы. Выбиваешь из топикстартера ТЗ и играешь в вангу, еле сдерживаешься, чтобы не возгораться и не сказать ТСу всё, что о нём думаешь. Затем торг, депрессия и принятие.

WitcherGeralt ★★
()
Ответ на: комментарий от noname_user

Не изобретай велосипед и не трахай людям мозги.

In [1]: import uuid
In [2]: print(uuid.uuid4().hex)
Out[2]:'f0c71a561d8e4c05922013c571bc20ac'
In [3]: import secrets
In [4]: print(secrets.token_urlsafe(256))
Out[4]: 'wrIT9CZQQIkq227FZSwk07RxATPtknjBQhS29TmPxqvE3abH8eYj9pIZxtPmRUjqK2i2_LvYYpzZyTZFmjjstEMvm8U0y4cu_69Lj4OFOVN3vXdTdTKnbdxtpzJwOZ3HQA_oGX0n45vZSWfUpw5rTvpGPcIYoqP_FiqTQp_Ted4pEWBvvza7_yl4w6-H58B5RkHpLDlvTUEdiIr3Ix1mRHuypYJ8auHxGAyvL4HyK7qq8JoddA-NAWRwYfteCtf7o4u-qendPW17qysC2Z0o69JBIZR1-bHFUgk9cX31-0Fld6HfRQ0_Qbt5gnDfR-RU9adupTtAI1Iv90uEx487Vw'

— Солнце раньше потухнет, чем это у тебя повторится.

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 4)
Ответ на: комментарий от WitcherGeralt

Зачем так сложно.

Обычного uuid хватит. И Солнце пару триллионов раз погаснуть успеет с вариантом типа: 123e4567-e89b-12d3-a456-426655440000

HIS
()
Последнее исправление: HIS (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.