@pgsql

Страница 458 из 1062
Ilya
05.09.2017
22:38:56
да я понял что редиректов в пределах пары тысяч.

Dmitrii
05.09.2017
22:43:00
P.S. @aekorotkov, вы делаете крутую работу! Жаль, что этот вариант не совсем подходит ?

Ilya
05.09.2017
22:51:50
и да я понял почему патч не приняли. это не индекс в его нормальном понимании.

Dmitry
05.09.2017
23:11:35
Я бы смотрел в сторону разделения роута на фикс и регулярку, например /page/ и (\d+), индекс по строке, нахождение по индексу подходящих роутов с наилучшим совпадением и потом уже регулярка без всяких индексов

Google
Mike Chuguniy
06.09.2017
03:13:37
@pasha_golub, @Komzpa алярмо! Хулиганы пакости читать принуждапютЪ!

Vova
06.09.2017
03:33:41
та они всегда ночью, ближе к утру пакостят ))

Anton [Mgn, az09@osm]
06.09.2017
04:30:09
нужен админ из зауралья

Viktor
06.09.2017
04:43:27
можете меня выбрать админом :)

Denis
06.09.2017
04:44:58
А ты насколько с востока?

Viktor
06.09.2017
04:45:46
С Хабаровска

Denis
06.09.2017
04:47:02
И я тоже)) Го пить пиво?

Viktor
06.09.2017
04:48:43
о, комрады местные

го как-нибудь, почему нет, ты на чем пишешь?

Denis
06.09.2017
04:51:51
В основном на plpgsql. Но могу и питон, шарп кор и 1С (но про последнее стараюсь не распространяться)

Anton [Mgn, az09@osm]
06.09.2017
04:56:03
ого, уже пошла пропаганда не только алкоголя но и более тяжелых веществ ))

Denis
06.09.2017
05:29:52
@priroda1vip ты бот?

Аггей
06.09.2017
05:57:36
@priroda1vip ты бот?
Эта борьба бесконечна. У ботов - у них как у воров - ты ему - ты бот, а он в отказ не может )

Google
Denis
06.09.2017
06:00:21
Эта борьба бесконечна. У ботов - у них как у воров - ты ему - ты бот, а он в отказ не может )
Тут все проще - он не ответил, значит бот и его может сразу банить один из админов

Николай
06.09.2017
06:01:04
Подскажите запрос для частого юзкейза (имхо). Нужно выбрать последнюю книгу для каждого автора, например. Как это делается?

Vitality
06.09.2017
06:03:16
select first /* таблицы условия */ order by create_date desc

Подскажите запрос для частого юзкейза (имхо). Нужно выбрать последнюю книгу для каждого автора, например. Как это делается?

сначала отсортирует по убыванию в плане даты, то есть найдет по сути самую новую книгу, а после выберет только первую

Аггей
06.09.2017
06:04:23
Так ему же по каждому автору )

Vitality
06.09.2017
06:07:03
for select author_id /* условия */ do запрос

но не уверен в конструкции

Vitality
06.09.2017
06:08:30
ну или так..)

Anton [Mgn, az09@osm]
06.09.2017
06:08:53
group by не?

Denis
06.09.2017
06:15:27
create table books(authorid integer, bookid integer, pubdate date); insert into books values (1,1,'2017-01-02'); insert into books values (1,1,'2010-01-01'); insert into books values (1,2,'2017-01-02'); insert into books values (2,3,'2017-10-03'); select distinct authorid, first_value(bookid) over(partition by authorid order by pubdate desc, bookid) from books;

Николай
06.09.2017
06:17:21
Сколько вариантов) А вот этот самый простой для меня https://stackoverflow.com/a/28085821/293962 Он не очень в плане произвоидтельности?

Denis
06.09.2017
06:19:29
Сколько вариантов) А вот этот самый простой для меня https://stackoverflow.com/a/28085821/293962 Он не очень в плане произвоидтельности?
Он не подходит, вы получаете не самую последнюю книгу автора, а последнюю дату для каждой книги автора

