0. Shmell 248 20.12.18 11:15 Сейчас в теме

Чем PostgreSQL может быть полезен разработчику 1С

В статье будут рассмотрены примеры, которые могут оказаться полезными в повседневной работе разработчика 1С и не только: как можно сделать снимок рабочей базы без файла резервной копии, как можно эффективно использовать табличные пространства СУБД PostgreSQL, а также как организовать простой и удобный доступ к админке СУБД посредством мобильных устройств.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. Darklight 17 20.12.18 12:36 Сейчас в теме
Интересные кейсы. Жаль очень мало ;-)


Как создать и использовать табличные пространства – посмотрим на примере следующего кейса, так как он является логическим продолжением текущего кейса, но из «коробки» платформа не будет понимать, то, что я предлагаю реализовать.


Так что там платформа "из коьрбки" не будет понимать и как это решать? Я что-то не понял.
Ролик создания пространств очень трудно смотреть - всё очень мелко, пояснений нет.
И распределение таблицы по пространствам нужно будет настраивать для каждой базы самостоятельно?
3. a.doroshkevich 461 21.12.18 04:24 Сейчас в теме
(1)
Так что там платформа "из коьрбки" не будет понимать и как это решать?


Не будет понимать именно вынос файлов конфигурации в отдельное пространство.
Это придётся делать для каждой базы.
Решать тут особо нечего, поскольку эти файлы практически никогда не подлежат реструктуризации, а значит и распределение по табличным пространствам нарушено не будет.
12. Darklight 17 21.12.18 13:40 Сейчас в теме
Высказывания (3) и (2) противоречат друг другу
1. Либо всё созданные после настройки таблицы, индексы надо каждый раз переносить в нужное файловое пространство
2. Либо PostreSQL как то (интересно как) сам буде определять куда ему поместить толкьо что созданную таблицы или индекс?
Думаю, что 2. он не умеет делать
А по поводу 1-го, раньше платформа 1С Предприятие 8 вообще могла даже при реструктуризации существуюзих таблиц - создать новую и перенести в неё данные из старой, которую затем убив. В результате где окажется такая таблица, связанная даже со старыми метаданными? Правда, сейчас 1С Предприятие 8 применяет иную схему ресруктуризации таблиц, я не знаю - какова вероятность пересоздания таблиц при её применении.
13. Shmell 248 21.12.18 14:20 Сейчас в теме
(12) Как раз то, что я написал в (2) и делается. Создайте 2 табличных пространства и разверните новую базу, пусть даже чистую. Добавьте справочник и посмотрите где будут размещены таблицы.

Для текущих баз все останется как и есть. Все их таблицы будут располагаться в пространстве pg_default. Но! Если вы укажете, например, таблице индекса что она теперь принадлежит пространству v81c_index, реструктуризация ничего не порушит. Таким образом, для существующих баз - либо ручками либо скриптом указать новое табличное пространство. Для новых баз платформа разместит данные и индексы в нужных пространствах, если они существуют.

Антон Дорошкевич, на сколько я понял, имеет в виду что для таблиц файлов конфигурации и расширения всегда действует правило - размещение в пространстве "pg_default". Но! Если мы переместим в кастомное табличное пространство - реструктуризация ничего не убъет и не переместит обратно.
14. Darklight 17 21.12.18 14:26 Сейчас в теме
(13)Мда, видимо пока своими глазами не увижу как это работает - не смогу понять как это работает. Уж простите, не удалось для меня это разъяснить!
15. Shmell 248 21.12.18 14:33 Сейчас в теме
(14) Попробуйте, благо в PG это делается достаточно просто и быстро.
2. Shmell 248 20.12.18 13:22 Сейчас в теме
Вы создаете 2 табличных пространства, о которых я написал. Этого уже достаточно, при создании новой базы платформа будет передавать сигнал СУБД о том, что таблицы индексов мы размещаем в одном месте, а таблицы данных в другом. И эти места могут быть на разных физических носителях.
Эта настройка влияет на все новые создаваемые базы (в т.ч. разворачиваемые из бэкапа или способом, описанным в кейсе N 1)
4. w.r. 213 21.12.18 08:37 Сейчас в теме
На мой взгляд, происходит это потому, что крупный бизнес подстраивается под текущие реалии, в которых традиционное "коммерческое" ПО замещается свободным open source, которое гораздо более приспособлено под задачи бизнесаНа мой взгляд, происходит это потому, что крупный бизнес подстраивается под текущие реалии, в которых традиционное "коммерческое" ПО замещается свободным open source, которое гораздо более приспособлено под задачи бизнеса

