Fike
24.09.2017
13:45:08
но, конечно, лучший вариант
Igor
24.09.2017
13:45:33
Просто у артефакта учет изменения метаинформации, а у сущности - информации сущности.
Google
Igor
24.09.2017
13:46:28
От модели артефактов отказаться не могу из-за сквозного тегирования всех сущностей. Ну нахер связи сущность N -> тэг для каждой прописывать
event sourcing, если коротко.
Слишком сложно для меня пока что. Первый проект, где я на бэке сижу. До этого на мобайле только был. Я и с этой схемой уже начинаю с ума сходить, а если еще и две БД буду держать, вообще ебнусь...
Fike
24.09.2017
13:57:47
Там вторая бд не нужна, но подход кардинально иной, да.
Igor
24.09.2017
13:58:52
А можете подсказать, view на скрине вытащит данные по артефактам, у которых самая большая версия среди остальных c таким же id?
Yuriy
24.09.2017
14:05:44
Igor
24.09.2017
14:09:05
Philipp
24.09.2017
14:17:23
мне одному кажется, что LEFT JOIN в этом запросе не делает ничего?
Igor
24.09.2017
14:20:27
Щас проверю :) Так проще будет
Philipp
24.09.2017
14:24:52
Вроде как делает. Отбирает только последнии версии, нет?
Он джойнит все, что выбралось слева от него, с предыдущими версиями, если они есть, помещая их в столбцы b.*, после чего эти столбцы игнорируются, а на выходе получается то, что было слева от джойна, где строки, у которых есть предыдущие версии, продублированы соответствующее число раз. По крайней мере, мой встроенный статический анализатор так говорит
Google
Igor
24.09.2017
14:25:59
Хм, в другую сторону что-ли сделать. Сначала заджойнить на a, потом поставить условие b.version > a.version при джойне на b и сделать выборку полей по b
Yuriy
24.09.2017
14:26:15
Philipp
24.09.2017
14:31:41
может, если > поменять на < и добавить WHERE b.id IS NULL...
но быстро точно не будет)
Igor
24.09.2017
14:33:59
Потом припрет - буду оптимизировать
Diskord
25.09.2017
00:33:30
Всем привет.
Сразу пару вопросов по pl/pgsql. Насколько я понял пакетов как в оракловом pl/sql в pl/pgsql нету?
Алексей
25.09.2017
00:38:24
нету. если есть такая привычка, в кажестве пакетов можно использовать отдельные схемы
Diskord
25.09.2017
01:11:23
Спасибо. И ещё можно ли как то подсчитать количество строк, которое извлекается из явного курсора, в оракле за это отвечает атрибут %ROWCOUNT?
Алексей
25.09.2017
01:35:31
Предполагаю, что в постгрисе нет аналога ораклового SQL%ROWCOUNT
Сергей
25.09.2017
07:04:09
Такое есть, но только для языка Plpgsql
https://postgrespro.ru/docs/postgrespro/9.6/plpgsql-statements
42.5.5. Статус выполнения команды
GET [ CURRENT ] DIAGNOSTICS переменная { = | := } элемент [ , ... ];
для получения числа обработанных строк:
ROW_COUNT bigint
число строк, обработанных последней командой SQL
Alexey
25.09.2017
07:53:06
День добрый! Приглашаем всех энтузиастов Greenplum и PostgreSQL на митап, посвященный первому 100% open-source релизу Greenplum. 27 сентября в Москве http://l.tinkoff.ru/greenplum и 28 сентября в Петербурге http://l.tinkoff.ru/greenplumspb расскажем о новых возможностях Greenplum 5, поделимся собственным опытом использования и дадим потрогать релиз 5.0 своими руками в облачной инфраструктуре. Спикеры расскажут, почему так важен официальный релиз Open Source Greenplum 5, как им правильно пользоваться и в каких областях можно успешно применять.
Max
25.09.2017
19:07:10
Господа, есть вопрос, пишу проект который будет наполнятся с других ресурсов, нужно придумать механизм который реализует углубленную проверку на дубли, который основывается на анализе текста и полнотекстовом поиске. Возможно кто-то сталикивался уже и есть какие-то готовые решения ?
M
25.09.2017
19:45:01
дубль-детектор- в части хранения или в части выдачи при запросе ?
готовых решений не ищите, начните с последовательной постановки задачи
Aleksey
25.09.2017
22:19:18
Привет всем. У меня трабл возник с left join'ами. Для каждой категории есть другие таблицы связанные cat_id=id.
Мне нужно взять те у которых категория совпадает.
Можете решение подсказать?
Google
Denis
25.09.2017
22:50:13
Можно подробнее, я с утра не могу осознать вопрос)
Dmitry
26.09.2017
00:22:58
Alex
26.09.2017
08:04:49
Всем, привет, на тестовой базе 9.5 произошел вчера такой глюк, разработчик создавал таблицу
sql> CREATE TABLE public.inventory_supplier (
uuid uuid NOT NULL,
user_id varchar(64) NOT NULL,
created_at timestamp NOT NULL DEFAULT now(),
updated_at timestamp NULL,
state varchar(16) NOT NULL,
payload jsonb NULL,
CONSTRAINT inventory_supplier_pkey PRIMARY KEY (uuid, user_id)
)
[2017-09-25 17:50:12] completed in 27s 93ms
Во-первых 27 секунд, во вторых таблица в базе не появилась,
Мы логируем запросы больше 1 сек, соотв оно папало и в лог сервера:
2017-09-25 17:50:12 MSK LOG: duration: 27065.925 ms execute S_1/C_2: CREATE TABLE public.inventory_supplier (
uuid uuid NOT NULL,
user_id varchar(64) NOT NULL,
created_at timestamp NOT NULL DEFAULT now(),
updated_at timestamp NULL,
state varchar(16) NOT NULL,
payload jsonb NULL,
CONSTRAINT inventory_supplier_pkey PRIMARY KEY (uuid, user_id)
)
Но таблички на сервере не оказалось, после, этим же запросом, я создал табличку и все нормально, еще несколько раз дропал и создавал. В чем может быть проблема, куда копать?
Igor
26.09.2017
08:06:37
Всем, привет, на тестовой базе 9.5 произошел вчера такой глюк, разработчик создавал таблицу
sql> CREATE TABLE public.inventory_supplier (
uuid uuid NOT NULL,
user_id varchar(64) NOT NULL,
created_at timestamp NOT NULL DEFAULT now(),
updated_at timestamp NULL,
state varchar(16) NOT NULL,
payload jsonb NULL,
CONSTRAINT inventory_supplier_pkey PRIMARY KEY (uuid, user_id)
)
[2017-09-25 17:50:12] completed in 27s 93ms
Во-первых 27 секунд, во вторых таблица в базе не появилась,
Мы логируем запросы больше 1 сек, соотв оно папало и в лог сервера:
2017-09-25 17:50:12 MSK LOG: duration: 27065.925 ms execute S_1/C_2: CREATE TABLE public.inventory_supplier (
uuid uuid NOT NULL,
user_id varchar(64) NOT NULL,
created_at timestamp NOT NULL DEFAULT now(),
updated_at timestamp NULL,
state varchar(16) NOT NULL,
payload jsonb NULL,
CONSTRAINT inventory_supplier_pkey PRIMARY KEY (uuid, user_id)
)
называть столбец так же как и тип данных - не ок, ( uuid uuid NOT NULL,)
Denis
26.09.2017
09:10:17
А проблемный запрос вообще до базы доехал? Это же не логи самого pg, верно?
Alex
26.09.2017
09:12:49
Maksim
26.09.2017
09:13:33
Alex
26.09.2017
09:14:14
Denis
26.09.2017
09:14:28
Я правильно понял, что повторно воспроизвести проблему не удаётся?
Alex
26.09.2017
09:14:54
Denis
26.09.2017
09:16:13
И тот проблемный запрос успешно закоммитился?
Артур
26.09.2017
10:34:13
Вопрос. В Postgres храню персональные данные.
Тут появилась задачка от начальства - получить лиценизию оператора персональных данных.
Есть где нормальный материал по тому как это делать?
Шифрую информацию в БД по ГОСТ_28147-89
Vitality
26.09.2017
10:35:10
https://google.gik-team.com/?q=%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80+%D0%BF%D0%B5%D1%80%D1%81%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85+%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85
Andrey
26.09.2017
10:35:36
Артур
26.09.2017
10:35:40
http://infoprotect.net/note/klassy-zashhity-informatsii#1a
Даже такое нашел, но не сильно помогло
Vitality
26.09.2017
10:37:31
бедолага(( Просто в первой же ссылке в вики есть ссылки на статьи и законы
Google
Vitality
26.09.2017
10:37:53
как правило, если есть статья, то в ней же и ее описание.
http://regforum.ru/posts/1913_a_vasha_organizaciya__operator_personalnyh_dannyh/
о боже мой, это же прям туториал
второй ссылкой в гугле
Артур
26.09.2017
10:42:04
Так, стоп.
Попробую как-то переформулировать ?. Я понял что вы списали на мою невнимательность и ленность ?
У нас CRM.
Отдельного сервака "в клетке" нет. Арендуем сервер у хостера.
CRM написана на питоне. БД Postgres. Шифрование происходит на стороне питона и уже зашифрованные данные уходят в бд "чистым" запросом, обратно так же. Информация дешифруется также на питоне. В БД ничего не происходит.
Физически БД находится отдельно от сервера. обмен происходит по ssh
Итак: какие еще меры безопасности нужно предпринять чтобы соответсвовать закону.
Как это скажется на БД? Что-то нужно переделывать будет или нет?
Айтуар
26.09.2017
10:52:59
Артур
26.09.2017
10:54:15
Айтуар
26.09.2017
10:55:42
Артур
26.09.2017
10:56:04
Айтуар
26.09.2017
10:57:30
Fike
26.09.2017
10:57:38
Айтуар
26.09.2017
10:58:45
Артур
26.09.2017
10:59:51
Айтуар
26.09.2017
11:01:11
Работа с перс-данными это больше оранизационная работа нежели шифрование.
Fike
26.09.2017
11:01:39
Айтуар
26.09.2017
11:02:10
Google
Fike
26.09.2017
11:02:23
Почему?
Айтуар
26.09.2017
11:06:49
Не нужно придумывать сложную схему защиты, нужно сначало описать список угроз и требований законодательства, и потом уже потом конструировать систему.
Иначе будет уродец который ничего не защищает, но зато он есть в списке разрешённого софта у ФСБ и т.п. организаций, но зато оно не работает. (Это я о СекретНет и т.п. говнософте)
Fike
26.09.2017
11:10:19
Ну, я сейчас не про государственные стандарты, я про то, как обойти хранение секрета для дешифрации в открытом виде в том же месте, где сохраняются данные.
Артур
26.09.2017
11:15:11
у PRO версии Postgeres есть какой-то комлпекс защит, который можно просто внедрить, или это всё чушь?
Ну я понимаю что это аппаратно программный комплекс и в описании там много чего написано (и мандатные защиты реализованы и всякие другие радости). Кто нибудь опыт имеет?
Andrey
26.09.2017
11:23:55
Аггей
26.09.2017
11:26:29
Andrey
26.09.2017
11:29:09
Аггей
26.09.2017
11:30:01
Ilya
26.09.2017
11:39:06
Fike
26.09.2017
11:46:35
Какой поиск по данным, к которым нужно ограничить доступ?