Fike
06.09.2017
08:18:48
@priroda1vip ты бот?
это тот самый наркоман-аккаунт, который здесь уже рекламировали несколько раз, баньте его

Dmitrii
06.09.2017
11:28:35
Очень похоже на работу для https://01.org/hyperscan https://github.com/01org/hyperscan https://m.habrahabr.ru/post/275507/
Но опять же, этого нету "из коробки" в базе. Надо биндингами обмазываться и экстеншен пилить

Yura
06.09.2017
11:29:13
Но опять же, этого нету "из коробки" в базе. Надо биндингами обмазываться и экстеншен пилить
Я думаю, это нужно делать в самом приложении, а не в базе (да простят меня гуру постгресса).

Dmitrii
06.09.2017
11:30:15
Я думаю, это нужно делать в самом приложении, а не в базе (да простят меня гуру постгресса).
Не совсем ясно как вы решили решать такую задачу в приложении.

Google
Yura
06.09.2017
11:30:56
Т.е. регулярки можно хранить в базе, но вытягивать их в приложение и компилировать hyperscan выражение. Да, нужно будет обновлять при изменении в базе.

Fike
06.09.2017
11:31:07
да сделайте просто таблицу с кэшем урлов

Yura
06.09.2017
11:31:44
Человек на хабрахабре, по-моему, решал очень похожую задачу.

Вы прочитали статью с хабра?

Dmitrii
06.09.2017
11:32:03
Поверхностно

Я пробежался, понял что это либа, и да что она компилит и на входтекст принимает

Но без допила мою задачу это не решает (условием было просто сделать запрос в базу)

Yura
06.09.2017
11:33:15
Если вы пляшете от условия "нам, блин, обязательно нужно делать запрос в базу, иначе нам не заплатят", то жуйте кактус.

Dmitrii
06.09.2017
11:33:43
В текущих реалиях можно в целоми на Seq Scan жить, никто не помрет

Но

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

Yura
06.09.2017
11:34:29
(прошу прощения за грубость. Накрутил себя по другому поводу, и не остыл ещё).

Fike
06.09.2017
11:34:56
У вас есть, грубо говоря, горячие урлы, по которым реально человек придет и редирект должен сработать, и холодные урлы, по которым нужны редиректы, но на которые на самом деле никто не придет или придет раз в месяц. Для первого можно сделать просто key-value lookup, второй пусть идет другим путем и ждет свои N мс.

Dmitrii
06.09.2017
11:35:09
Типа делается запрос через "прокси" если матчится регексп то грубо говоря пользователю накидывается идентификатор к урлу и редиректится

А если регекспа нет то просто прозрачное проксироваие а урл уходит в таблицу "pending_urls_for_approvals"

Из которых потом ренерят регекспы на основе того, каких урлов больше в базе к которым нету регулярок

Вот там бы реально патч Короткова пригодился серьезно так

Ilya
06.09.2017
11:37:30
яб говноскрипт на ноде напесал, который реги скомпиленые кеширует и успокоился. + ключ в мемкеш на тему обновления списочка.... работы на пару часов

Google
Ilya
06.09.2017
11:38:29
ага. и бд положить можно. в целом. на 404 хорошо ддосить эти ваши цмс