Ну ложь же! Как раз именно коммерческое приспособлено лучше под задачи бизнеса. Взять тот же MS SQL Server, который установить и настроить можно даже не обладая квалификацией. "Установил и работает" - вот что нужно бизнесу. Или ваш PostgreSQL, по настройке которого спецов хороших днем с огнем не сыщешь. Лучше один раз заплатить фикс цену и получить работающую систему, чем постоянно потом переплачивать за человеческий труд. Для небольшой фирмы (размер базы до 10 Гб) можно взять MS SQL Express, который вообще бесплатный
Федосеев; Artem.Po; nvv1970; Ershov Mikhail; bsturtle; YPermitin; Fox-trot; +7 Ответить
5. Shmell 248 21.12.18 09:38 Сейчас в теме
(4) Задачи бизнеса бывают разноплановые и настолько не вписывающиеся в какие - либо шаблоны, что коммерческое ПО просто не сможет эти потребности закрыть. А open source достаточно гибок, тот же PostgreSQL можно сконфигурировать под свои задачи, достаточно только привлечь разработчика С. Коммерческое же ПО закрыто от такого рода вмешательства. С одной стороны это хорошо, а с другой - может ограничивать определенные "хотелки", которые могут неплохо так протолкнуть бизнес. Тем более в эпоху интернета вещей и микросервисов - коммерческое ПО проявляет себя несколько неповоротливо.
baracuda; +1 Ответить
6. w.r. 213 21.12.18 09:44 Сейчас в теме
(5) эти байки про то, что код открыт - меняй что хочешь, я слышу уже больше 10 лет. А по факту люди брали вместо коммерческого ПО свободное и плевались потом. Поддержка этого свободного ПО посылала этих людей дописывать самим фиксы. А баги вылезали в самых неожиданных местах и в самый неподходящий момент. Скупой всегда платит дважды. Всегда
Федосеев; Artem.Po; nvv1970; YPermitin; Fox-trot; surikateg; Sevt_RND; +7 Ответить
7. Крококот 21.12.18 10:17 Сейчас в теме
(5)
Да, это аргумент. Только вот "вроде как дешевле" скорее всего не получится. Получится дороже. Сильно дороже. Или сильно хуже.
Бесплатный сыр бывает только в мышеловке. Вы не интересовались, сколько тех клиентов, которые ставили себе PG в целях экономии, потом перешли обратно на MS SQL?
Федосеев; Artem.Po; nvv1970; w.r.; +4 Ответить
8. Shmell 248 21.12.18 10:55 Сейчас в теме
(7) Пока все клиенты, которые на PostgreSQL не рвутся обратно на MS SQL. При правильном администрировании СУБД PostgreSQL ведет себе достойно. Причем 10 и 11 версии излечены от "детских болячек". Так же не забывайте о версии Pro, которая имеет коммерческую составляющую, но в отличие от MS SQL может быть доработана вендером под конкретные задачи. Да, это будет стоить денег, но в случае с MS SQL мы упираемся в стену, Вам никто ничего в ней не доработает.

