Перейти к публикации
  • Сейчас на странице   Всего пользователей: 4   (0 пользователей, 4 гостя)

Rooster

Программирование[9]

Перепись  

260 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

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

 

Так и ты держишь этот буфер текущий, хэш мапу, закидываешь туда по ключу заменяя, и выкидываешь в базу по таймеру очищая буффер?

Поток один?

Инстанс один?


ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

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

 

Поделиться сообщением


Ссылка на сообщение
Kant написал Только что:

кто-нибудь объясните мне что значит "имя ключ число время"

мой русский таких фраз не позволяет :pepehands:

А-1,  B-2

А Б - имена, или ключи.

1,2 число отражающее время. как timestamp Естественно в псевдокоде все сокращается и вместо того чтобы писать

[Kant=1594990661,Index=1594990631]

Я по фасту упростил.

Поделиться сообщением


Ссылка на сообщение

а где пейлоад тогда сука для наглядности

минус за постановку задачи


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
Kant написал 2 минуты назад:

кто-нибудь объясните мне что значит "имя ключ число время"

мой русский таких фраз не позволяет без знаков препинания :pepehands:

ну типа

ключ это имя пользователя

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

 

Зачем ты документацию читаешь? Смотри код и все станет понятно


ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

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

 

Поделиться сообщением


Ссылка на сообщение
Kant написал Только что:

а где пейлоад тогда сука для наглядности

минус за постановку задачи

Время тоже может быть пейлоадом. 

GoldRobot написал 3 минуты назад:

Поток один?

Инстанс один?

Чувак, причем тут это.

Поделиться сообщением


Ссылка на сообщение

Так непонятно пока в чем сложность просто

Может у тебя там три десятка инстансов по всему миру которые должны в одну базу это все сливать, а батчами ты назваешь сегменты табличные :honkler:


ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

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

 

Поделиться сообщением


Ссылка на сообщение

Пятница, вечер, а вы бд обсуждаете. Го деградировать, я создал

image.png.c4392a4298b029b903527d75dbcac619.png

IMG_20200717_180319_579.jpg

Izuver и GoldRobot понравилось это

Поделиться сообщением


Ссылка на сообщение

Грубо говоря, допустим у нас есть таблица, юзер продоты и его самый свежий самый залайканый пост.

 

И мы сторонний сервис и не дружим с челами типо кантов дефрелей.

Мы берем фетчим форум постранично/потопиково собирая инфу в коллекцию.

 

Собрали батч со страницы и кидаем его в бд.

INSERT INTO likedrochery (user,time,like_count,msg_id) VALUES
(Кант,1,4,44),
(GoldRobot,2,2,45),
(Index,1,3,46),
...
...
(Defrel,1,0,49),
ON DUPLICATE (user) DO UPDATE SET msg_id = excluded.msg_id WHERE excluded.like_count >= like_count AND excluded.time > time;

И все заебись работает. Апсерт с обновлением на основе имеющихся данных. Если лайков больше или время свежее при тех же лайках.

 

Но как только появляется хуйня

(Кант,1,7,49),
(Index,1,7,50),
(Кант,0,9,51),

синтаксис SQL ругается, мол не может эксклюдить больше чем одну запись сорян.

GoldRobot написал 7 минут назад:

Так непонятно пока в чем сложность просто

Может у тебя там три десятка инстансов по всему миру которые должны в одну базу это все сливать, а батчами ты назваешь сегменты табличные :honkler:

Чувак батч это набор данных на которых формируется insert/upsert кверя

Поделиться сообщением


Ссылка на сообщение
declare @values table (UserName varchar(32), LastPost int)

insert into @values
values ('А', 1), ('Б', 1), ('В', 1), ('Б', 2), ('В', 2), ('Г', 1), ('Б', 3), ('А', 2), ('Г', 2), ('А', 3)

select *, rank() over (partition by v.UserName order by v.LastPost) rnk
from @values v
--group by rnk
order by rnk, v.UserName, v.LastPost

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

GoldRobot и UglyBastard понравилось это

Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

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

И я чето не догоняю как может быть такое

Index написал 3 минуты назад:

Если лайков больше или время свежее при тех же лайках

Робот конечно робот, но и он не может в одну и туже наносекунду запостить :hmtroll:У тебя так и так получается просто последний пост. Может ты иммел в виду что пост не старше Х времени?


ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

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

 

Поделиться сообщением


Ссылка на сообщение
(изменено)
Kant написал 1 час назад:

declare @values table (UserName varchar(32), LastPost int)

