
Dmitrii
10.05.2018
16:26:19
А. Кажется да иначе следующий неймспейс не с нуля стартует
От жеж
X = 7 + n / 2574
Y = 1 + (n % 2574) / 99
Z = 1 + n % 99
Все круто кажется и получилось не так сложно. Без рекурсий и прочего. В итоге если не фильтровать то выдается по строке на неймспейс со следующим id, группы отсортированы по возрастанию, 99 отфильтрованы. Беру только первую строку

Google

Dmitrii
10.05.2018
17:13:50
Спасибо!

Roman
10.05.2018
18:49:03
Доброго времени суток. У меня проблема возникла. Кто может советом помочь? В базке выставлено lc_collate=c и ничего с этим поделать не могу. Не получается сделать lower('привет' collate "c.utf-8") что я делаю не так?
У меня вся эта каша в similarity не работает

Evgeniy
10.05.2018
18:54:48
c.utf-8 это вообще законно?
я у себя такой в pg_collation не вижу
и не понимаю что даже ожидается

Aliaksei
10.05.2018
19:04:04
c.ut-8 придумали в дебе и вообще неплохая идея
Мотивация была что как-бы почти везде ожидается C но давно и юникод надо
потому c.utf ведедет себя как С а для UTF при сотртировке игнорирует диактрические знаки и акценты

Darafei
10.05.2018
19:05:33
и на экране правильно меряет ширины двухбайтных букв

Aliaksei
10.05.2018
19:05:34
жаль что пока эта идея не приехала в другие дистрибутивы и софт
именно

Evgeniy
10.05.2018
19:14:35
а чем ucs_basic не так?

Google

Roman
10.05.2018
19:25:40

Aliaksei
10.05.2018
19:26:56
так а че я не так делаю то?
для c.utf нет понятия upper потому что сортировка идет по codepoint, аналогично и в ucs_basic. Upper будет работать только для латиницы

Roman
10.05.2018
19:28:31
Ну даже если опустить lower и upper то все равно симилярити не работает

Aliaksei
10.05.2018
19:46:39
я не знаю что такое similarity в конексте посгреса

Denis
10.05.2018
19:50:46


Artem
10.05.2018
19:53:47
Добрый день
имеется таблица с jsonb.
с нее снимается некая статистика для продажников (что именно я не знаю, не дба)
хоть и размер таблицы совсем крохотный ~ 2гб
запрос идет очень долго, порядка 160 секунд
если посмотреть то он упирается в ресурсы cpu (одно из 16-ти ядер при запросе всегда 100% в юзерспейсе)
имеем следующие настройки
postgres=# show max_parallel_workers_per_gather;
max_parallel_workers_per_gather
---------------------------------
8
(1 row)
postgres=# show force_parallel_mode;
force_parallel_mode
---------------------
on
(1 row)
Вопрос, postgresql распаралеливает seq scan?
QUERY PLAN
-----------------------------------------------------------------------------------------------------------------
Merge Right Join (cost=2038271.72..1336406075.68 rows=88811045675 width=448)
Merge Cond: (boost_invoice.order_id = o.order_id)
CTE invoices
-> Nested Loop (cost=0.01..851707.13 rows=24221200 width=128)
-> Seq Scan on order_atomic_origin orders (cost=0.00..3965.12 rows=242212 width=18)
-> Function Scan on jsonb_array_elements invocies (cost=0.01..1.01 rows=100 width=32)
CTE orders
-> Seq Scan on order_atomic_origin orders_1 (cost=0.00..21525.49 rows=242212 width=356)
-> Sort (cost=558840.68..559143.44 rows=121106 width=96)
Sort Key: boost_invoice.order_id
-> CTE Scan on invoices boost_invoice (cost=0.00..544977.00 rows=121106 width=96)
Filter: (market_type = 'boost'::text)
-> Materialize (cost=606198.43..3174378.31 rows=146666632 width=384)
-> Merge Left Join (cost=606198.43..2807711.73 rows=146666632 width=384)
Merge Cond: (o.order_id = cluster_invoice.order_id)
-> Sort (cost=47357.75..47963.28 rows=242212 width=320)
Sort Key: o.order_id
-> CTE Scan on orders o (cost=0.00..4844.24 rows=242212 width=320)
-> Materialize (cost=558840.68..559446.21 rows=121106 width=96)
-> Sort (cost=558840.68..559143.44 rows=121106 width=96)
Sort Key: cluster_invoice.order_id
-> CTE Scan on invoices cluster_invoice (cost=0.00..544977.00 rows=121106 width=96)
Filter: (market_type = 'cluster'::text)