(:

Dmitrii
06.09.2017
11:38:38
Счет будет идти на миллионы урлов. Там вообще не понятно как решать задачу

Fike
06.09.2017
11:39:48
Самое время начать давать фидбэк продуктовому отделу по поводу технических сложностей

Darafei
06.09.2017
11:40:21
делайте не регулярные выражения, а какие-нибудь другие

Dmitrii
06.09.2017
11:40:56
Какие?

Darafei
06.09.2017
11:41:47
токенизируйте и по fts ищите ближайшее

Ilya
06.09.2017
11:41:59
Какие?
тебе ж сказали выше что это можно категоризовать по началу урла. /article/* /about/* итд

таким образом уменьшив перебор

сильно уменьшив кстати

Dmitrii
06.09.2017
11:43:08
Т.е. вот лежит у меня в базе миллион записей условных регулярок. Я делаю запрос https://entrypoint.com/proxy?url=https://google.com а на выходе должен получить 301 вида https://google.com/?affiliate_id=12345 если запись найдена для домена google.com

Ilya
06.09.2017
11:43:12
можно даже этот начальный кусок из рег выкусывать и требование редакторам на реги выставить под это дело

Dmitrii
06.09.2017
11:43:23
Проблема в том, что в том проекте все урлы не наши будут

Ilya
06.09.2017
11:43:52
мол никакних рег типа ^/(\d+)

Dmitrii
06.09.2017
11:44:36
Пример из реальной жизни. Есть магазин, ru.asus.com, de.asus.com и т.д.

Вот по сути это регулярка на ^(\w+)\.asus.com$

Если домен ru то один id надо ставить, если de то другой.

Таких примеров неограниченное кол-во ?

Ilya
06.09.2017
11:46:33
ну тогда страдай

Dmitrii
06.09.2017
11:46:51
Типа для немецкого стора одна партнерская сеть а для российского другая (маркировка юзеров)

Google
Dmitrii
06.09.2017
11:47:00
Илья, ваши советы такие полезные!

Darafei
06.09.2017
11:47:20
это можно и иначе сделать, посплитать по точке, собрать массив и проверять вхождения в массив

Ilya
06.09.2017
11:48:28
ну в общем задав на реги ограничения хеш можно придумать

Fike
06.09.2017
11:48:31
Простите, если я сильно далеко забегаю, но у меня ощущение, что продуктовый отдел и вправду не знает, что с технической стороны все очень плохо, и, возможно, надо спасать хотя бы готовящийся продукт.

Потому что есть ощущение, что они не знают/неверно оценивают влияние всего вот этого вот

Dmitrii
06.09.2017
11:49:26
Простите, если я сильно далеко забегаю, но у меня ощущение, что продуктовый отдел и вправду не знает, что с технической стороны все очень плохо, и, возможно, надо спасать хотя бы готовящийся продукт.
Это вопрос реализации. У нас есть другие варианты без этого. Но если сделать через боль как я описываю, получится большое конкурентное приемущество на рынке.

Darafei
06.09.2017
11:49:36
Есть еще сторы которые делят страны в path части
сплитай по слешу, точке, вопросу, амперсанду и равно

и ищи в токнах язык, например

Dmitrii
06.09.2017
11:50:15
сплитай по слешу, точке, вопросу, амперсанду и равно
И как мне потом среди этой кучи мусора разобрать где нужные данные а где нет?)

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

Darafei
06.09.2017
12:08:06
а кто ещё не обновился на Postgres 10 и хочет, чтобы обновление прошло менее болезненно, чем у нас, голосуйте за тикет про валидацию синтаксиса Set Returning Functions в DataGrip :) https://youtrack.jetbrains.com/issue/DBE-5117

Yura
06.09.2017
12:08:08
Попробуйте hyperscan в приложении, как это описано в статье на хабре.

Sergey
06.09.2017
12:10:58
Попробуйте hyperscan в приложении, как это описано в статье на хабре.
В статье написано что перекомпиляция долгая. При постоянно добавляющихся регэкспах это может быть неприемлимо.

Yura
06.09.2017
12:11:17
"постоянно добавляющиеся" - это 10 раз в секунду?

Denis
06.09.2017
12:24:56
Если я правильно понял, по производительности @korotovskii и nginx устраивает, просто поддержание конфига в n-тысяч строк вызывает боль. Поэтому он и решил проверить вариант "а что это если все положить в базу и в приложении все удобно админить". Если все так, то hyperscan для него ещё больший головняк, чем конфиг nginx

Страница 458 из 1062