Да и PG не только в целях экономии ставят, есть большой ряд задач, где необходимо использовать стек технологий, в котором по большей части используется open source. Давайте возьмем к примеру "Cистему взаимодействия" от 1С или "Дата акселератор", в котором используется движок СУБД PostgreSQL...
9. Крококот 21.12.18 11:32 Сейчас в теме
(8)
Ну у вас в самом начале статьи приводится минидиалог с пользователем, где цена указывается как главный аргумент "за" PG... отсюда и восприятие.
Никто не спорит, что PG имеет свои преимущества. Вот только называть среди них стоимость я бы не стал, если речь ведется про достойное качество, конечно. Правильный админ со знанием PG при прочих равных стоит дороже правильного админа со знанием MS SQL, т.к. в настоящий момент встречается заметно реже. Это оставляя в стороне остроту проблемы поиска правильного админа вообще...
В общем вы приводите хорошие доводы "за" PG, но "есть нюансы".
Федосеев; sertak; Artem.Po; YPermitin; Shmell; w.r.; +6 Ответить
10. Shmell 248 21.12.18 11:38 Сейчас в теме
(9) Да, пожалуй из данного минидиалога так и следует, Вы правы.
19. ansh15 24.12.18 00:03 Сейчас в теме
(9)
Правильный админ со знанием PG при прочих равных стоит дороже правильного админа со знанием MS SQL

Если этот "админ" после череды нажатий кнопок "Установить-Далее-Далее...Готово" может еще подвигать ползунок выделения памяти для СУБД, а чтобы включить режим Shared Memory(потому что где-то слышал, что так надо) идет на форум с вопросом "а где искать это, чтобы включить", то это не знания и не квалификация.

Кстати, а во сколько раз дороже? 10 лет слышу это устойчивое выражение, но конкретных значений, "в среднем по рынку", так никто и не привел...
За те же 10 лет, что имею дело с 1С, ни разу не возникло мысли перейти с Linux и PostgreSQL на какую-либо другую платформу.
20. acanta 56 24.12.18 00:14 Сейчас в теме
(19)
10 лет слышу это устойчивое выражение, но конкретных значений, "в среднем по рынку", так никто и не привел...

Это зависит не от квалификации, а от умения продавать, в том числе - себя. Если мы продаем PG(GPL) и имеем конкурентом MS SQL, то мы продаем 1с, и какое-то ПО, которое 1с взяла на буксир. Если мы продаем MS SQL, мы продаем скидку на бандл 1С+SQL. Франчайзи, которые продают 1с, заинтересованы в том, чтобы продажа состоялась, а на установку потратить минимум усилий, поскольку как правило установка входит в стоимость продажи.
Клиент, отваливаясь от франчайзи, оказывается перед фактом, что СУБД требуется квалифицированное обслуживание, ищет кого-нибудь, после чего этот кто-нибудь в любом случае освоит то что уже установлено - либо PG либо SQL (куда он денется с подводной лодки). Причем чем ниже квалификация изначально, тем он безотказнее.
35. oldcopy 120 08.03.19 02:09 Сейчас в теме
(19) Мы уже довольно давно предлагаем своим клиентам как Windows, так и Linux решения под 1С. Ценник на обслуживание одинаковый. Для нормального админа, что запустить инсталлятор и пощелкать Далее - Далее - Готово, что обновить пакеты в Linux - по времени примерно одинаково.

По производительности - для малого и среднего бизнеса что MS SQL, что Postgres - субъективно примерно одинаково. Да, Postgres надо немного настроить, но в большинстве случаев будет достаточно выполнить все рекомендации с ИТС.

После чего считаем разницу в деньгах.
37. ansh15 11.03.19 00:16 Сейчас в теме
(35)
Ценник на обслуживание одинаковый. Для нормального админа, что запустить инсталлятор и пощелкать Далее - Далее - Готово, что обновить пакеты в Linux - по времени примерно одинаково.

Разрушаете миф, столь усердно поддерживаемый не одно десятилетие. Как теперь "всей командой франчайзи" отговаривать клиента от решения на Linux и PostgreSQL...
38. oldcopy 120 11.03.19 00:27 Сейчас в теме
(37)
Как теперь "всей командой франчайзи" отговаривать клиента от решения на Linux и PostgreSQL...