insert into @values
values ('А', 1), ('Б', 1), ('В', 1), ('Б', 2), ('В', 2), ('Г', 1), ('Б', 3), ('А', 2), ('Г', 2), ('А', 3)

select *, rank() over (partition by v.UserName order by v.LastPost) rnk
from @values v
--group by rnk
order by rnk, v.UserName, v.LastPost

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

Зачем мне это на слое БД делать? :avtorklif:

У меня ETL процесс.

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

 

В моей конкретно задаче у меня есть стрим стейтов юзеров летящих в кафку и мне надо в таблице держать самый актуальный стейт юзера. 

Мне не надо все в бд класть, там терабайты данных в день. Нахуй мне все блять собирать а потом оконные функции делать.

У меня не такая задача блять.


Изменено пользователем Index

Поделиться сообщением


Ссылка на сообщение
Index написал 3 минуты назад:
Kant написал 1 час назад:


declare @values table (UserName varchar(32), LastPost int)

insert into @values
values ('А', 1), ('Б', 1), ('В', 1), ('Б', 2), ('В', 2), ('Г', 1), ('Б', 3), ('А', 2), ('Г', 2), ('А', 3)

select *, rank() over (partition by v.UserName order by v.LastPost) rnk
from @values v
--group by rnk
order by rnk, v.UserName, v.LastPost

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

Показать больше  

Зачем мне это на слое БД делать? :avtorklif:

У меня ETL процесс.

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

во 2х если что-то можно без особого гемора в одну строчку на уровне бд разрешить - то почему нет


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
GoldRobot написал 1 час назад:

Робот конечно робот, но и он не может в одну и туже наносекунду запостить :hmtroll:У тебя так и так получается просто последний пост. Может ты иммел в виду что пост не старше Х времени?

На 50-й странице у тебя пост с 5ю лайками.

На 60-й странице пост с 5-ю лайками.

Нужно обновить ид  поста. вот и все.

Поделиться сообщением


Ссылка на сообщение

когда я писал пост, ты ничего не говорил про сторонние сервисы

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

 

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


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
Just.Doit написал 4 минуты назад:
Index написал 8 минут назад:
Kant написал 1 час назад:




declare @values table (UserName varchar(32), LastPost int)

insert into @values
values ('А', 1), ('Б', 1), ('В', 1), ('Б', 2), ('В', 2), ('Г', 1), ('Б', 3), ('А', 2), ('Г', 2), ('А', 3)

select *, rank() over (partition by v.UserName order by v.LastPost) rnk
from @values v
--group by rnk
order by rnk, v.UserName, v.LastPost

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

Показать больше  

Зачем мне это на слое БД делать? :avtorklif:

У меня ETL процесс.

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

во 2х если что-то можно без особого гемора в одну строчку на уровне бд разрешить - то почему нет

Потому что это и есть ключевая проблема.

SQL не хендлит дупликаты в multiline values.

А вставлять по одному очень медленно.

Нужно нагрузить вставку эффективно, для этого нужно нарезать на большие батчи.

Поделиться сообщением


Ссылка на сообщение
Index написал 9 минут назад:

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

 

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

Index написал 4 минуты назад:

На 50-й странице у тебя пост с 5ю лайками.

На 60-й странице пост с 5-ю лайками.

Нужно обновить ид  поста. вот и все.

Ты типо оптимизировал так что бы не обновлять одну колонку лишний раз? :hmtroll::hmtroll::hmtroll::hmtroll::hmtroll::hmtroll::hmtroll::hmtroll:


ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

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

 

Поделиться сообщением


Ссылка на сообщение
Kant написал 2 минуты назад:

когда я писал пост, ты ничего не говорил про сторонние сервисы

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

 

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

Сытый конному не пеший. У тебя мышление тунельное и видно что ты не работал с ETL.  

Ты значения слова терабайты данных в день не понимаешь?

Поделиться сообщением


Ссылка на сообщение
GoldRobot написал Только что:
Index написал 11 минут назад:

 

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

В постресе временные таблицы вообще в раме вроде распологаются, если не путаю


ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

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

 

Поделиться сообщением


Ссылка на сообщение

А ну если терабайты, то конечно лучше не пихать так как кант

Тока ты об этом ни словом ни духом сразу не сказал

 

Какое ТЗ поставил, такое решение и получил :hmtroll:

Kant понравилось это

ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

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

 

Поделиться сообщением


Ссылка на сообщение
GoldRobot написал Только что:

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

Аааа вот оно что.

Тут есть один НЮАНС

https://www.cockroachlabs.com/docs/stable/temporary-tables.html

По сути считай что нету такой штуки. 

Без ON COMMIT DROP тем более.

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...