Size: a a a

DBA - русскоговорящее сообщество

2021 January 25

ЯТ

Я Акула Туруруру... in DBA - русскоговорящее сообщество
Yaroslav Schekin
А другие требования какие? К примеру, SQL нужен?  А многопользовательский доступ? А ACID?
Потому что иначе можно хранить вообще где и как угодно...
нет, других требований нет
источник

ЯТ

Я Акула Туруруру... in DBA - русскоговорящее сообщество
чтоб не тормозила вставка и дубликаты тихо игнорились
источник

ЯТ

Я Акула Туруруру... in DBA - русскоговорящее сообщество
по сути и всё
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
Я Акула Туруруру
нет, других требований нет
/dev/null is fine, then? ;)
В самом деле, тут подойдёт всё, что угодно (а если не нужно ничего из перечисленного, то любая RDBMS (SQL СУБД) — "ресурсы на ветер").
источник

ЯТ

Я Акула Туруруру... in DBA - русскоговорящее сообщество
Adv0cat
поидее в тот же постгрес если вы будете делать только инсерты, и айди у вас будут уникальными, можно повесить праймари кей на эти айдишники и они не перезапишутся, для апдейта нужно будет специально делать апдейт, а не инсерт))
Не перезапишутся, но и не вставятся, а вставлять я планирую большими порциями за раз
источник

ЯТ

Я Акула Туруруру... in DBA - русскоговорящее сообщество
Можно через merge это делать, но вот какие индексы для этого нужны - такой как я описал подойдёт или нет?)
источник

A

Adv0cat in DBA - русскоговорящее сообщество
Я Акула Туруруру
Не перезапишутся, но и не вставятся, а вставлять я планирую большими порциями за раз
ну так-то если будет 1 инсерт, 1 значение, то и запишется все как надо только нужное)))
источник

A

Adv0cat in DBA - русскоговорящее сообщество
@wilkolak гляньте https://redis.io/commands/setnx по-моему то, что вам нужно 😊
источник

ЯТ

Я Акула Туруруру... in DBA - русскоговорящее сообщество
Adv0cat
@wilkolak гляньте https://redis.io/commands/setnx по-моему то, что вам нужно 😊
Так редис же работает только если вся БД влазит в память. А у меня столько памяти нет
источник

ЯТ

Я Акула Туруруру... in DBA - русскоговорящее сообщество
Хотя можно попробовать ledis с бэкендом RocksDB
источник

SC

Serega Carbon in DBA - русскоговорящее сообщество
Я Акула Туруруру
Так редис же работает только если вся БД влазит в память. А у меня столько памяти нет
рэдис же может на диске хранить данные если ничего не путаю
источник

ЯТ

Я Акула Туруруру... in DBA - русскоговорящее сообщество
Serega Carbon
рэдис же может на диске хранить данные если ничего не путаю
Ну насколько я понимаю, он только бэкапы на диск делает
источник

A

Adv0cat in DBA - русскоговорящее сообщество
Я Акула Туруруру
Так редис же работает только если вся БД влазит в память. А у меня столько памяти нет
Ну кстати может и есть, можно и посчитать. ну а так, я до конца не понял, вам нужно просто иногда что-то добавлять и иногда что-то читать, но важно, чтобы дупликаты не изменялись, и можно было вставить 6 лярдов кей велью?
Если да, то любая бд вам подойдет, как сказал Ярослав, постгрес, мускул, что угодно, просто запрос правильно написать и может даже не делать пачкой, а по одному значению, но в несколько потоков, типа по потоку на ядро 😏
источник

ЯТ

Я Акула Туруруру... in DBA - русскоговорящее сообщество
Adv0cat
Ну кстати может и есть, можно и посчитать. ну а так, я до конца не понял, вам нужно просто иногда что-то добавлять и иногда что-то читать, но важно, чтобы дупликаты не изменялись, и можно было вставить 6 лярдов кей велью?
Если да, то любая бд вам подойдет, как сказал Ярослав, постгрес, мускул, что угодно, просто запрос правильно написать и может даже не делать пачкой, а по одному значению, но в несколько потоков, типа по потоку на ядро 😏
Окей, спасибо, буду пробовать с кассандрой и постгресом, если по скорости будет печально, то ледис ещё потестирую
источник

A

Adv0cat in DBA - русскоговорящее сообщество
Я Акула Туруруру
Окей, спасибо, буду пробовать с кассандрой и постгресом, если по скорости будет печально, то ледис ещё потестирую
если скорость, то лучше сразу scylladb вместо касандры, апи тоже самое, но быстрее в 10 раз на ровном месте 😊
источник

ЯТ

Я Акула Туруруру... in DBA - русскоговорящее сообщество
Adv0cat
если скорость, то лучше сразу scylladb вместо касандры, апи тоже самое, но быстрее в 10 раз на ровном месте 😊
О, круто, спасибо.
источник
2021 January 26

ЯТ

Я Акула Туруруру... in DBA - русскоговорящее сообщество
В scylladb что-то не работает этот лайфхак: https://stackoverflow.com/questions/39360362/select-string-literal-in-cassandra-cql

line 1:28 no viable alternative at input '('


выходит, синтаксис там не полностью совместимый?
источник

K

Konstantin in DBA - русскоговорящее сообщество
Народ, подскажите плз, в постгресе возможно вернуть значение из анонимного блока кода?
DO
$$
   BEGIN
       IF EXISTS
           (SELECT 1
            FROM ids
            WHERE table_name = 'widget'
              AND field_name = 'widgetid'
           )
       THEN
           UPDATE ids
           SET nextid = nextid + 1
           WHERE table_name = 'widget'
             AND field_name = 'widgetid'
           RETURNING nextid;
       END IF;
   END
$$ LANGUAGE plpgsql;

Сейчас падает с ошибкой
ERROR: query has no destination for result data
источник

IZ

Ilia Zviagin in DBA - русскоговорящее сообщество
Konstantin
Народ, подскажите плз, в постгресе возможно вернуть значение из анонимного блока кода?
DO
$$
   BEGIN
       IF EXISTS
           (SELECT 1
            FROM ids
            WHERE table_name = 'widget'
              AND field_name = 'widgetid'
           )
       THEN
           UPDATE ids
           SET nextid = nextid + 1
           WHERE table_name = 'widget'
             AND field_name = 'widgetid'
           RETURNING nextid;
       END IF;
   END
$$ LANGUAGE plpgsql;

Сейчас падает с ошибкой
ERROR: query has no destination for result data
Нельзя, надо отрыть запрос как курсор, и вернуть ссылку на него (курсор).
А потом на клиенте его фетчить.

Некоторые клиенты умеют делать это автоматом. SQLPlus нет
источник

YS

Yaroslav Schekin in DBA - русскоговорящее сообщество
Konstantin
Народ, подскажите плз, в постгресе возможно вернуть значение из анонимного блока кода?
DO
$$
   BEGIN
       IF EXISTS
           (SELECT 1
            FROM ids
            WHERE table_name = 'widget'
              AND field_name = 'widgetid'
           )
       THEN
           UPDATE ids
           SET nextid = nextid + 1
           WHERE table_name = 'widget'
             AND field_name = 'widgetid'
           RETURNING nextid;
       END IF;
   END
$$ LANGUAGE plpgsql;

Сейчас падает с ошибкой
ERROR: query has no destination for result data
Нет, нельзя (есть только hack с refcursor).
источник