Не можешь победить - возглавь. В чем проблема тем же франчам предлагать подобные решения? Прибыль с коробок? Так это один раз, а обслуживать надо постоянно, тем более что с Linux меньше вероятность, что обновлять будет какой-нибудь знакомый студент Вася.

Хотя франчи бывают всякие, у нас один франч, одно время назад напихал всем КА 1.1, теперь вот приходится разгребать это тяжкое наследие. Ну зачем сети из 12 розничных специализированных магазинов (мясо) КА? Или оптовику, который работает сугубо по воде и безалкогольным напиткам?
11. G.Shatrov 21.12.18 13:35 Сейчас в теме
Кейсы - то что надо! Бери и используй на практике..
16. Alexjas25 21.12.18 16:18 Сейчас в теме
Вадим, недавно Антон Дорошкевич писал про патч OnlineAnalyze для Postgres такую вещь:
"В последней сборке Postgres, опубликованной на сайте 1С, к сожалению, этого патча нет. Его просто нет в строчке предкомпилированных библиотек, он в настройках есть и даже внизу включен, но его нет в строчках предкомпилируемых библиотек. "

Сейчас из коробки все уже идет в комплекте или все-таки его нужно включать отдельно?
17. a.doroshkevich 461 21.12.18 16:37 Сейчас в теме
(16)Александр, в разных сборках по разному.
Но на это точно нужно обратить внимание в файле настроек.
Причин его отсутствия я, к сожалению не знаю. Никаких рекомендаций от Фирмы 1С об исключении этого патча с определенной версии PG я не видел.
Да и при реальной работе 1С этот патч сильно повышает скорость.
18. Shmell 248 23.12.18 15:06 Сейчас в теме
(16)
В 10 версии в библиотеках есть online_analize. Останется только лишь в конфигурационном файле включить параметр. Я это делаю у себя только для баз, в которых у меня активная запись идет, например, регистр сообщений обмена.
Прикрепленные файлы:
w.r.; a.doroshkevich; +2 Ответить
21. emilliya 1 24.12.18 10:44 Сейчас в теме
Подскажите, пожалуйста,
есть ли смысл делать отдельное табличное пространство для индексов на одном и том же жестком диске, что и табличное пространство для данных?
22. Shmell 248 24.12.18 12:24 Сейчас в теме
(21) Смотрите, если Вы не делаете табличные пространства v81c_index и v81c_data, то используется пространство - pg_default - а это одно и то же место на жестком диске для индексов и для данных. Поэтому, если Вы сделаете два табличных пространства на одном жестком диске - скорее всего никакого эффекта не заметите. Ответ - нет.

Отдельно выносить индексы в другое табличное пространство, которое расположено на другом жестком диске есть смысл... Например, у Вас в конфигурации используются "затюненные" запросы, в которых все поля получаются в основном из индексов (см. покрывающие индексы), и табличное пространство расположено на быстром диске или на ssd - эффект будет сразу виден (при первичном выполнении запросов, т.к. при последующих - информация будет подтягиваться, по возможности, из оперативной памяти). Другое дело, что для современных типовых решений размер таблиц индексов, на диске получается больше чем размер таблиц данных. Это особенность построения индексов для регистров. В таком случае диск должен быть не только быстрым, но и достаточно объемным.
emilliya; +1 Ответить
23. emilliya 1 24.12.18 13:00 Сейчас в теме
24. baracuda 3 24.12.18 14:42 Сейчас в теме
Человеки которые пишут, что для того, чтоб админить Postgresql требуется больше квалификации и опыта, нежели чем для MS SQL, я думаю вам пора пересмотреть свои взгляды на образование.
bigpapados; neyasytyf; Fox-trot; +3 Ответить
28. neyasytyf 27.12.18 09:55 Сейчас в теме
(24) Ссылки для таких
pgtune
Настройки PostgreSQL для работы с 1С:Предприятием.
Приложение I. Настройка Postgres Pro для решений 1С
Этих трех ссылок уже достаточно, чтобы поднастроить Postgresql.