Roman
10.05.2018
19:57:29

Yaroslav
10.05.2018
20:05:37


Artem
10.05.2018
20:06:20
спасибо

Denis
10.05.2018
20:07:58
Нет.
Почему нет? Начиная с 9.6

Yaroslav
10.05.2018
20:08:25

Denis
10.05.2018
20:08:42
А, ок.

Darafei
10.05.2018
20:08:46
косты надо тюнить, чтобы параллельность включилась

Yaroslav
10.05.2018
20:11:26

Darafei
10.05.2018
20:12:20
ну да, на force он тогда ещё снаружи обернёт всё в "и сделать параллельно", если ничего parallel unsafe нет

Artem
10.05.2018
20:14:15

Aliaksei
10.05.2018
20:21:19

Roman
10.05.2018
20:24:09
как вы понимаете я начинающий и очень плохо понимаю что вообще такое LC = C

Google

Darafei
10.05.2018
20:25:29
потому что в разных алфавитах одни и те же большие буквы соответствуют разным маленьким
C - это такая локаль, в которой правил нет никаких
потому ничего не происходит
зато быстро ничего не происходит

Roman
10.05.2018
20:27:49
ну хорошо, это примерно понятно
просто у меня есть БД в которой как раз C этот
и ничего поделать нельзя
а как мне симилярити то использовать

Aliaksei
10.05.2018
20:29:11
перелить данные в db с корректной collation

Darafei
10.05.2018
20:29:22
"а чего ты ожидала? что вы вдвоём сбежите и будете жить в лесу? он металлический шар, он не может передвигаться, он не хочет жить в лесу, в грязи, в лесу."

Roman
10.05.2018
20:30:10

Aliaksei
10.05.2018
20:31:32

Roman
10.05.2018
20:33:36
вроде бы всё по инструкции, а рузультата 0
в латинице работает естественно мой similarity

Darafei
10.05.2018
20:35:21
а как он не работает не в латинице?

Aliaksei
10.05.2018
20:35:53
никак вестимо :-)

Roman
10.05.2018
20:36:21
например города всего мира на русском

Google

Darafei
10.05.2018
20:36:36
что такое "никак"?

Roman
10.05.2018
20:36:46
и входная строка "минс"
оно должно показать что у Минска 95% к примеру совместимость
похожесть вернее

Darafei
10.05.2018
20:37:49
а, ну так он будет регистрозависимым
и резать юникод по половинкам букв

Roman
10.05.2018
20:38:17
есть подозрение что similarity плевать на регистр

Darafei
10.05.2018
20:38:34
начни с полного совпадения

Roman
10.05.2018
20:38:35
вернее так и есть
минск минск
0
а должно быть 100%
у меня есть БД прод и БД локально
вот на локалке все четко

S
10.05.2018
20:39:21

Roman
10.05.2018
20:39:33

S
10.05.2018
20:44:44
и кодировку там не надо указывать
по доке там "ru_RU" по идеи

Google

Andrey
11.05.2018
07:58:35
Попробую повторить свой вопрос утром.
вводные: есть некоторое количество БД размером от 50GB до 1Tb.
хочется делать не менее 4 точек восстановления в день
ну и соотв. хранить промежуточные валы
как корректно расчитать место на диске нужное под это хозяйство, а также что можно использовать чтобы сэкономить дисковое простарнство на бекап сервере?
предполагается использовать barman

Grigory
11.05.2018
08:03:37
а как долго предполагается хранить сделанный бэкап?

Andrey
11.05.2018
08:04:16
поэтому хочется формулу по которой можно расчитать приемлимый вариант

Darafei
11.05.2018
08:15:46
А есть на этих выходных постгресовые ивенты в калининграде?

Grigory
11.05.2018
08:16:41
в общем случае я бы считал так:
d - размер базы
n - размер изменений файлов данных за сутки
m - размер изменений WAL за сутки
4d + 7n + 7m
это не учитывая WAL, необходимый для консистентного восстановления бэкапов недельной давности
и не учитывая компрессию

Andrey
11.05.2018
08:32:56
а компрессия для basebackup разве в barman уж есть?
и как расчитать размер walов? они ведь генерятся сильно по-разному в зависимости от нагрузки на базу.