Ну и эту ссылку можно глянуть.
kote; deevil; petr.myazin; +3 Ответить
25. drimer 60 25.12.18 13:30 Сейчас в теме
Исходные данные :
КА 1.1.107.4 с мелкими доработками
Платформа 8.3.9.2170
СУБД Postgres Pro 9.4

Все работало стабильно почти 2 года, пока не обновил конфу на релиз 1.1.107.4 .
Заметил, что перестали восстанавливаться архивы созданные с помощью pg_dump.

Начал разбираться и выяснил, что pg_dump в процессе архивации выдает ошибки :

pg_dump: Ошибка выгрузки таблицы "config": сбой в PQgetResult().
pg_dump: Сообщение об ошибке с сервера: Р?РЁР?Р'Р?Р?: invalid memory alloc request size 1174829507
pg_dump: Выполнялась команда: COPY public.config (filename, creation, modified,attributes, datasize, binarydata) TO stdout;

Переносил базу на другие сервера , менял версии Postgres (9.6 и 10.5), менял платформу (8.3.9.2309 и 8.3.10.2772) - результат тот же, pg_dump не может нормально создать архив.

При постановке конфы обратно на поддержку архивация начинает работать нормально. Такая же проблема и с УПП 1.3.112
Вот такой замечательный Postgresql
26. MariusUrsus 25.12.18 14:11 Сейчас в теме
(25) Это проблема не Postgres-а и не платформы, а работы этих конфигураций (УПП и КА) в режиме совместимости 8.2.13.
PostgreSQL из коробки дробит все таблицы на отбельные файлы по 1Гб. Мало того, что размер конфигурации УПП с включенной возможностью изменений >1.4Гб, так еще и при работе в режиме совместимости 8.2.13 вcя конфигурация лежит в одной ячейке. В итоге таблица вынужденно пилится посередине кортежа и назад уже не собирается (точнее не собирается утилитой pg_dump).

Тут два путя - попробовать пересобирать PostgreSQL "под себя", либо повышать режим совместимости, либо MSSQL.
29. Shmell 248 27.12.18 10:12 Сейчас в теме
(27) полезная статья, однозначно в избранное.
30. user619273_alevtina 30.12.18 18:25 Сейчас в теме
31. uand 26.01.19 10:32 Сейчас в теме
в 4 кейсе, после строк

pip install mod_wsgi

сразу требует установленный Апач

RuntimeError: No Apache installation can be found. Set the MOD_WSGI_APACHE_ROOTDIR environment to its location.

после установки и set "MOD_WSGI_APACHE_ROOTDIR=C:\Apache24"

вываливается с ошибкой

error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual
C++ Build Tools": https://visualstudio.microsoft.com/downloads/

Нужно обязательно качать Build Tools , полный пакет 11Gb или можно как то проще?
32. Shmell 248 30.01.19 10:43 Сейчас в теме
(31) Такой ошибки при установке не возникало. Вообще, не должна ошибка падать после установки переменных окружения. Во вложении скрин какие пакеты у меня установлены.
Прикрепленные файлы:
33. Bazil 420 07.03.19 16:36 Сейчас в теме
"Чем поедание кактуса может быть полезно разработчику 1С".
YPermitin; +1 Ответить
34. acanta 56 07.03.19 17:12 Сейчас в теме
Кастанеда в принципе адекватно сформулировал проблему североамериканских индейцев. Они выбрали союзниками духов предков, дочерей вождя отдавали любым колонистам в обмен на временную безопасность. И жевали кактусы.
YPermitin; +1 Ответить
36. Gorod111 10.03.19 16:18 Сейчас в теме
"Используем командную строку...
"нужно создать файл...
"Меняем строки в следующих двух файлах..
"в самый конец вставить следующий текст
Вся суть постгри, мне как типичному одинэснику мышкой тыкнуть лишний раз лень а они "используем командную строку".
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Бизнес-аналитик 1С
Москва
зарплата от 90 000 руб. до 150 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день

Программист 1С
Москва
зарплата от 140 000 руб.
Полный день

Работа от Инфостарт
Санкт-Петербург
По совместительству