{"id":364118,"date":"2024-05-21T02:10:25","date_gmt":"2024-05-21T02:10:25","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=364118"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-05-21T02:10:25","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=364118","title":{"rendered":"<span>Postgresso #1 (62)<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/db2\/6a9\/401\/db26a94012dd82988008a2e1feb1db68.jpg\" width=\"1280\" height=\"460\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/db2\/6a9\/401\/db26a94012dd82988008a2e1feb1db68.jpg\" data-blurred=\"true\"\/><\/figure>\n<h2>\u0423\u043c\u0435\u0440 \u041d\u0438\u043a\u043b\u0430\u0443\u0441 \u0412\u0438\u0440\u0442<\/h2>\n<p>1-\u0433\u043e \u044f\u043d\u0432\u0430\u0440\u044f \u044d\u0442\u043e\u0442 \u043c\u0438\u0440 \u043f\u043e\u043a\u0438\u043d\u0443\u043b \u0412\u0435\u043b\u0438\u043a\u0438\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a &#8212; <em>\u041d\u0438\u043a\u043b\u0430\u0443\u0441 \u0412\u0438\u0440\u0442<\/em> (Niklaus Emil Wirth). \u0415\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f: Pascal, Algol-W, Euler, Modula-1, 2, Oberon-1, 2.<\/p>\n<p>\u041d\u043e \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u041d\u0438\u043a\u043b\u0430\u0443\u0441 \u0431\u044b\u043b \u0433\u043b\u0430\u0432\u043d\u044b\u043c \u0438\u0434\u0435\u043e\u043b\u043e\u0433\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u042f \u043d\u0435 \u043d\u0430\u0448\u0451\u043b (\u0430 \u0432\u044b?) \u0432\u044b\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043d\u0438\u0439 \u041d\u0438\u043a\u043b\u0430\u0443\u0441\u0430 \u043e \u0431\u0430\u0437\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u044f\u0437\u044b\u043a\u0430\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c \u043a\u0430\u043a-\u0442\u043e \u0432\u043b\u0438\u044f\u043b\u0438 \u0438 \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412\u043e\u0442 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/theswissbay.ch\/pdf\/Gentoomen%20Library\/Algorithms\/Data%20Structure%20And%20Algorithms%20Books\/Algorithms%20and%20Data%20Structures%20-%20Niklaus%20Wirth.pdf\"><strong>Algorithms and Data Structures<\/strong><\/a><strong>,<\/strong> \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u043d \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u0438 \u043e \u0432\u0438\u0434\u0430\u0445 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432, \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445 \u043e\u0431\u0445\u043e\u0434\u0430 \u0438\u0445, \u0438 \u043e \u043a\u043b\u044e\u0447\u0430\u0445 \u0438 \u0445\u044d\u0448\u0430\u0445, \u0438 \u043e \u0432\u0437\u0430\u0438\u043c\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f\u0445 \u043c\u0435\u0436\u0434\u0443 \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438. \u0410 \u0432\u043e\u0442 \u043a\u043e\u0440\u043e\u0442\u0435\u043d\u044c\u043a\u0438\u0439 \u0434\u0438\u0430\u043b\u043e\u0433 <a href=\"https:\/\/www.youtube.com\/watch?v=DRkfqiF46MQ\"><strong>\u043e\u0431 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438<\/strong><\/a> \u0432 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0410 \u0432 <a href=\"https:\/\/www.youtube.com\/watch?v=OEmMx55SF8U\">\u044d\u0442\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e<\/a> \u041d\u0438\u043a\u043b\u0430\u0443\u0441 \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0447\u0430\u0440\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a. \u041a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u0438\u0433\u0440\u0430\u043b \u0432 \u0436\u0435\u043b\u0435\u0437\u043d\u0443\u044e \u0434\u043e\u0440\u043e\u0433\u0443 \u0438 \u043c\u0435\u0447\u0442\u0430\u043b \u0441\u0442\u0430\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0438\u0441\u0442\u043e\u043c \u043b\u043e\u043a\u043e\u043c\u043e\u0442\u0438\u0432\u0430.<\/p>\n<p>\u041d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0423\u0440\u0430\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0424\u0435\u0434\u0435\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0430 \u041d\u0438\u043a\u043b\u0430\u0443\u0441 \u0412\u0438\u0440\u0442 <em>\u0432\u043e\u0437\u0433\u043b\u0430\u0432\u043b\u044f\u0435\u0442<\/em> \u0441\u043f\u0438\u0441\u043e\u043a <a href=\"https:\/\/urfu.ru\/en\/about-the-university\/honorary-doctors\/\"><strong>\u041f\u043e\u0447\u0451\u0442\u043d\u044b\u0445 \u0414\u043e\u043a\u0442\u043e\u0440\u043e\u0432<\/strong><\/a> (doctor honoris causa) <strong>\u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0439 \u0410\u043a\u0430\u0434\u0435\u043c\u0438\u0438 \u041d\u0430\u0443\u043a<\/strong> (\u0442\u0430\u043c \u0443 \u043d\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f &#8212; <em>\u0420\u0430\u0432\u0438 \u0428\u0430\u043d\u043a\u0430\u0440,<\/em> \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 (<a href=\"https:\/\/www.artofliving.org\/founder\">\u0433\u0443\u0440\u0443<\/a>, \u043d\u0435 \u043f\u0443\u0442\u0430\u0442\u044c \u0441 \u0432\u0435\u043b\u0438\u043a\u0438\u043c <a href=\"https:\/\/ya.ru\/video\/preview\/3830346472756793304\">\u043c\u0443\u0437\u044b\u043a\u0430\u043d\u0442\u043e\u043c<\/a>), \u0438 \u0441 <em>\u041d\u0443\u0440\u0441\u0443\u043b\u0442\u0430\u043d\u043e\u043c \u041d\u0430\u0437\u0430\u0440\u0431\u0430\u0435\u0432\u044b\u043c<\/em>).<\/p>\n<p>\u0415\u0433\u043e \u0438\u043c\u0435\u043d\u0435\u043c <a href=\"https:\/\/en.wikipedia.org\/wiki\/Meanings_of_minor_planet_names:_21001%E2%80%9322000#655\">\u043d\u0430\u0437\u0432\u0430\u043d <strong>\u0430\u0441\u0442\u0435\u0440\u043e\u0438\u0434<\/strong><\/a>.<\/p>\n<h2>\u0420\u0435\u043b\u0438\u0437\u044b<\/h2>\n<p><a href=\"https:\/\/postgrespro.ru\/docs\/shardman\/14\/release-14-10-2\"><strong>Shardman 14.10.2<\/strong><\/a><strong>, <\/strong><a href=\"https:\/\/postgrespro.ru\/docs\/shardman\/14\/release-14-10-3\"><strong>14.10.3<\/strong><\/a><\/p>\n<p>\u0415\u0449\u0451 <a href=\"https:\/\/habr.com\/ru\/companies\/postgrespro\/articles\/773452\/\">\u043d\u0435\u0434\u0430\u0432\u043d\u043e<\/a> \u043c\u044b \u043f\u0438\u0441\u0430\u043b\u0438, \u0447\u0442\u043e \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e Postgres \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 <a href=\"https:\/\/postgrespro.ru\/docs\/\">Postgres Professional<\/a> \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 &#8212; <a href=\"https:\/\/postgrespro.ru\/docs\/ora2pgpro\/23\/index\">ora2pgpro<\/a>. \u0410 \u0441\u0435\u0439\u0447\u0430\u0441 \u0442\u0430\u043c 5 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432: \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f <a href=\"https:\/\/postgrespro.ru\/docs\/shardman\/14\/index\">Shardman<\/a>. \u0412\u0441\u0435\u0433\u043e \u043f\u043e\u043a\u0430 2 \u0440\u0435\u043b\u0438\u0437\u0430: <\/p>\n<p><a href=\"https:\/\/postgrespro.ru\/docs\/shardman\/14\/release-14-10-2\">Postgres Pro Shardman 14.10.2<\/a> \u0438 <a href=\"https:\/\/postgrespro.ru\/docs\/shardman\/14\/release-14-10-3\">Postgres Pro Shardman 14.10.3<\/a>.<\/p>\n<p>\u0412 14.10.3 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0410 \u0432 \u0437\u0430\u043c\u0435\u0442\u043a\u0430\u0445 \u043a \u0440\u0435\u043b\u0438\u0437\u0443 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e:<\/p>\n<p>\u0421\u0423\u0411\u0414\u00a0Shardman\u00a0\u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430\u00a0PostgreSQL\u00a0\u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f\u043c\u0438, \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0432 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u0445\u00a0shardman\u00a0\u0438\u00a0<a href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/14\/postgres-fdw\">postgres_fdw<\/a>. \u0423\u0442\u0438\u043b\u0438\u0442\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432 \u0432\u0438\u0434\u0435 \u0441\u043b\u0443\u0436\u0431\u044b\u00a0<a href=\"https:\/\/postgrespro.ru\/docs\/shardman\/14\/app-shardmand\">shardmand\u00a0<\/a>\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u00a0<a href=\"https:\/\/postgrespro.ru\/docs\/shardman\/14\/app-shardmanctl\">shardmanctl\u00a0<\/a>. \u041e\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044e\u044e \u0441\u043b\u0443\u0436\u0431\u0443\u00a0etcd\u00a0\u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0438 \u043e\u0431\u043c\u0435\u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439.<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p>\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 ACID \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 DDL \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u0432\u0441\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.<\/p>\n<\/li>\n<li>\n<p>\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0443\u0437\u043b\u0430\u043c\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418 \u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0435, \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435.<\/p>\n<p>\u041d\u043e \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0435\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e. \u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043c\u0435\u043d\u044e \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b \u041f\u0440\u043e\u0434\u0443\u043a\u0442\u044b. \u0422\u0430\u043c \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c <a href=\"https:\/\/postgrespro.ru\/products\/shardman\">Shardman<\/a>. \u0412 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b \u0434\u0435\u043c\u043e\u043a\u0440\u0430\u0442\u0438\u0447\u043d\u0435\u0439, \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0445 \u0441\u0445\u0435\u043c, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b. \u0421\u0440\u0435\u0434\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u0438 &#8212; <a href=\"https:\/\/postgrespro.ru\/products\/PPEM\">PPEM<\/a> (Postgres Pro Enterprise Manager. \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u0432\u044b\u0448\u043b\u0430 \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f:<\/p>\n<p><a href=\"https:\/\/postgrespro.ru\/blog\/news\/5970547\"><strong>Postgres Pro Enterpise Manager 1.3.0<\/strong><\/a><\/p>\n<ul>\n<li>\n<p>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/16\/pgpro-pwr\">PGPRO_PWR<\/a>;<\/p>\n<\/li>\n<li>\n<p>\u044d\u043a\u0440\u0430\u043d \u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e \u0440\u043e\u043b\u044f\u0445 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0433\u0440\u0443\u043f\u043f\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0420\u0420\u0415\u041c;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 LDAP;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0441\u0435\u0441\u0441\u0438\u0438 \u0438\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0433\u043b\u0430\u043c\u0435\u043d\u0442\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <a href=\"https:\/\/postgrespro.ru\/products\/PPEM\/installation\">\u0437\u0434\u0435\u0441\u044c<\/a>, \u0430 \u043f\u0430\u043a\u0435\u0442\u044b \u0441 1.3.1 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u041e\u0421 <a href=\"https:\/\/pubgit.postgrespro.ru\/ppem\/ppem\/-\/packages\">\u0437\u0434\u0435\u0441\u044c<\/a>. <\/p>\n<p><a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.0\"><strong>Greenmask 0.1.0<\/strong><\/a><strong>, <\/strong><a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.1\"><strong>0.1.1<\/strong><\/a><strong>, <\/strong><a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.2\"><strong>0.1.2<\/strong><\/a><\/p>\n<p>\u0417\u0435\u043b\u0451\u043d\u0430\u044f \u043c\u0430\u0441\u043a\u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u0438, \u043d\u043e \u0438 \u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0412\u0435\u0440\u0441\u0438\u044f <a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.0\">0.1.0<\/a> \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0430 \u0433\u043e\u0442\u043e\u0432\u043e\u0439 \u0434\u043b\u044f \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0412 <a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.1\">0.1.1<\/a> \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0435\u0449\u0451 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0435\u0440\u044b, \u0443\u043c\u0435\u044e\u0449\u0438\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<ul>\n<li>\n<p>\u0433\u0435\u043e\u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: <strong>RandomLatitude<\/strong>\u00a0\u0438\u00a0<strong>RandomLongitude<\/strong>;<\/p>\n<\/li>\n<li>\n<p>\u0432\u0440\u0435\u043c\u0435\u043d\u043d<em>\u044b<\/em>\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: <strong>RandomUnixTime<\/strong>\u00a0\u0438\u00a0<strong>RandomMonthName<\/strong>;<\/p>\n<\/li>\n<li>\n<p>\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435\u00a0<strong>RandomEmail<\/strong>\u00a0\u0438\u00a0<strong>RandomPhoneNumber<\/strong>;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 <strong>RandomIPv4<\/strong>\u00a0\u0438\u00a0<strong>RandomIPv6.<\/strong><\/p>\n<\/li>\n<\/ul>\n<p>(\u0412 <a href=\"https:\/\/www.postgresql.org\/about\/news\/greenmask-v010-release-2785\/\">\u0430\u043d\u043e\u043d\u0441\u0435 \u043d\u0430 PostgreSQL.org<\/a> \u044d\u0442\u0438 \u043d\u043e\u0432\u0448\u0435\u0441\u0442\u0432\u0430 \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043f\u0440\u0438\u043f\u0438\u0441\u0430\u043d\u044b \u0432\u0435\u0440\u0441\u0438\u0438 0.1.0). \u0412 \u0432\u0435\u0440\u0441\u0438\u0438 <a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.2\">0.1.2<\/a> \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f. <\/p>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f, \u0432\u0438\u0434\u0438\u043c\u043e, \u0438\u043d\u0442\u0435\u0440\u043d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0442\u0438\u0432: \u043a\u043e\u043d\u0442\u0440\u0438\u0431\u044c\u044e\u0442\u043e\u0440\u043e\u043c <a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.2\">0.1.2<\/a> \u0437\u043d\u0430\u0447\u0438\u0442\u0441\u044f <em>\u0414\u0436\u0435\u0444\u0444 \u0421\u0430\u0437\u0435\u0440\u043b\u044d\u043d\u0434<\/em> (Jeff Sutherland, \u0421\u0428\u0410 &#8212; <a class=\"mention\" href=\"\/users\/jeffsutherland-bluesky),\">@jeffsutherland-bluesky),<\/a>\u0432\u0435\u0440\u0441\u0438\u0438 <a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.1\">0.1.1<\/a> &#8212; <em>\u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041d\u0438\u043a\u0438\u0442\u0438\u043d<\/em> (Dmitry Nikitin, \u041a\u0438\u043f\u0440 &#8212; @gracingpro), <a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.0\">0.1.0<\/a> &#8212; <em>\u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440 \u0422\u0430\u0440\u0431\u0430\u0435\u0432<\/em> (Vladimir Tarbaev, \u041c\u043e\u0441\u043a\u0432\u0430 &#8212; @tarbaev-vl), \u0430 <a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.0-beta\">\u0431\u0435\u0442\u0443<\/a> \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u043b \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c &#8212; <em>\u0412\u0430\u0434\u0438\u043c \u0412\u043e\u0439\u0442\u0435\u043d\u043a\u043e<\/em> (Vadim Voitenko @wwoytenko. \u041e\u043d \u0436\u0435 \u0438 \u0430\u0432\u0442\u043e\u0440 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0444\u043e\u0440\u043a\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <a href=\"https:\/\/github.com\/wwoytenko\/postgres_exporter\">PostgreSQL metric exporter for Prometheus<\/a>. \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u00a0<a href=\"https:\/\/greenmask.io\/\">\u0437\u0434\u0435\u0441\u044c<\/a>, \u0440\u0435\u043b\u0438\u0437\u044b \u043d\u0430 \u0433\u0438\u0442\u0445\u0430\u0431\u0435 <a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.1\">\u0437\u0434\u0435\u0441\u044c<\/a>, \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0438\u0441\u044c\u043c\u0430 \u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 &#8212; <a href=\"mailto:support@greenmask.io\">\u0441\u044e\u0434\u0430<\/a>.<\/p>\n<p><a href=\"https:\/\/www.postgresql.org\/about\/news\/barman-3100-released-2798\/\"><strong>Barman 3.10.0<\/strong><\/a><\/p>\n<p>\u0411\u0430\u0440\u043c\u0435\u043d \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a <strong>B<\/strong>ackup<strong>A<\/strong>nd<strong>R<\/strong>ecovery-\u043c\u0435\u043d &#8212; \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u0445 Point-In-Time Recovery \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e PostgreSQL, \u043e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442  \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u043c \u043a\u043e\u043f\u0438\u0439 \u0438 \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0444\u0430\u0437\u0430\u043c\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f <a href=\"https:\/\/www.enterprisedb.com\/\">EDB<\/a>.<\/p>\n<p>\u0412 \u0432\u0435\u0440\u0441\u0438\u0438 <a href=\"https:\/\/github.com\/EnterpriseDB\/barman\/releases\/tag\/release%2F3.10.0\">3.10.0<\/a> \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043d\u043e\u0432\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u043d\u043e\u0432\u0430\u044f \u043e\u043f\u0446\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 \u0434\u0430\u0436\u0435 \u043d\u043e\u0432\u0430\u044f <em>\u043c\u043e\u0434\u0435\u043b\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438<\/em>. \u0418 \u0435\u0449\u0451 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u043e\u0441\u0443 \u043f\u0440\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0441 AWS S3 \u0438\u043b\u0438 Azure Blob Storage \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c <code>--max-bandwidth<\/code>.<\/p>\n<p><a href=\"https:\/\/github.com\/ANXS\/postgresql\"><strong>ANXS &#8212; Fairly full featured Ansible role for Postgresql<\/strong><\/a><\/p>\n<p>\u041f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0440\u043e\u043b\u044c, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0430\u044f \u0441 Ansible 2.4 \u0438 \u0432\u044b\u0448\u0435, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u0442 Postgres 12 \u0438 \u0432\u044b\u0448\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043c\u0438. \u041e\u043d\u0430 \u0443\u043c\u0435\u0435\u0442 \u0435\u0449\u0451 \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u0422\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Postgres 16.<\/p>\n<p><a href=\"https:\/\/github.com\/viggy28\/pg_savior\"><strong>pg_savior<\/strong><\/a><\/p>\n<p>\u041f\u043e\u0441\u0442\u0433\u0440\u0435\u0441-\u0421\u043f\u0430\u0441\u0438\u0442\u0435\u043b\u044c. \u041f\u0440\u043e\u0441\u0442\u0430\u044f \u0438 \u0433\u0435\u043d\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u0434\u0435\u044f: \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0431\u0435\u0437 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 WHERE &#8212; \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0441\u0435\u0447\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u043b\u0435\u043f\u044b\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0441\u0442\u0438, \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043f\u043e\u0442\u0435\u0440\u0435\u0439 \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e. \u0415\u0441\u0442\u044c \u0435\u0449\u0451 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438.<\/p>\n<h2>Badass Elephant \u0438 \u0440\u0435\u0435\u0441\u0442\u0440\u044b \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439<\/h2>\n<p>\u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, <em>\u0422\u0435\u043c\u0431\u043e<\/em> &#8212; \u0438\u043c\u044f \u043b\u0438\u0445\u043e\u0433\u043e \u0441\u043b\u043e\u043d\u0438\u043a\u0430 \u0438\u0437 \u0438\u0433\u0440\u044b <a href=\"https:\/\/en.wikipedia.org\/wiki\/Tembo_the_Badass_Elephant\">Tembo the Badass Elephant<\/a>. \u042d\u0442\u0438\u043c \u0436\u0435 \u0438\u043c\u0435\u043d\u0435\u043c \u0440\u0435\u0448\u0438\u043b\u0438 \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044e, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0443\u044e \u0441\u0432\u043e\u044e \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0439 Postgres \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 &#8212; \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0438 \u0433\u0435\u043d\u0434\u0438\u0440 <em>\u0420\u0430\u0439 \u0423\u043e\u043a\u0435\u0440<\/em> (<a href=\"https:\/\/github.com\/ryw\">Ry Walker<\/a>) \u043e\u0431\u044a\u044f\u0432\u0438\u043b \u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 <a href=\"https:\/\/tembo.io\/blog\/ga\"><strong>Tembo Cloud<\/strong><\/a>.<\/p>\n<p>\u0418\u0434\u0435\u044f \u0442\u0430\u043a\u0430\u044f: \u0441\u0435\u0440\u0432\u0438\u0441\u044b Postgres \u043d\u0430 \u0432\u0441\u0435 \u0440\u0443\u043a\u0438: Postgres + Stacks. \u042d\u0442\u0438 &#171;\u0441\u0442\u044d\u043a\u0438&#187; \u0441\u0430\u043c\u044b\u0435 \u0440\u0430\u0437\u043d\u044b\u0435, \u0437\u0430\u0442\u043e\u0447\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u0434 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438: \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0439, \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0439, \u0432\u0440\u0435\u043c\u0435\u043d\u043d<em>\u044b<\/em>\u0435 \u0440\u044f\u0434\u044b \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.  \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0430\u0436 194 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439.<\/p>\n<p>\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u044f\u043d\u0432\u0430\u0440\u044f <a href=\"https:\/\/tembo.io\/blog\/welcoming-david-wheeler\">\u0432\u0437\u044f\u043b\u0438 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443<\/a> <em>\u0414\u044d\u0432\u0438\u0434\u0430 \u0423\u0438\u043b\u0435\u0440\u0430<\/em> (David E. Wheeler) &#8212; \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044f <a href=\"https:\/\/pgxn.org\/\">PGXN (PostgreSQL Extension Network)<\/a>. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e \u043e\u043d \u0434\u0430\u0432\u043d\u043e \u043a\u043e\u043d\u0442\u0440\u0438\u0431\u044c\u044e\u0442\u043e\u0440 PostgreSQL, \u043f\u043e\u0434\u0430\u0440\u0438\u0432\u0448\u0438\u0439 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/www.postgresql.org\/docs\/current\/citext.html\">CITEXT2<\/a> &#8212; \u043d\u0435\u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445; \u0442\u0435\u0441\u0442\u043e\u0432\u0443\u044e \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 <a href=\"https:\/\/pgtap.org\/\">pgTAP<\/a>; \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438\u00a0<a href=\"https:\/\/sqitch.org\/\">Sqitch<\/a>. \u0423 \u0414\u044d\u0432\u0438\u0434\u0430 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 \u0441\u0430\u0439\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <a href=\"https:\/\/justatheory.com\/\">Just a Theory<\/a>. \u0422\u0430\u043c, \u0432 \u0431\u043b\u043e\u0433\u0435 \u043e\u043d \u0440\u0430\u0441\u043a\u0440\u044b\u043b \u0441\u0432\u043e\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 <em>\u0442\u0435\u043c\u0431\u043e\u043d\u0430\u0432\u0442\u0430<\/em>:<\/p>\n<p><a href=\"https:\/\/justatheory.com\/2024\/01\/tembonaut\/\"><strong>I&#8217;m a Postgres Extensions Tembonaut<\/strong><\/a><\/p>\n<ul>\n<li>\n<p>\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 &#8212; \u0437\u0430\u0434\u0430\u0447\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e PGXN \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0449\u0451 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0440\u0435\u0448\u0438\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>\u0423\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u044b \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0430\u043a\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 (binary packaging).<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c Postgres, \u0432\u044b\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043c.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c \u0438 \u0432\u043e\u043f\u043b\u043e\u0449\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0441\u0442\u0438\u043c\u0443\u043b\u0438\u0440\u0443\u044f \u0432\u0441\u0451 \u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c, \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/justatheory.com\/2024\/01\/pgxn-challenges\/\">PGXN Challenges<\/a> \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0439. \u0412 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043f\u043e\u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 Go \u0438\u043b\u0438 Rust \u0442\u043e, \u0447\u0442\u043e \u0432 PGXN \u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0430 Perl \u0438 Ruby.<\/p>\n<p>\u0418 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0423\u0438\u043b\u0435\u0440\u0430 \u0432\u043e\u0442 \u043e\u043d: \u043f\u043e\u0448\u043b\u0438 \u043e\u0434\u043d\u043e \u0437\u0430 \u0434\u0440\u0443\u0433\u0438\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043d\u0430 PGXN \u043e\u0442 Tembo:<\/p>\n<p><a href=\"https:\/\/pgxn.org\/dist\/vectorize\/0.9.0\/\"><strong>vectorize 0.9.0<\/strong>: The simplest way to do vector search on Postgres<\/a>,<\/p>\n<p><a href=\"https:\/\/pgxn.org\/dist\/pg_later\/0.0.14\/\"><strong>pg_later 0.0.14<\/strong>: Run queries now and get results later<\/a>,<\/p>\n<p><a href=\"https:\/\/pgxn.org\/dist\/pgmq\/1.1.1\/\"><strong>pgmq 1.1.1<\/strong>: A lightweight message queue like AWS SQS or RSMQ, but on Postgres<\/a>.<\/p>\n<p>\u041e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u0445 \u0432 Tembo \u043f\u0438\u0448\u0443\u0442 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435. <em>\u0410\u0434\u0430\u043c \u0425\u0435\u043d\u0434\u0435\u043b\u044c<\/em> (Adam Hendel) \u0432 \u0441\u0442\u0430\u0442\u044c\u0435<\/p>\n<p><a href=\"https:\/\/tembo.io\/blog\/tembo-data-warehouse\"><strong>How we built our customer data warehouse all on Postgres<\/strong><\/a><\/p>\n<p>\u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 <a href=\"https:\/\/github.com\/tembo-io\/clerk_fdw\">clerk_fdw<\/a>,\u00a0<a href=\"https:\/\/github.com\/tembo-io\/prometheus_fdw\">prometheus_fdw<\/a>, <a href=\"https:\/\/www.postgresql.org\/docs\/current\/postgres-fdw.html\">postgres_fdw<\/a>, <a href=\"https:\/\/github.com\/citusdata\/pg_cron\">pg_cron<\/a> \u0438 <a href=\"https:\/\/github.com\/pgpartman\/pg_partman\">pg_partman<\/a>.<\/p>\n<p><a href=\"https:\/\/tembo.io\/blog\/monitoring-with-prometheus-fdw\"><strong>Introducing prometheus_fdw: Seamless Monitoring in Postgres<\/strong><\/a><\/p>\n<p>\u042d\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 Tembo, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u0445, \u043a\u0442\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u043e\u043c \u0438\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b. \u041e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u043e\u0432\u044b\u043c\u0438 \u0430\u0433\u0435\u043d\u0442\u0430\u043c\u0438, \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 Prometheus. \u041e\u0431\u044b\u0447\u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0435 Prometheus \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0441\u0430\u043c\u0438 \u043f\u043e \u0441\u0435\u0431\u0435, \u0432\u043d\u0435 Postgres. \u0427\u0435\u0440\u0435\u0437 FDW \u043e\u043d\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 SQL, \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d<em>\u044b<\/em>\u0435 \u0440\u044f\u0434\u044b, \u0447\u0435\u043c \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u0432 Tembo. \u0420\u0430\u0431\u043e\u0442\u0443 \u0441 <a href=\"https:\/\/github.com\/tembo-io\/prometheus_fdw\">prometheus_fdw<\/a> \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442 \u0432 4-\u043c\u0438\u043d\u0443\u0442\u043d\u043e\u043c \u0432\u0438\u0434\u0435\u043e: <a href=\"https:\/\/www.youtube.com\/watch?v=LVuH4RtNQss\">Bring your Prometheus data into Postgres in 3 minutes<\/a>.<\/p>\n<p>\u041d\u043e \u0435\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u0445\u043e\u0442\u043d\u0438\u043a\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0438 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u0438:<\/p>\n<p><a href=\"https:\/\/pgt.dev\/\"><strong>Trunk<\/strong><\/a><\/p>\n<p>\u042d\u0442\u043e \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u044b\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0438 \u0440\u0435\u0435\u0441\u0442\u0440 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 PostgreSQL. \u041e\u043d\u0438 \u043e\u0445\u0432\u0430\u0442\u0438\u043b\u0438 \u043e\u043a\u043e\u043b\u043e 200 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 &#8212; \u043d\u0435 \u043f\u043e\u0440\u0430\u0436\u0430\u0435\u0442 \u0432\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043d\u043e \u044d\u0442\u043e \u043f\u043e\u043a\u0430. \u041a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0435\u0441\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440: \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u0437 15 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439, \u0441\u043a\u0430\u0436\u0435\u043c <a href=\"https:\/\/pgt.dev\/?cat=search\">\u041f\u043e\u0438\u0441\u043a<\/a> \u0438\u043b\u0438 <a href=\"https:\/\/pgt.dev\/?cat=auditing_logging\">\u0410\u0443\u0434\u0438\u0442\/\u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/a>.<\/p>\n<p>\u0410 \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u0438\u00a0<a href=\"https:\/\/database.dev\/\"><strong>dbdev<\/strong><\/a><strong>,<\/strong> \u0438\u00a0<a href=\"https:\/\/pgxman.com\/\"><strong>pgxman<\/strong><\/a>.<\/p>\n<p>\u0418\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043f\u0438\u0441\u043a\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439. \u041e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a:<\/p>\n<p><a href=\"https:\/\/gist.github.com\/joelonsql\/e5aa27f8cc9bd22b8999b7de8aee9d47\"><strong>1000+ PostgreSQL EXTENSIONs<\/strong><\/a><\/p>\n<p>\u0422\u0443\u0442 7 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 + \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f &#171;<a href=\"https:\/\/gist.github.com\/joelonsql\/e5aa27f8cc9bd22b8999b7de8aee9d47#uncategorized\">\u0432\u043d\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439<\/a>&#171;. \u0418 3\/4 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u043d\u0435\u0451. \u0414\u0430\u043b\u0435\u0435 \u043f\u043e \u043d\u0430\u0441\u0435\u043b\u0451\u043d\u043d\u043e\u0441\u0442\u0438 &#8212; <a href=\"https:\/\/gist.github.com\/joelonsql\/e5aa27f8cc9bd22b8999b7de8aee9d47#foreign-data-wrappers\">FDW<\/a>. \u0420\u0430\u0441\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0437\u0432\u0451\u0437\u0434\u043e\u0447\u043a\u0438 \u0437\u0440\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0441\u0438\u043c\u043f\u0430\u0442\u0438\u0439. \u041c\u0435\u0436\u0434\u0443 \u043f\u0440\u043e\u0447\u0438\u043c, 42 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u0436\u0438\u0432\u0443\u0442 \u043d\u0430 <a href=\"https:\/\/github.com\/postgrespro\/\">\u0433\u0438\u0442\u0445\u0430\u0431\u0435 Postgres Professional<\/a>.<\/p>\n<h2>\u041f\u044f\u0442\u043d\u0435\u0446\u044b, GPT, UUID-\u044b<\/h2>\n<p>\u042d\u0442\u0430 <a href=\"https:\/\/www.pgsqlphriday.com\/\">\u043f\u044f\u0442\u043d\u0435\u0446\u0430<\/a> \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u0430\u044f. \u041d\u0435 \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u0430\u044f \u0442\u0435\u043c\u0430 &#8212; \u0442\u0435\u043c\u0430 \u043a\u0430\u043a \u0442\u0435\u043c\u0430: <a href=\"https:\/\/mydbanotebook.org\/post\/uuid-fight\/\">UUID<\/a>. \u0410 \u0438\u0437-\u0437\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 <em>\u041f\u0430\u0432\u043b\u043e \u0413\u043e\u043b\u0443\u0431\u0430<\/em> (Pavlo Golub, Cybertec). \u041e\u043d \u043e\u0442\u0432\u0435\u0442\u0438\u043b \u043d\u0435 \u0441\u0430\u043c, \u0430 \u0432\u0437\u044f\u043b \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 \u0443 \u0431\u043e\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0437\u043e\u0432\u0443\u0442 Postgres.AI Bot:<\/p>\n<p><a href=\"https:\/\/www.cybertec-postgresql.com\/en\/postgres-ai-bot-interview-for-pgsql-phriday-015\/\"><strong>Postgres.AI bot interview for PGSQL Phriday #015<\/strong><\/a><\/p>\n<p>\u0413\u0435\u0440\u043e\u044f \u041f\u044f\u0442\u043d\u0435\u0446\u044b #15 <em>\u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u0421\u0430\u043c\u043e\u0445\u0432\u0430\u043b\u043e\u0432<\/em> \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u043f\u0443\u0431\u043b\u0438\u043a\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e:<\/p>\n<p><a href=\"https:\/\/postgres.ai\/blog\/20240127-postges-ai-bot\"><strong>Postgres.AI Bot. Towards LLM OS for Postgres<\/strong><\/a><\/p>\n<p>\u041e\u043d, \u0431\u043e\u0442, \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0439: \u0432 \u0435\u0433\u043e \u0436\u0438\u043b\u0430\u0445 \u0442\u0435\u0447\u0451\u0442 \u043a\u0440\u043e\u0432\u044c GPT-4 Turbo. \u0410 \u0441\u043a\u043e\u0440\u043c\u0438\u043b\u0438 \u0435\u043c\u0443 110 \u0442\u044b\u0441. \u0442\u0435\u043a\u0441\u0442\u043e\u0432, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e, \u0441\u0442\u0430\u0442\u044c\u0438 \u0438 \u0431\u043b\u043e\u0433\u0438 \u043f\u043e \u0442\u0435\u043c\u0435 \u0438 &#8212; \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 &#8212; \u043a\u043e\u0434 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 PostgreSQL, PgBouncer, Patroni, pgvector \u0438 \u0434\u0440\u0443\u0433\u0438\u0445.<\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e: \u0431\u043e\u0442 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u043e\u043b\u0442\u0430\u0435\u0442, \u043e\u043d \u0441\u0430\u043c \u0441\u0442\u0430\u0432\u0438\u0442 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0441\u0432\u043e\u0438 \u0432\u044b\u0432\u043e\u0434\u044b:<\/p>\n<ol>\n<li>\n<p>\u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u043e \u0441\u0435\u0441\u0441\u0438\u0438 \u043d\u0430 \u0442\u043e\u043d\u043a\u0438\u0439 \u043a\u043b\u043e\u043d <a href=\"https:\/\/postgres.ai\/docs\/database-lab\">Postgres.AI DBLab Engine<\/a>, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044f PostgreSQL \u0438<\/p>\n<\/li>\n<li>\n<p>\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c pgbench \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u0432 Google Cloud, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 Postgres \u043f\u043e\u0434 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430\u043c\u0438; \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 70 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0431\u043e\u0442\u043e\u043c \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p> \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u0434\u043e\u0432\u0435\u0441\u0442\u0438 \u0447\u0438\u0441\u043b\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043e \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430.<\/p>\n<\/li>\n<\/ol>\n<p>\u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e: \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0438 \u0431\u043e\u0442\u0430 \u0432\u043e\u043e\u0434\u0443\u0448\u0435\u0432\u0438\u043b\u0438\u0441\u044c \u0438\u0434\u0435\u0435\u0439 LLM OS, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b\u0441\u043a\u0430\u0437\u0430\u043b \u0432 \u0432\u0438\u0434\u0435\u043e <em>\u0410\u043d\u0434\u0436\u0435\u0439 \u041a\u0430\u0440\u043f\u0430\u0442\u0438<\/em> (Andrej Karpathy &#8212; \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441 42:15): <a href=\"https:\/\/www.youtube.com\/watch?v=zjkBMFhNj_g\">Intro to Large Language Models<\/a> &#8212; \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u0441\u0451 \u044d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0447\u0430\u043b\u043e. \u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0431\u0435\u0441\u0435\u0434\u044b \u0441 \u0435\u0433\u043e \u0431\u043e\u0442\u043e\u043c \u0443\u0436\u0435 \u043d\u0430\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438 \u0435\u0433\u043e (\u0442\u043e\u0447\u043d\u0435\u0435: \u0438\u0445) \u043d\u0430 \u043d\u043e\u0432\u044b\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0412\u043e\u043e\u0431\u0449\u0435-\u0442\u043e, \u043a\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u043f\u0440\u0438\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u0442 GPT \u043a Postgres. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p><a href=\"https:\/\/github.com\/tatari-tv\/gptsql\"><strong>gptsql<\/strong><\/a><\/p>\n<p>\u0427\u0430\u0442-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 PostgreSQL. \u041f\u043e\u0434\u0441\u043e\u0435\u0434\u0438\u043d\u0451\u043d\u043d\u044b\u0439 \u043a GPT, \u043e\u043d \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 Postgres \u0438 \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u0443\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u0432 SQL. \u0415\u0449\u0451 \u043e\u043d \u0443\u043c\u0435\u0435\u0442 \u0443\u0433\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u044c <a href=\"https:\/\/openai.com\/\">Open AI<\/a>, \u0440\u0430\u0431\u043e\u0442\u0430\u044f \u0447\u0435\u0440\u0435\u0437 <a href=\"https:\/\/platform.openai.com\/docs\/assistants\/overview\">Assistant API<\/a>.<\/p>\n<p>\u041f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0442\u0430\u043a\u0438\u043c\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043c\u0438 (\u043e\u0431\u044b\u0447\u043d\u043e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b <a href=\"https:\/\/research.ibm.com\/blog\/retrieval-augmented-generation-RAG\">RAG<\/a>), \u044d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 &#8212; \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0438.<\/p>\n<p>\u041e\u043d\u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0434\u0435\u043c\u043e, \u0433\u0434\u0435 \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u0440\u0430\u0441\u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0442 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 <a href=\"https:\/\/dataverse.harvard.edu\/dataset.xhtml?persistentId=doi:10.7910\/DVN\/2QYZBT\">IMDB<\/a>. \u0422\u0430\u043c \u0432\u0438\u0434\u043d\u043e, \u043a\u0430\u043a Assistant, \u0443\u0432\u0438\u0434\u0435\u0432 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 SQL, \u0441\u0430\u043c \u0438\u0445 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442.<\/p>\n<p>\u0410 <em>\u0421\u0435\u0440\u0433\u0435\u0439 \u041f\u0440\u043e\u043d\u0438\u043d<\/em> (Sergey Pronin) \u0438\u0437 Percona \u0434\u0430\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0441\u0431\u043e\u0440\u043a\u0435 GPT-\u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u0430: <a href=\"https:\/\/www.percona.com\/blog\/create-an-ai-expert-with-open-source-tools-and-pgvector\/\">Create an AI Expert With Open Source Tools and pgvector<\/a>.<\/p>\n<p><a href=\"https:\/\/postgres.fm\/episodes\/pgvector\"><strong>pgvector-\u044d\u043f\u0438\u0437\u043e\u0434 \u043d\u0430 Postgres FM<\/strong><\/a><\/p>\n<p><em>\u041c\u0430\u0439\u043a\u043b \u041a\u0440\u0438\u0441\u0442\u043e\u0444\u0430\u0439\u0434\u0435\u0441<\/em> (Michael Christofides, \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 <em>\u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u0421\u0430\u043c\u043e\u0445\u0432\u0430\u043b\u043e\u0432<\/em> \u043d\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442) \u043f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u043b \u043e\u0431\u0441\u0443\u0434\u0438\u0442\u044c pgvector <em>\u0414\u0436\u043e\u043d\u0430\u0442\u0430\u043d\u0430 \u041a\u0430\u0446\u0430<\/em> (Jonathan Katz), \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u043a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0432 (principle product manager) \u0432 AWS, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438 \u043a\u043e\u043d\u0442\u0440\u0438\u0431\u044c\u044e\u0442\u043e\u0440 pgvector, \u0435\u0449\u0451 \u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0441\u043e\u0432\u0435\u0442\u0430 PostgreSQL &#8212; Core Team.<\/p>\n<p>\u0412 \u0431\u0435\u0441\u0435\u0434\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f TOAST &#8212; \u0438 \u044d\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e: \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0441 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 TOAST. \u041f\u043e\u0437\u0432\u043e\u043b\u0438\u043c \u0441\u0435\u0431\u0435: \u0432 \u044d\u0442\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0438 <em>\u041d\u0438\u043a\u0438\u0442\u044b \u041c\u0430\u043b\u0430\u0445\u043e\u0432\u0430<\/em> \u0438 <em>\u041e\u043b\u0435\u0433\u0430 \u0411\u0430\u0440\u0442\u0443\u043d\u043e\u0432\u0430<\/em>, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0449\u0438\u0435 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 TOAST: \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 TOAST, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u0435 \u043a Pluggable Storage API. \u041e\u043b\u0435\u0433 \u0438 \u041d\u0438\u043a\u0438\u0442\u0430 \u043f\u0440\u043e\u0434\u0435\u043b\u044b\u0432\u0430\u043b\u0438 \u044d\u0442\u043e \u0434\u043b\u044f JSON(B) (<a href=\"https:\/\/habr.com\/ru\/companies\/postgrespro\/articles\/710104\/\">\u0416\u0430\u0440\u0438\u043c TOAST \u0432 PostgreSQL<\/a>), \u043d\u043e \u0432\u0435\u0434\u044c \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0435 \u0434\u0430\u0440\u043e\u043c \u043f\u0440\u043e\u0447\u0430\u0442 \u0432 <a href=\"https:\/\/www.youtube.com\/watch?v=D_1zunKblAU\">\u043d\u043e\u0432\u044b\u0435 \u0434\u0436\u0435\u0439\u0441\u043e\u043d\u044b<\/a>.<\/p>\n<p>\u0412 \u043f\u043e\u0434\u043a\u0430\u0441\u0442\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/pgvector\/pgvector\">pgvector<\/a>,<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/postgres.fm\/episodes\/companion-databases\">\u043f\u043e\u0434\u043a\u0430\u0441\u0442<\/a> \u043d\u0430 Postgres FM \u043f\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0421\u0423\u0411\u0414 (companion databases),<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=D_1zunKblAU\">pgvector &#8212; \u044d\u0442\u043e \u043d\u043e\u0432\u044b\u0439 JSON<\/a> (\u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 \u0441 <em>\u0414\u0436\u043e\u043d\u0430\u0442\u0430\u043d\u043e\u043c \u041a\u0430\u0446\u0435\u043c<\/em>),<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/jkatz05.com\/post\/postgres\/pgvector-overview-0.5.0\">pgvector 0.5.0<\/a> &#8212; \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e (\u0431\u043b\u043e\u0433 \u0414\u0436. \u041a\u0430\u0446\u0430),<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/aws.amazon.com\/blogs\/database\/accelerate-hnsw-indexing-and-searching-with-pgvector-on-amazon-aurora-postgresql-compatible-edition-and-amazon-rds-for-postgresql\">HNSW \u0438 \u043f\u043e\u0438\u0441\u043a<\/a> (\u0431\u043b\u043e\u0433 \u0414\u0436. \u041a\u0430\u0446\u0430),<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/postgres.fm\/episodes\/toast\">\u043f\u043e\u0434\u043a\u0430\u0441\u0442<\/a> \u043d\u0430 Postgres FM \u043e TOAST,<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/pgvector\/pgvector\/blob\/master\/CHANGELOG.md\">pgvector changelog<\/a>,<\/p>\n<\/li>\n<li>\n<p>\u0441\u0442\u0430\u0442\u044c\u044f \u043e <a href=\"https:\/\/arxiv.org\/abs\/2207.07940\">HQANN<\/a>,<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/pgvector\/pgvector\/tree\/hnsw-fast-build\">HNSW<\/a> \u043d\u0430 \u0433\u0438\u0442\u0445\u0430\u0431\u0435,\u00a0<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/2024.pgconf.dev\">pgconf.dev<\/a>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0415\u0441\u043b\u0438 \u0436\u0435 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u0442\u0435\u043c\u0435 \u043f\u044f\u0442\u043d\u0435\u0446 #15, \u0442\u043e \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c \u0432\u0441\u0451 \u0441 <em>\u041b\u0435\u0442\u0438\u0446\u0438\u0438 \u0410\u0432\u0440\u043e<\/em> (L\u00e6titia Avrot), \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u044b\u043f\u0430\u043b\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u044b. \u0412\u043e\u0442 \u043e\u043d\u0430 \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0430 \u0442\u0435\u043c\u0443 &#8212; UUID. \u0418 \u0434\u0430\u0436\u0435 <a href=\"https:\/\/mydbanotebook.org\/post\/uuid-fight\/\">\u043d\u0430\u0431\u0440\u043e\u0441\u0430\u043b\u0430 \u0441\u043f\u0438\u0441\u043e\u043a<\/a> \u0438\u0437 8 \u043f\u0443\u043d\u043a\u0442\u043e\u0432, \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0436\u0434\u0451\u0442 \u043e\u0442 \u043e\u0442\u0432\u0435\u0442\u0447\u0438\u043a\u043e\u0432.<\/p>\n<p>\u0421\u0430\u043c\u0430 \u041b\u0435\u0442\u0438\u0446\u0438\u044f \u0432 \u0438\u0442\u043e\u0433\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0430 <a href=\"https:\/\/mydbanotebook.org\/post\/uuid\/\">\u0442\u0435\u043a\u0441\u0442<\/a>, \u043e\u0442\u0432\u0435\u0447\u0430\u044f \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441: <em>\u0427\u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430? <\/em><strong><em>UUID<\/em><\/strong><em>, <\/em><strong><em>CUID<\/em><\/strong><em>, \u0438\u043b\u0438 <\/em><strong><em>TSID<\/em><\/strong><em>?<\/em><\/p>\n<p>\u041f\u0430\u0432\u043b\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 \u0441\u0432\u043e\u0438\u0445 \u043a\u043e\u043b\u043b\u0435\u0433 \u043f\u043e Cybertec \u043d\u0430 \u0442\u0435\u043c\u0443 UUID: <\/p>\n<p><a href=\"https:\/\/www.cybertec-postgresql.com\/en\/unexpected-downsides-of-uuid-keys-in-postgresql\/\"><strong>Unexpected downsides of UUID keys in PostgreSQL<\/strong><\/a> <em>\u0410\u043d\u0442\u0441\u0430 \u0410\u0430\u0441\u043c\u044b <\/em>(Ants Aasma) \u0438<\/p>\n<p><a href=\"https:\/\/www.cybertec-postgresql.com\/en\/uuid-serial-or-identity-columns-for-postgresql-auto-generated-primary-keys\/\"><strong>Auto-generated primary keys: UUID, serial or identity column?<\/strong><\/a> <em>\u041b\u0430\u0443\u0440\u0435\u043d\u0446\u0430 \u0410\u043b\u044c\u0431\u044b<\/em> (Laurenz Albe).<\/p>\n<p>\u0410 \u043c\u044b \u043d\u0430\u043f\u043e\u043c\u043d\u0438\u043c \u043e \u0434\u043e\u043a\u043b\u0430\u0434\u0435 <em>\u0418\u0432\u0430\u043d\u0430 \u0424\u0440\u043e\u043b\u043a\u043e\u0432\u0430<\/em> \u043d\u0430 <a href=\"https:\/\/pgconf.ru\/media\/\/2023\/\">PGConf.Russia<\/a>: <a href=\"https:\/\/pgconf.ru\/media\/\/2023\/04\/20\/uuidv7v8.pdf\"><strong>UUID v7 &amp; v8 &#8212; \u0437\u0430\u0447\u0435\u043c \u0438 \u043a\u043e\u0433\u0434\u0430<\/strong><\/a><strong> <\/strong>(\u0432\u0438\u0434\u0435\u043e <a href=\"https:\/\/pgconf.ru\/talk\/1589099\">\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e<\/a> \u0438\u0437 \u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u0430\u0431\u0438\u043d\u0435\u0442\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430).<\/p>\n<h3>PG-\u0444\u0443\u0442\u0443\u0440\u043e\u043b\u043e\u0433\u0438\u044f<\/h3>\n<p><a href=\"https:\/\/jkatz05.com\/post\/postgres\/postgresql-2024\/\"><strong>Thoughts on PostgreSQL in 2024<\/strong><\/a><\/p>\n<p>\u0412 \u0441\u0432\u043e\u0451\u043c \u0431\u043b\u043e\u0433\u0435 <em>\u0414\u0436\u043e\u043d\u0430\u0442\u0430\u043d \u041a\u0430\u0446<\/em> \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b. \u0413\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u0445\u043e\u0442\u0435\u043b \u0441\u043e\u0432\u0441\u0435\u043c \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c, \u043d\u043e \u0443\u0432\u043b\u0451\u043a\u0441\u044f &#8212; \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0441\u0442\u0430\u0442\u044c\u044f \u0438 \u043d\u0435\u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0430\u044f. \u0421\u0442\u043e\u0438\u0442 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0441\u044e, \u043d\u043e \u043f\u0440\u043e\u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u0443\u044e \u0441\u044e\u0434\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u044b.<\/p>\n<p><strong><em>\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u043a\u0430\u043a \u0432\u0430\u0436\u043d\u0435\u0439\u0448\u0430\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f HA<\/em><\/strong><em> (\u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438)<\/em><\/p>\n<p><em>\u041d\u0430 <\/em><a href=\"https:\/\/wiki.postgresql.org\/wiki\/PgCon_2023_Developer_Meeting\"><em>PGCon 2023 Developer Meeting<\/em><\/a><em>, \u044f [\u0414\u0436. \u041a\u0430\u0446] \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0442\u0435\u043c\u0443: <\/em><a href=\"https:\/\/wiki.postgresql.org\/wiki\/PgCon_2023_Developer_Meeting#What_are_the_big_challenges_for_our_users.3F_What_are_the_big_challenges_for_us_to_solve.3F\"><em>\u041a\u0430\u043a\u0438\u0435 \u0432\u044b\u0437\u043e\u0432\u044b \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 PostgreSQL \u0441\u0430\u043c\u044b\u0435 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u044b\u0435?<\/em><\/a><em> \u041c\u044b \u0441 <\/em>\u0410\u043c\u0438\u0442\u043e\u043c \u041a\u0430\u043f\u0438\u043b\u043e\u0439<em> (Amit Kapila), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043d\u043e\u0433\u043e\u0435 \u0441\u0434\u0435\u043b\u0430\u043b \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0440\u0430\u0437\u0432\u0438\u043b\u0438 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 \u0432 <\/em><a href=\"https:\/\/www.postgresql.eu\/events\/pgconfeu2023\/sessions\/session\/4783\/slides\/434\/pgconfeu2023_active_active.pdf\"><em>\u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/em><\/a><em>\u00a0\u0438 \u0432 \u0432\u0438\u0434\u0435\u043e <\/em><a href=\"https:\/\/www.youtube.com\/watch?v=jPp4XIY4XRw\"><em>The journey towards active replication in PostgreSQL<\/em><\/a><em>.<\/em><\/p>\n<p><em>\u0412 PostgreSQL 16 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043a\u0438\u0440\u043f\u0438\u0447\u0438\u043a\u043e\u0432 \u0434\u043b\u044f active-active<\/em> [\u043d\u0430\u0437\u043e\u0432\u0451\u043c \u044d\u0442\u043e \u0443\u0441\u043b\u043e\u0432\u043d\u043e \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0430\u0441\u0442\u0435\u0440\u043e\u043c], <em>\u0441\u0438\u043d\u0435-\u0437\u0435\u043b\u0451\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f<\/em> [<a href=\"https:\/\/bool.dev\/blog\/detail\/blue-green-deployment\">blue-green deployment<\/a>] <em>\u0438 \u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u044f \u043f\u0440\u0438 \u043c\u0430\u0436\u043e\u0440\u043d\u044b\u0445 \u0430\u043f\u0433\u0440\u0435\u0439\u0434\u0430\u0445 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c &#8212; \u0435\u0441\u043b\u0438 \u043d\u0435 \u0432 \u044f\u0434\u0440\u0435, \u0442\u043e \u0432 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u0445 (\u043a\u0430\u043c\u0438\u043d\u0433-\u0430\u0443\u0442: \u044f <\/em>[\u0414\u0436. \u041a\u0430\u0446]<em> \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u043d\u0430\u0434 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 &#8212; <\/em><a href=\"https:\/\/aws.amazon.com\/ru\/blogs\/database\/using-pgactive-active-active-replication-extension-for-postgresql-on-amazon-rds-for-postgresql\/\"><em>pgactive<\/em><\/a><em> \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 <\/em><a href=\"https:\/\/wiki.postgresql.org\/wiki\/BDR_Project\"><em>BDR<\/em><\/a><em>). \u0427\u0438\u0442\u0430\u0439\u0442\u0435 \u0432 <\/em><a href=\"https:\/\/aws.amazon.com\/ru\/blogs\/database\/using-pgactive-active-active-replication-extension-for-postgresql-on-amazon-rds-for-postgresql\/\"><em>Using pgactive: Active-active Replication Extension for PostgreSQL on Amazon RDS for PostgreSQL<\/em><\/a><em>.<\/em><\/p>\n<p><strong><em>\u041d\u0435\u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0445\u0435\u043c\u044b<\/em><\/strong><\/p>\n<p><code>ALTER TABLE<\/code>\u00a0<em>\u0431\u0435\u0440\u0451\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443<\/em><code>ACCESS EXCLUSIVE,<\/code><em>\u0432 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430. \u0411\u0430\u0437\u0430 \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430, \u043d\u043e \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u043e \u0436\u0435, \u0447\u0442\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0433\u043b\u0430\u0432\u043d\u0430\u044f, \u043e\u0433\u0440\u043e\u043c\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u0441\u0442\u0430\u043b\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0421\u0423\u0411\u0414 \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0440\u0435\u0448\u0430\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443. \u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u044e, \u0447\u0442\u043e \u0442\u0435\u043c \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u043d\u043e\u0433\u043e.<\/em><\/p>\n<p><a href=\"https:\/\/ryanguill.com\/postgresql\/sql\/2024\/01\/08\/postgresql-wishlist.html\"><strong>My PostgreSQL wishlist<\/strong><\/a><\/p>\n<p><em>\u0420\u0430\u0439\u0430\u043d \u0413\u0438\u043b\u043b<\/em> (Ryan Guill) \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043e\u0431\u0448\u0438\u0440\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u043f\u043e\u043b\u043d\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0444\u0438\u0447, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0435\u043c\u0443 \u043b\u0438\u0447\u043d\u043e, \u0438 \u043f\u0440\u043e\u0441\u0438\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445, \u0447\u0435\u0433\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0434\u0440\u0443\u0433\u0438\u043c &#8212; \u043e\u043d \u0433\u043e\u0442\u043e\u0432 \u044d\u0442\u043e\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u0434\u043d\u043e\u0432\u043b\u044f\u0442\u044c. \u041f\u043e\u043a\u0430 \u0442\u0430\u043c \u0442\u043e\u043b\u044c\u043a\u043e 1 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439.<\/p>\n<p>\u0412 \u0441\u043f\u0438\u0441\u043a\u0435 \u0441\u0440\u0430\u0437\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u043f\u043e JSON(B), \u0435\u0441\u0442\u044c \u0438 \u0442\u0430\u043a\u0438\u0435 \u043f\u0443\u043d\u043a\u0442\u044b \u043a\u0430\u043a \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0418\u043b\u0438 \u0442\u0430\u043a\u043e\u0439:<\/p>\n<p>\u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441<\/p>\n<p><em>\u0412 \u0441\u0442\u0430\u0440\u043e\u0434\u0430\u0432\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430, \u0432 \u0431\u044b\u0442\u043d\u043e\u0441\u0442\u044c DB2 \u043d\u0430 AS\/400 \u044f \u043c\u043e\u0433 \u043e\u0442\u043e\u0441\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u0432 \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 (batch), \u0442\u043e \u0435\u0441\u0442\u044c \u043c\u043e\u0433 \u0437\u0430\u0434\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441, \u0437\u0430\u0434\u0430\u0442\u044c \u0441\u0445\u0435\u043c\u0443 \u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u0433\u0434\u0435 \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0432\u044b\u0434\u0430\u0442\u044c \u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u0434\u0430\u043d\u0438\u044e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0438 \u043f\u0440\u0435\u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438. \u0412 \u0442\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043c\u043e\u0433\u043b\u0438 \u0438\u043d\u043e\u0433\u0434\u0430 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0447\u0430\u0441\u0430\u043c\u0438 \u0438\u043b\u0438 \u0434\u043d\u044f\u043c\u0438. \u0421\u0435\u0439\u0447\u0430\u0441 \u0442\u0430\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0440\u0435\u0434\u043a\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0448\u044c (\u0440\u0430\u0437\u0432\u0435 \u0447\u0442\u043e \u043d\u0430 \u0441\u043a\u043b\u0430\u0434\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445), \u043d\u043e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441, \u043d\u043e \u043d\u0435 \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0432 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430, \u0432\u0441\u0451 \u0435\u0449\u0451 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b. \u0418 \u0447\u0442\u043e\u0431\u044b \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u0430 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u0437\u043d\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u0442\u043e\u0433\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u044f.<\/em><\/p>\n<p>\u041d\u0435 \u0433\u043b\u044f\u043d\u0443\u0442\u044c \u043b\u0438 \u0430\u0432\u0442\u043e\u0440\u0443 \u0441\u0442\u0430\u0442\u044c\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u043d\u0430 \u0432\u043e\u0442 \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 Tembo &#8212; <a href=\"https:\/\/pgxn.org\/dist\/pg_later\/0.0.12\/\">pg_later 0.0.12: Run queries now and get results later<\/a>?<\/p>\n<h3>\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438<\/h3>\n<p><a href=\"https:\/\/www.osp.ru\/articles\/2024\/0131\/13058042\"><strong>\u0424\u043b\u0430\u0433\u043c\u0430\u043d\u044b \u0446\u0438\u0444\u0440\u043e\u0432\u0438\u0437\u0430\u0446\u0438\u0438 \u2014 2024<\/strong><\/a><\/p>\n<p>\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043b\u043e \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044e (\u0442\u043e\u0447\u043d\u0435\u0435, \u043a\u043e\u043d\u0433\u0440\u0435\u0441\u0441) \u0438\u0437\u0434\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e-\u0432\u0435\u0442\u0435\u0440\u0430\u043d &#8212; <a href=\"https:\/\/www.osp.ru\/\">\u041e\u0442\u043a\u0440\u044b\u0442\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b<\/a>. . \u041f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0437\u0432\u0443\u0447\u0438\u0442 \u0442\u0430\u043a: <a href=\"https:\/\/www.osp.ru\/articles\/2024\/0131\/13058042\">\u00ab\u0424\u043b\u0430\u0433\u043c\u0430\u043d\u044b \u0446\u0438\u0444\u0440\u043e\u0432\u0438\u0437\u0430\u0446\u0438\u0438 \u2014 2024\u00bb: \u041e\u0442\u0440\u0430\u0441\u043b\u0438. \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b. \u041a\u0435\u0439\u0441\u044b<\/a>. \u041f\u0440\u043e\u0448\u043b\u0430 \u0432 \u044f\u043d\u0432\u0430\u0440\u0435. \u041d\u0430 \u043d\u0435\u0439 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u043b\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043b\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0439 \u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439: \u041c\u0438\u043d\u044d\u043d\u0435\u0440\u0433\u043e \u0438 \u041c\u0438\u043d\u0446\u0438\u0444\u0440\u044b, \u0420\u043e\u0441\u0442\u0435\u043b\u0435\u043a\u043e\u043c \u0438 \u0421\u0418\u0411\u0423\u0420, \u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u043e\u043d\u0434 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439, \u00ab\u0410\u044d\u0440\u043e\u0444\u043b\u043e\u0442\u00bb, \u0413\u0430\u0437\u043f\u0440\u043e\u043c ID, \u00ab\u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u0430\u044f \u0411\u0438\u0440\u0436\u0430\u00bb, \u041c\u0422\u0421-\u0411\u0430\u043d\u043a, \u0413\u041c\u041a \u00ab\u041d\u043e\u0440\u0438\u043b\u044c\u0441\u043a\u0438\u0439 \u041d\u0438\u043a\u0435\u043b\u044c\u00bb, \u00ab\u0420\u043e\u0441\u044d\u043d\u0435\u0440\u0433\u043e\u0430\u0442\u043e\u043c\u00bb, \u00ab\u0421\u0435\u0432\u0435\u0440\u0441\u0442\u0430\u043b\u044c\u00bb, \u00ab\u0421\u0430\u043c\u043e\u043b\u0435\u0442\u00bb, TenChat, X5 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435. \u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u0438\u0442\u0435\u0442\u0430 \u043a\u043e\u043d\u0433\u0440\u0435\u0441\u0441\u0430 &#8212; <em>\u0418\u0440\u0438\u043d\u0430 \u0428\u0435\u044f\u043d<\/em>.<\/p>\n<p><a href=\"https:\/\/pgconf.ru\/\"><strong>PGConf.Russia 2024<\/strong><\/a> <\/p>\n<p>\u041f\u0440\u043e\u0439\u0434\u0451\u0442 8-9 \u0430\u043f\u0440\u0435\u043b\u044f \u043e\u043f\u044f\u0442\u044c \u0432 \u0431\u0438\u0437\u043d\u0435\u0441-\u0446\u0435\u043d\u0442\u0440\u0435 &#171;\u0420\u044d\u0434\u0438\u0441\u0441\u043e\u043d \u0421\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0430\u044f&#187;, \u041f\u043b\u043e\u0449\u0430\u0434\u044c \u0415\u0432\u0440\u043e\u043f\u044b, \u0434. 2. \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0430\u0442\u044c <a href=\"https:\/\/pgconf.ru\/login?go=\/account\/speaker\/2024\">\u0437\u0430\u044f\u0432\u043a\u0443<\/a>, \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/pgconf.ru\/login?go=\/account\/participation\/2024\">\u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f<\/a>. <\/p>\n<p><a href=\"https:\/\/2024.pgday.paris\/\"><strong>pgDay Paris 2024<\/strong><\/a><\/p>\n<p>\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f \u043f\u0440\u043e\u0439\u0434\u0451\u0442 14 \u043c\u0430\u0440\u0442\u0430. \u041e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0442\u0435\u043c\u044b <em>\u043e\u0442 \u041a\u043e\u0434\u0434\u0430 \u0434\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u0438 \u043e\u0442 <\/em><a href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/16\/logicaldecoding-explanation\"><em>\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/em><\/a><em> \u0434\u043e <\/em><a href=\"https:\/\/www.postgresql.org\/message-id\/flat\/315b7ce8-9d62-3817-0a92-4b20519d0c51%40postgrespro.ru\"><em>LSM-\u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432<\/em><\/a>. <a href=\"https:\/\/www.postgresql.eu\/events\/pgdayparis2024\/schedule\">\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443<\/a> \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c. <\/p>\n<p>\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044e \u043e\u0442\u043a\u0440\u043e\u0435\u0442 \u0434\u043e\u043a\u043b\u0430\u0434 <a href=\"https:\/\/www.postgresql.eu\/events\/pgdayparis2024\/schedule\/session\/5293-elephant-in-a-nutshell-navigating-the-postgres-community-101\/\">Elephant in a nutshell &#8212; Navigating the Postgres community 101<\/a> &#8212; <em>\u0412\u0430\u043b\u0435\u0440\u0438\u0438 \u041a\u0430\u043f\u043b\u0430\u043d<\/em> (Valeria Kaplan, Data Egret). \u0411\u0443\u0434\u0443\u0442 \u0435\u0449\u0451 <a href=\"https:\/\/www.postgresql.eu\/events\/pgdayparis2024\/schedule\/session\/5347-postgresql-without-permanent-local-data-storage\/\">PostgreSQL without permanent local data storage<\/a> &#8212; <em>\u041c\u0430\u0442\u0438\u0430\u0441\u0430 \u0432\u0430\u043d \u0434\u0435 \u041c\u0435\u0435\u043d\u0442\u0430<\/em> (Matthias van de Meent, Neon), <a href=\"https:\/\/www.postgresql.eu\/events\/pgdayparis2024\/schedule\/session\/5298-calculating-the-future-how-to-model-postgresql-performance\/\">Calculating the future: how to model PostgreSQL performance<\/a> &#8212; <em>\u0414\u043c\u0438\u0442\u0440\u0438\u0439 &#8216;erthalion&#8217; \u0414\u043e\u043b\u0433\u043e\u0432<\/em> (Dmitry Dolgov, \u0441 2022 Rad Hat), \u043f\u0443\u0433\u0430\u044e\u0449\u0435\u0435 <a href=\"https:\/\/www.postgresql.eu\/events\/pgdayparis2024\/schedule\/session\/5333-postgresql-worst-practices\/\">PostgreSQL worst practices<\/a> &#8212; <em>\u0418\u043b\u044c\u0438 \u041a\u043e\u0441\u043c\u043e\u0434\u0435\u043c\u044c\u044f\u043d\u0441\u043a\u043e\u0433\u043e<\/em> (Ilya Kosmodemiansky) \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u044b.<\/p>\n<p><a href=\"https:\/\/www.citusdata.com\/posette\/2024\/\"><strong>POSETTE<\/strong><\/a><\/p>\n<p>\u0422\u0430\u043a \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <strong>Citus Con<\/strong> \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442\u0441\u044f 11-13 \u0438\u044e\u043d\u044f. \u0415\u0441\u0442\u044c \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0439 \u0438 \u043f\u0440\u043e\u0447\u0438\u0445 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>19 \u044f\u043d\u0432\u0430\u0440\u044f\u00a0\u2013 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u0437\u0430\u044f\u0432\u043a\u0438 (CFP),<\/p>\n<\/li>\n<li>\n<p>7 \u0430\u043f\u0440\u0435\u043b\u044f \u00a0\u2013 \u043d\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u0437\u0430\u044f\u0432\u043a\u0438,<\/p>\n<\/li>\n<li>\n<p>17 \u0430\u043f\u0440\u0435\u043b\u044f\u00a0\u2013 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u044f\u044e\u0442\u0441\u044f \u0434\u043e\u043a\u043b\u0430\u0434\u0447\u0438\u043a\u0438,<\/p>\n<\/li>\n<li>\n<p>1 \u043c\u0430\u044f\u00a0\u2013 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430,<\/p>\n<\/li>\n<li>\n<p>2 \u043c\u0430\u044f\u00a0\u2013 \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f (Virtual Speaker Meet &amp; Greet),<\/p>\n<\/li>\n<li>\n<p>13-17 &amp; 20-24 \u0438\u044e\u043d\u044f \u00a0\u2013 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u0432,<\/p>\n<\/li>\n<li>\n<p>11-13 \u0438\u044e\u043d\u044f <strong> <\/strong>\u00a0\u2013 \u0441\u0430\u043c\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.postgresql.org\/about\/news\/pgconfbe-2024-call-for-papers-sponsors-2804\/\"><strong>PostgreSQL: PGConf.BE 2024: Call for Papers &amp; Sponsors<\/strong><\/a> <\/p>\n<p><a href=\"https:\/\/pgconf.be\/\">PGConf.be 2024<\/a>\u00a0\u043f\u0440\u043e\u0439\u0434\u0451\u0442 7 \u043c\u0430\u044f, 4-\u0439 \u0440\u0430\u0437 \u0432 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Haasrode,_Leuven\">\u0425\u0430\u0430\u0441\u0440\u043e\u0434\u0435, \u041b\u0451\u0432\u0435\u043d<\/a>. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u043e\u043a\u0430 \u043d\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0430, \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0442\u043e\u0436\u0435, \u0430 \u0437\u0430\u044f\u0432\u043a\u0438 \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/pgconf.be\/#cfs\">\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u044c<\/a> &#8212; \u0434\u043e 25 \u043c\u0430\u0440\u0442\u0430.<\/p>\n<p><a href=\"https:\/\/www.pgday.ch\/2024\/\"><strong>Swiss PGDay 2024<\/strong><\/a><\/p>\n<p>\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0438\u0435 PG-\u0434\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c\u0441\u044f 27-28 \u0438\u044e\u043d\u044f \u0432 \u0420\u0430\u043f\u043f\u0435\u0440\u0441\u0432\u0438\u043b\u0435, \u043d\u0435\u0434\u0430\u043b\u0435\u043a\u043e \u043e\u0442 \u0426\u044e\u0440\u0438\u0445\u0430. \u0414\u0432\u0430 \u043f\u043e\u0442\u043e\u043a\u0430, \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043c\u0430\u0441\u0441\u0430 \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u0432 \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c, \u043d\u043e \u0435\u0441\u0442\u044c \u0438 \u043d\u0430 \u043d\u0435\u043c\u0435\u0446\u043a\u043e\u043c. \u0417\u0430\u044f\u0432\u043a\u0438 \u043d\u0430 \u0434\u043e\u043a\u043b\u0430\u0434\u044b <a href=\"https:\/\/www.pgday.ch\/2024\/#cfs\">\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f<\/a> \u0434\u043e 8 \u0430\u043f\u0440\u0435\u043b\u044f, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u0443\u044e\u0442 \u043a \u043a\u043e\u043d\u0446\u0443 \u0430\u043f\u0440\u0435\u043b\u044f. <\/p>\n<h2>\u041a\u043e\u043d\u0442\u0440\u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u044b\u0435 NULL-\u044b<\/h2>\n<p>\u042d\u0442\u0430 \u0442\u0435\u043c\u0430 \u0432\u043e\u043e\u0431\u0449\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f: \u0442\u043e\u043d\u043a\u0438\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0438.<\/p>\n<p><em>\u041a\u0440\u0438\u0441 \u0422\u0440\u0435\u0439\u0432\u0435\u0440\u0441<\/em> (Chris Travers), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 <a href=\"https:\/\/pgconf.ru\/talk\/1589261\">\u043f\u0440\u0438\u0435\u0437\u0436\u0430\u043b<\/a> \u0434\u0430\u0436\u0435 \u043d\u0430 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e\u0434\u043d\u0438\u0439 PGConf.Russia, \u0434\u0430\u0432\u0435\u0447\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b \u0432\u0435\u0431\u0438\u043d\u0430\u0440 \u043f\u043e\u0434 \u044d\u0433\u0438\u0434\u043e\u0439 Vettabase:<\/p>\n<p><a href=\"https:\/\/meeting.zoho.eu\/meeting\/register?sessionId=1236124490\"><strong>Everything You Probably Never Wanted to Know about NULLs in PostgreSQL<\/strong><\/a><\/p>\n<p>\u041e\u043d \u043f\u0438\u0448\u0435\u0442: <em>\u0433\u043b\u0430\u0432\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e, \u0432\u043e\u043f\u0440\u0435\u043a\u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u043c\u0443 \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u044e, NULL-\u044b \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u0447\u0451\u0442\u043a\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044f. \u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u0438\u0445 \u0441\u043e\u0432\u0441\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435, \u0438 \u0434\u0430\u0436\u0435 \u043e\u043f\u044b\u0442\u043d\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432\u043f\u0440\u043e\u0441\u0430\u043a.<\/em><\/p>\n<p>\u041a\u0441\u0442\u0430\u0442\u0438, \u0432 \u0431\u043b\u043e\u0433\u0430\u0445 \u044d\u0442\u043e\u0439 \u043a\u043e\u043d\u0441\u0430\u043b\u0442\u0438\u043d\u0433\u043e\u0432\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0435\u0441\u0442\u044c \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f NULL \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0421\u0423\u0411\u0414: <a href=\"https:\/\/vettabase.com\/null-comparisons-in-mariadb-postgresql-and-sqlite\/\">NULL comparisons in MariaDB, PostgreSQL, and SQLite<\/a> &#8212; \u0441\u0442\u0430\u0442\u044c\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0430 Vettabase <a href=\"https:\/\/vettabase.com\/author\/federico-razzoli\/\"><em>\u0424\u0435\u0434\u0435\u0440\u0438\u043a\u043e \u0420\u0430\u0446\u0446\u043e\u043b\u0438<\/em><\/a> (Federico Razzoli, \u0436\u0438\u0432\u0451\u0442 \u0432 \u0428\u043e\u0442\u043b\u0430\u043d\u0434\u0438\u0438). \u041e\u043d \u0431\u043e\u043b\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u0433\u0440\u0443\u0436\u0451\u043d \u0432 MariaDB (\u0438\u0437\u0434\u0430\u043b \u043a\u043d\u0438\u0436\u043a\u0443 \u0432 \u041e&#8217;\u0420\u0435\u0439\u043b\u0438 <a href=\"https:\/\/www.oreilly.com\/library\/view\/mastering-mariadb\/9781783981540\/\">Mastering MariaDB<\/a>). \u0410 <a href=\"https:\/\/vettabase.com\/category\/postgresql\/\">\u043d\u0430 PostgreSQL<\/a> \u0442\u0430\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f <a href=\"https:\/\/vettabase.com\/author\/michael-aboagye\/\"><em>\u041c\u0430\u0439\u043a\u043b \u0410\u0431\u043e\u0430\u0434\u0436\u0438<\/em><\/a> (Michael Aboagye). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 Postgres \u0441 AlloyDB: <a href=\"https:\/\/vettabase.com\/alloydb-versus-postgresql\/\">AlloyDB versus PostgreSQL: a performance review<\/a>.<\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/postgrespro\/articles\/697300\/\"><strong>NULL-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 PostgreSQL: \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f<\/strong><\/a><\/p>\n<p><em>\u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u0411\u043e\u0440\u0449\u0435\u0432<\/em>\u00a0(<a href=\"https:\/\/habr.com\/ru\/users\/aborschev\/\">@aborschev<\/a>, Postgres Professional) \u0441\u0434\u0435\u043b\u0430\u043b \u0432 \u0441\u0432\u043e\u0451 \u0432\u0440\u0435\u043c\u044f \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0438 \u043e\u0431\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u0432 \u043d\u0430 <a href=\"https:\/\/pgconf.ru\/2022\/\">PGConf.Russia 2022<\/a> &#8212; \u043e \u043d\u044e\u0430\u043d\u0441\u0430\u0445 \u043b\u043e\u0433\u0438\u043a\u0438 NULL:<\/p>\n<ul>\n<li>\n<p>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 NULL?<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a \u043e\u043d \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438?<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0411\u0414?<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 NULL.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043c \u0435\u0441\u0442\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u0435\u0449\u0438: <em>\u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u043e\u0442 \u043c\u0438\u043d\u0443\u0441 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u0438 \u0434\u043e \u043f\u043b\u044e\u0441 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u0438 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u043e\u0442 NULL \u0434\u043e NULL, \u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u2014 \u043d\u0435\u0432\u0435\u0440\u043d\u043e. <\/em><strong><em>\u0412\u044b\u0445\u043e\u0434\u0438\u0442, \u0447\u0442\u043e NULL \u0437\u0434\u0435\u0441\u044c \u0434\u0430\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u044c.<\/em><\/strong><\/p>\n<p>\u0412\u043e\u0442 \u0435\u0433\u043e <a href=\"https:\/\/pgconf.ru\/media\/2022\/07\/25\/%D0%91%D0%BE%D1%80%D1%89%D0%B5%D0%B2.pptx\">\u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a>, \u0432\u0438\u0434\u0435\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0438\u0437 \u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u0430\u0431\u0438\u043d\u0435\u0442\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430.<\/p>\n<h2>\u0415\u0449\u0451 \u0441\u0442\u0430\u0442\u044c\u0438<\/h2>\n<p><a href=\"https:\/\/www.crunchydata.com\/blog\/postgres-postmaster-file-explained\"><strong>Postgres Postmaster File Explained<\/strong><\/a><\/p>\n<p>\u041d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0432\u0430\u043c \u043f\u043e\u043f\u0430\u0434\u0430\u043b\u0441\u044f \u0444\u0430\u0439\u043b <code>postmaster.pid<\/code>\u00a0\u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u041e\u043d \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 Postgres \u0438 \u0443\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0448\u0442\u0430\u0442\u043d\u043e\u043c \u0448\u0430\u0442\u0434\u0430\u0443\u043d\u0435. \u0427\u0442\u043e \u0437\u043d\u0430\u0447\u0430\u0442 \u0446\u0438\u0444\u0438\u0440\u043a\u0438 \u0432 \u043d\u0451\u043c?  <\/p>\n<p><a href=\"https:\/\/www.crunchydata.com\/blog\/an-overview-of-distributed-postgresql-architectures\"><strong>An Overview of Distributed PostgreSQL Architectures<\/strong><\/a><\/p>\n<p>\u042d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043b <em>\u041c\u0430\u0440\u043a\u043e \u0421\u043b\u043e\u0442<\/em> (Marco Slot). \u041e\u043d \u0443\u0441\u043f\u0435\u043b \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 Citus Data, \u043f\u043e\u0442\u043e\u043c, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432 Microsoft, \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u043d \u0432 Crunchy Data. \u0418 \u0432\u043e \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u043e\u043d \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u0441\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c\u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430\u043c\u0438. \u041e\u043d \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a founding engineer \u0432 Citus. \u0415\u0441\u0442\u044c \u0435\u0433\u043e \u0441\u043b\u0430\u0439\u0434\u044b <a href=\"https:\/\/www.postgresql.eu\/events\/pgconfeu2023\/sessions\/session\/4826\/slides\/416\/Distributed%20PostgreSQL%202023.pdf\">Distributed PostgreSQL<\/a> \u0441 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 <a href=\"https:\/\/2023.pgconf.eu\/\">PostgreSQL Conference Europe 2023<\/a>.<\/p>\n<p>\u041c\u0430\u0440\u043a\u043e \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440 \u0438 \u0438\u0445 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043b\u0435\u0439:<\/p>\n<ul>\n<li>\n<p>\u0421\u0435\u0442\u0435\u0432\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 (<em>Network-attached block storage<\/em>, \u043d\u0430\u043f\u0440. EBS).<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u043f\u043b\u0438\u043a\u0438 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f (<em>Read replicas<\/em>).<\/p>\n<\/li>\n<li>\n<p>\u0421\u0423\u0411\u0414, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0434 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 (<em>DBMS-optimized cloud storage<\/em>, \u043d\u0430\u043f\u0440. Aurora).<\/p>\n<\/li>\n<li>\n<p>\u041c\u0443\u043b\u044c\u0442\u0438\u043c\u0430\u0441\u0442\u0435\u0440 (\u043c\u043e\u0439 \u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 <em>active-active<\/em>, \u043d\u0430\u043f\u0440. BDR).<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0435 \u0448\u0430\u0440\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 (<em>Transparent Sharding<\/em>\u00a0\u043d\u0430\u043f\u0440. Citus)<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 SQL-\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 key-value (<em>Distributed key-value stores with SQL<\/em>, \u043d\u0430\u043f\u0440. Yugabyte).<\/p>\n<\/li>\n<\/ul>\n<h2>\u041e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435<\/h2>\n<p>\u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c: \u0432\u044b\u0448\u043b\u0430 \u043d\u043e\u0432\u0430\u044f \u043a\u043d\u0438\u0433\u0430: <a href=\"https:\/\/edu.postgrespro.ru\/monitoring.pdf\"><strong>\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 PostgreSQL<\/strong><\/a> <em>\u0410\u043b\u0435\u043a\u0441\u0435\u044f \u041b\u0435\u0441\u043e\u0432\u0441\u043a\u043e\u0433\u043e,<\/em> <a href=\"https:\/\/edu.postgrespro.ru\/monitoring.pdf\">\u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043a\u043d\u0438\u0433\u0443<\/a> \u043c\u043e\u0436\u043d\u043e\u00a0\u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 PDF. \u041a\u043d\u0438\u0433\u0430 \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430, \u0432 \u043d\u0435\u0439 \u0435\u0441\u0442\u044c \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u043e\u0431 \u0438\u043c\u0435\u044e\u0449\u0435\u043c\u0441\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438, \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u0438\u0435\u043c\u044b \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p><a href=\"https:\/\/postgrespro.com\/blog\/pgsql\/5969985\"><strong>PostgreSQL 14 Internals<\/strong> <\/a>1-\u044f \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 <a href=\"https:\/\/postgresweekly.com\/issues\/536\"><strong>The Best of Postgres Weekly in\u00a02023<\/strong><\/a>  <\/p>\n<p>\u0412 \u044f\u043d\u0432\u0430\u0440\u0435 \u043d\u0430 Postgres Weekly \u0440\u0435\u0448\u0438\u043b\u0438 (\u0440\u0430\u043d\u044c\u0448\u0435 \u044d\u0442\u043e \u0431\u044b\u043b <em>\u0414\u044d\u0432\u0438\u0434 \u0424\u0435\u0442\u0442\u0435\u0440<\/em> (David Fetter), \u043d\u043e \u043a\u0442\u043e \u0441\u0435\u0439\u0447\u0430\u0441 &#8212; \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u0442) \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c The <a href=\"https:\/\/postgresweekly.com\/issues\/536\">Best of Postgres Weekly in\u00a02023<\/a>. \u0418 \u0432\u043e\u0437\u0433\u043b\u0430\u0432\u0438\u043b\u0430 \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043d\u0438\u0436\u043a\u0430 <em>\u0415\u0433\u043e\u0440\u0430 \u0420\u043e\u0433\u043e\u0432\u0430<\/em> <a href=\"https:\/\/postgrespro.com\/blog\/pgsql\/5969985\">PostgreSQL 14 Internals<\/a> (\u043f\u0435\u0440\u0435\u0432\u043e\u0434 <em>\u041b\u044e\u0434\u043c\u0438\u043b\u044b \u041c\u0430\u043d\u0442\u0440\u043e\u0432\u043e\u0439<\/em>). \u0414\u044d\u0432\u0438\u0434 (\u0438\u043b\u0438 \u043d\u0435 \u0414\u044d\u0432\u0438\u0434) \u043f\u0440\u0438\u0437\u043d\u0430\u0451\u0442\u0441\u044f: <em>\u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0432\u0430\u0442\u043e, \u0447\u0442\u043e \u043a\u043d\u0438\u0433\u0430 \u043e 14-\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u0442\u0430\u043b\u0430 \u0441\u0430\u043c\u043e\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u0432 2023, \u043d\u043e \u0434\u043e\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u0434\u043e\u043b\u0433\u043e \u0438 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f <\/em><strong><em>\u0432 \u0432\u044b\u0441\u0448\u0435\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u043e\u0439<\/em><\/strong><em> \u0438 \u043a \u0431\u043e\u043b\u0435\u0435 \u0441\u0432\u0435\u0436\u0438\u043c \u0432\u0435\u0440\u0441\u0438\u044f\u043c Postgres.<\/em> <em>\u041e\u043d\u0430 \u0434\u043e\u043a\u0430\u043f\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043e \u0441\u0430\u043c\u044b\u0445 \u0433\u043b\u0443\u0431\u0438\u043d, \u043d\u0430 \u0435\u0451 600+ \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u043c\u043d\u043e\u0433\u043e \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c, \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043a\u043e\u0434\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u0445, \u0431\u0443\u0434\u044c \u0442\u043e \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438, \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.<\/em><\/p>\n<p><a href=\"https:\/\/www.youtube.com\/playlist?list=PLaFqU3KCWw6KiuPmgZxG7SzVAlXPe1DOR\"><strong>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 Postgres Pro Enterprise 13<\/strong><\/a><\/p>\n<p>\u041d\u0430 youtube \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u044b \u0432\u0438\u0434\u0435\u043e \u0443\u0447\u0435\u0431\u043d\u043e\u0433\u043e \u043a\u0443\u0440\u0441\u0430 &#171;PGPRO. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 Postgres Pro&#187; \u043f\u043e \u0432\u0435\u0440\u0441\u0438\u0438 13.  \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u043a\u0443\u0440\u0441\u043e\u0432 \u043d\u0430 16-\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u043e\u043c \u0433\u043e\u0434\u0443.   <\/p>\n<p><a href=\"https:\/\/link.springer.com\/book\/10.1007\/979-8-8688-0069-6\"><strong>PostgreSQL Query Optimization. The Ultimate Guide to Building Efficient Queries<\/strong><\/a><\/p>\n<p>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u0430 \u043a\u043d\u0438\u0433\u0430 <em>\u0413\u0435\u043d\u0440\u0438\u044d\u0442\u0442\u044b &#8216;\u0425\u0435\u0442\u0442\u0438&#8217; \u0414\u043e\u043c\u0431\u0440\u043e\u0432\u0441\u043a\u043e\u0439<\/em> (Henrietta Dombrovskaya), <em>\u0411\u043e\u0440\u0438\u0441\u0430 \u041d\u043e\u0432\u0438\u043a\u043e\u0432\u0430<\/em> (Boris Novikov) \u0438 <em>\u0410\u043d\u043d\u044b \u0411\u0435\u0439\u043b\u0438\u043a\u043e\u0432\u043e\u0439 <\/em>(Anna Bailliekova). \u042d\u0442\u043e \u0432\u0442\u043e\u0440\u043e\u0435 \u0438\u0437\u0434\u0430\u043d\u0438\u0435. \u041a\u043d\u0438\u0433\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043d\u0430 <a href=\"https:\/\/link.springer.com\/book\/10.1007\/979-8-8688-0069-6\">Apress<\/a>\u00a0\u0438 \u043d\u0430 <a href=\"https:\/\/www.amazon.com\/PostgreSQL-Query-Optimization-Ultimate-Efficient\/dp\/B0CK5GWWQ1\">Amazon<\/a>. <a href=\"https:\/\/www.labirint.ru\/books\/828097\/?ysclid=lsc8qq6u2l925685128\">\u041f\u0435\u0440\u0432\u043e\u0435 \u0438\u0437\u0434\u0430\u043d\u0438\u0435<\/a> \u0443\u0436\u0435 \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043e \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0438 \u0438\u0437\u0434\u0430\u043d\u043e <a href=\"https:\/\/www.labirint.ru\/pubhouse\/1416\/\">\u0414\u041c\u041a-\u041f\u0440\u0435\u0441\u0441.<\/a> \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438 \u043e\u0446\u0435\u043d\u0438\u043b\u0438 \u043a\u043d\u0438\u0433\u0443 \u0432 10 \u0437\u0432\u0451\u0437\u0434 \u0438\u0437 10.<\/p>\n<p><a href=\"https:\/\/pganalyze.com\/ebooks\/tuning-postgres-autovacuum\"><strong>Tuning Autovacuum for best Postgres performance<\/strong><\/a><\/p>\n<p>\u0414\u0430, \u0432\u0430\u043a\u0443\u0443\u043c\u0443 \u043f\u043e\u0441\u0432\u044f\u0442\u0438\u043b\u0438 \u0446\u0435\u043b\u0443\u044e \u043a\u043d\u0438\u0436\u043a\u0443, \u043f\u0443\u0441\u0442\u044c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443\u044e. \u0410\u0432\u0442\u043e\u0440 \u043a\u043e\u043b\u043b\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 &#8212; <a href=\"https:\/\/pganalyze.com\/ebooks\/tuning-postgres-autovacuum\">pganalyze<\/a>.<\/p>\n<p><a href=\"https:\/\/fluca1978.github.io\/2024\/01\/27\/LearnPostgreSQLTechBits.html\"><strong>Learn PostgreSQL<\/strong><\/a><\/p>\n<p>\u0412\u0442\u043e\u0440\u043e\u0435 \u0438\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043d\u0438\u0433\u0438 <em>\u041b<\/em>\u0443<em>\u043a\u0438 \u0424\u0435\u0440\u0440\u0430\u0440\u0438<\/em> (Luca Ferrari) \u0438 <em>\u042d\u043d\u0440\u0438\u043a\u043e \u041f\u0435\u0440\u043e\u0446\u0446\u0438<\/em> (Enrico Pirozzi) \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043d\u0430 \u0448\u043e\u0443 <em>\u0414\u0430\u0433\u0430 \u041e\u0440\u0442\u0438\u0446\u0430<\/em> (Doug Ortiz) <a href=\"https:\/\/fluca1978.github.io\/2024\/01\/27\/LearnPostgreSQLTechBits.html\">Tech Bits<\/a>. \u0415\u0441\u0442\u044c <a href=\"https:\/\/www.youtube.com\/watch?v=fA2MhUpyM44\">\u043f\u043e\u0434\u043a\u0430\u0441\u0442 \u043d\u0430 YouTube<\/a>.<\/p>\n<hr\/>\n<p><em>\u041d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0432\u0441\u0451.<\/em><\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/783492\/\"> https:\/\/habr.com\/ru\/articles\/783492\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<h2>\u0423\u043c\u0435\u0440 \u041d\u0438\u043a\u043b\u0430\u0443\u0441 \u0412\u0438\u0440\u0442<\/h2>\n<p>1-\u0433\u043e \u044f\u043d\u0432\u0430\u0440\u044f \u044d\u0442\u043e\u0442 \u043c\u0438\u0440 \u043f\u043e\u043a\u0438\u043d\u0443\u043b \u0412\u0435\u043b\u0438\u043a\u0438\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a &#8212; <em>\u041d\u0438\u043a\u043b\u0430\u0443\u0441 \u0412\u0438\u0440\u0442<\/em> (Niklaus Emil Wirth). \u0415\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f: Pascal, Algol-W, Euler, Modula-1, 2, Oberon-1, 2.<\/p>\n<p>\u041d\u043e \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u041d\u0438\u043a\u043b\u0430\u0443\u0441 \u0431\u044b\u043b \u0433\u043b\u0430\u0432\u043d\u044b\u043c \u0438\u0434\u0435\u043e\u043b\u043e\u0433\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0432\u0435\u0440\u0445\u0443 \u0432\u043d\u0438\u0437, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u042f \u043d\u0435 \u043d\u0430\u0448\u0451\u043b (\u0430 \u0432\u044b?) \u0432\u044b\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043d\u0438\u0439 \u041d\u0438\u043a\u043b\u0430\u0443\u0441\u0430 \u043e \u0431\u0430\u0437\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u044f\u0437\u044b\u043a\u0430\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c \u043a\u0430\u043a-\u0442\u043e \u0432\u043b\u0438\u044f\u043b\u0438 \u0438 \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412\u043e\u0442 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/theswissbay.ch\/pdf\/Gentoomen%20Library\/Algorithms\/Data%20Structure%20And%20Algorithms%20Books\/Algorithms%20and%20Data%20Structures%20-%20Niklaus%20Wirth.pdf\"><strong>Algorithms and Data Structures<\/strong><\/a><strong>,<\/strong> \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u043d \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u0438 \u043e \u0432\u0438\u0434\u0430\u0445 \u0434\u0435\u0440\u0435\u0432\u044c\u0435\u0432, \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445 \u043e\u0431\u0445\u043e\u0434\u0430 \u0438\u0445, \u0438 \u043e \u043a\u043b\u044e\u0447\u0430\u0445 \u0438 \u0445\u044d\u0448\u0430\u0445, \u0438 \u043e \u0432\u0437\u0430\u0438\u043c\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f\u0445 \u043c\u0435\u0436\u0434\u0443 \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438. \u0410 \u0432\u043e\u0442 \u043a\u043e\u0440\u043e\u0442\u0435\u043d\u044c\u043a\u0438\u0439 \u0434\u0438\u0430\u043b\u043e\u0433 <a href=\"https:\/\/www.youtube.com\/watch?v=DRkfqiF46MQ\"><strong>\u043e\u0431 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u0438<\/strong><\/a> \u0432 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0410 \u0432 <a href=\"https:\/\/www.youtube.com\/watch?v=OEmMx55SF8U\">\u044d\u0442\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e<\/a> \u041d\u0438\u043a\u043b\u0430\u0443\u0441 \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u0447\u0430\u0440\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a. \u041a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u0438\u0433\u0440\u0430\u043b \u0432 \u0436\u0435\u043b\u0435\u0437\u043d\u0443\u044e \u0434\u043e\u0440\u043e\u0433\u0443 \u0438 \u043c\u0435\u0447\u0442\u0430\u043b \u0441\u0442\u0430\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0438\u0441\u0442\u043e\u043c \u043b\u043e\u043a\u043e\u043c\u043e\u0442\u0438\u0432\u0430.<\/p>\n<p>\u041d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0423\u0440\u0430\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0424\u0435\u0434\u0435\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0430 \u041d\u0438\u043a\u043b\u0430\u0443\u0441 \u0412\u0438\u0440\u0442 <em>\u0432\u043e\u0437\u0433\u043b\u0430\u0432\u043b\u044f\u0435\u0442<\/em> \u0441\u043f\u0438\u0441\u043e\u043a <a href=\"https:\/\/urfu.ru\/en\/about-the-university\/honorary-doctors\/\"><strong>\u041f\u043e\u0447\u0451\u0442\u043d\u044b\u0445 \u0414\u043e\u043a\u0442\u043e\u0440\u043e\u0432<\/strong><\/a> (doctor honoris causa) <strong>\u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0439 \u0410\u043a\u0430\u0434\u0435\u043c\u0438\u0438 \u041d\u0430\u0443\u043a<\/strong> (\u0442\u0430\u043c \u0443 \u043d\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f &#8212; <em>\u0420\u0430\u0432\u0438 \u0428\u0430\u043d\u043a\u0430\u0440,<\/em> \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 (<a href=\"https:\/\/www.artofliving.org\/founder\">\u0433\u0443\u0440\u0443<\/a>, \u043d\u0435 \u043f\u0443\u0442\u0430\u0442\u044c \u0441 \u0432\u0435\u043b\u0438\u043a\u0438\u043c <a href=\"https:\/\/ya.ru\/video\/preview\/3830346472756793304\">\u043c\u0443\u0437\u044b\u043a\u0430\u043d\u0442\u043e\u043c<\/a>), \u0438 \u0441 <em>\u041d\u0443\u0440\u0441\u0443\u043b\u0442\u0430\u043d\u043e\u043c \u041d\u0430\u0437\u0430\u0440\u0431\u0430\u0435\u0432\u044b\u043c<\/em>).<\/p>\n<p>\u0415\u0433\u043e \u0438\u043c\u0435\u043d\u0435\u043c <a href=\"https:\/\/en.wikipedia.org\/wiki\/Meanings_of_minor_planet_names:_21001%E2%80%9322000#655\">\u043d\u0430\u0437\u0432\u0430\u043d <strong>\u0430\u0441\u0442\u0435\u0440\u043e\u0438\u0434<\/strong><\/a>.<\/p>\n<h2>\u0420\u0435\u043b\u0438\u0437\u044b<\/h2>\n<p><a href=\"https:\/\/postgrespro.ru\/docs\/shardman\/14\/release-14-10-2\"><strong>Shardman 14.10.2<\/strong><\/a><strong>, <\/strong><a href=\"https:\/\/postgrespro.ru\/docs\/shardman\/14\/release-14-10-3\"><strong>14.10.3<\/strong><\/a><\/p>\n<p>\u0415\u0449\u0451 <a href=\"https:\/\/habr.com\/ru\/companies\/postgrespro\/articles\/773452\/\">\u043d\u0435\u0434\u0430\u0432\u043d\u043e<\/a> \u043c\u044b \u043f\u0438\u0441\u0430\u043b\u0438, \u0447\u0442\u043e \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e Postgres \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 <a href=\"https:\/\/postgrespro.ru\/docs\/\">Postgres Professional<\/a> \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u044b\u0439 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 &#8212; <a href=\"https:\/\/postgrespro.ru\/docs\/ora2pgpro\/23\/index\">ora2pgpro<\/a>. \u0410 \u0441\u0435\u0439\u0447\u0430\u0441 \u0442\u0430\u043c 5 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432: \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f <a href=\"https:\/\/postgrespro.ru\/docs\/shardman\/14\/index\">Shardman<\/a>. \u0412\u0441\u0435\u0433\u043e \u043f\u043e\u043a\u0430 2 \u0440\u0435\u043b\u0438\u0437\u0430: <\/p>\n<p><a href=\"https:\/\/postgrespro.ru\/docs\/shardman\/14\/release-14-10-2\">Postgres Pro Shardman 14.10.2<\/a> \u0438 <a href=\"https:\/\/postgrespro.ru\/docs\/shardman\/14\/release-14-10-3\">Postgres Pro Shardman 14.10.3<\/a>.<\/p>\n<p>\u0412 14.10.3 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u0410 \u0432 \u0437\u0430\u043c\u0435\u0442\u043a\u0430\u0445 \u043a \u0440\u0435\u043b\u0438\u0437\u0443 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e:<\/p>\n<p>\u0421\u0423\u0411\u0414\u00a0Shardman\u00a0\u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430\u00a0PostgreSQL\u00a0\u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f\u043c\u0438, \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0432 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u0445\u00a0shardman\u00a0\u0438\u00a0<a href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/14\/postgres-fdw\">postgres_fdw<\/a>. \u0423\u0442\u0438\u043b\u0438\u0442\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0432 \u0432\u0438\u0434\u0435 \u0441\u043b\u0443\u0436\u0431\u044b\u00a0<a href=\"https:\/\/postgrespro.ru\/docs\/shardman\/14\/app-shardmand\">shardmand\u00a0<\/a>\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u00a0<a href=\"https:\/\/postgrespro.ru\/docs\/shardman\/14\/app-shardmanctl\">shardmanctl\u00a0<\/a>. \u041e\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044e\u044e \u0441\u043b\u0443\u0436\u0431\u0443\u00a0etcd\u00a0\u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u0438 \u043e\u0431\u043c\u0435\u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439.<\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<\/p>\n<ul>\n<li>\n<p>\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 ACID \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 DDL \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u0432\u0441\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.<\/p>\n<\/li>\n<li>\n<p>\u042d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0443\u0437\u043b\u0430\u043c\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418 \u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0435, \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435.<\/p>\n<p>\u041d\u043e \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0435\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e. \u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043c\u0435\u043d\u044e \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b \u041f\u0440\u043e\u0434\u0443\u043a\u0442\u044b. \u0422\u0430\u043c \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c <a href=\"https:\/\/postgrespro.ru\/products\/shardman\">Shardman<\/a>. \u0412 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b \u0434\u0435\u043c\u043e\u043a\u0440\u0430\u0442\u0438\u0447\u043d\u0435\u0439, \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0445 \u0441\u0445\u0435\u043c, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b. \u0421\u0440\u0435\u0434\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u0438 &#8212; <a href=\"https:\/\/postgrespro.ru\/products\/PPEM\">PPEM<\/a> (Postgres Pro Enterprise Manager. \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u0432\u044b\u0448\u043b\u0430 \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f:<\/p>\n<p><a href=\"https:\/\/postgrespro.ru\/blog\/news\/5970547\"><strong>Postgres Pro Enterpise Manager 1.3.0<\/strong><\/a><\/p>\n<ul>\n<li>\n<p>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 <a href=\"https:\/\/postgrespro.ru\/docs\/enterprise\/16\/pgpro-pwr\">PGPRO_PWR<\/a>;<\/p>\n<\/li>\n<li>\n<p>\u044d\u043a\u0440\u0430\u043d \u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e \u0440\u043e\u043b\u044f\u0445 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0433\u0440\u0443\u043f\u043f\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0420\u0420\u0415\u041c;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 LDAP;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0441\u0435\u0441\u0441\u0438\u0438 \u0438\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0433\u043b\u0430\u043c\u0435\u043d\u0442\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f <a href=\"https:\/\/postgrespro.ru\/products\/PPEM\/installation\">\u0437\u0434\u0435\u0441\u044c<\/a>, \u0430 \u043f\u0430\u043a\u0435\u0442\u044b \u0441 1.3.1 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u041e\u0421 <a href=\"https:\/\/pubgit.postgrespro.ru\/ppem\/ppem\/-\/packages\">\u0437\u0434\u0435\u0441\u044c<\/a>. <\/p>\n<p><a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.0\"><strong>Greenmask 0.1.0<\/strong><\/a><strong>, <\/strong><a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.1\"><strong>0.1.1<\/strong><\/a><strong>, <\/strong><a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.2\"><strong>0.1.2<\/strong><\/a><\/p>\n<p>\u0417\u0435\u043b\u0451\u043d\u0430\u044f \u043c\u0430\u0441\u043a\u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u0438, \u043d\u043e \u0438 \u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0412\u0435\u0440\u0441\u0438\u044f <a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.0\">0.1.0<\/a> \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0430 \u0433\u043e\u0442\u043e\u0432\u043e\u0439 \u0434\u043b\u044f \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0412 <a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.1\">0.1.1<\/a> \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0435\u0449\u0451 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0435\u0440\u044b, \u0443\u043c\u0435\u044e\u0449\u0438\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<ul>\n<li>\n<p>\u0433\u0435\u043e\u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: <strong>RandomLatitude<\/strong>\u00a0\u0438\u00a0<strong>RandomLongitude<\/strong>;<\/p>\n<\/li>\n<li>\n<p>\u0432\u0440\u0435\u043c\u0435\u043d\u043d<em>\u044b<\/em>\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: <strong>RandomUnixTime<\/strong>\u00a0\u0438\u00a0<strong>RandomMonthName<\/strong>;<\/p>\n<\/li>\n<li>\n<p>\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435\u00a0<strong>RandomEmail<\/strong>\u00a0\u0438\u00a0<strong>RandomPhoneNumber<\/strong>;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 <strong>RandomIPv4<\/strong>\u00a0\u0438\u00a0<strong>RandomIPv6.<\/strong><\/p>\n<\/li>\n<\/ul>\n<p>(\u0412 <a href=\"https:\/\/www.postgresql.org\/about\/news\/greenmask-v010-release-2785\/\">\u0430\u043d\u043e\u043d\u0441\u0435 \u043d\u0430 PostgreSQL.org<\/a> \u044d\u0442\u0438 \u043d\u043e\u0432\u0448\u0435\u0441\u0442\u0432\u0430 \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043f\u0440\u0438\u043f\u0438\u0441\u0430\u043d\u044b \u0432\u0435\u0440\u0441\u0438\u0438 0.1.0). \u0412 \u0432\u0435\u0440\u0441\u0438\u0438 <a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.2\">0.1.2<\/a> \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f. <\/p>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f, \u0432\u0438\u0434\u0438\u043c\u043e, \u0438\u043d\u0442\u0435\u0440\u043d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043b\u043b\u0435\u043a\u0442\u0438\u0432: \u043a\u043e\u043d\u0442\u0440\u0438\u0431\u044c\u044e\u0442\u043e\u0440\u043e\u043c <a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.2\">0.1.2<\/a> \u0437\u043d\u0430\u0447\u0438\u0442\u0441\u044f <em>\u0414\u0436\u0435\u0444\u0444 \u0421\u0430\u0437\u0435\u0440\u043b\u044d\u043d\u0434<\/em> (Jeff Sutherland, \u0421\u0428\u0410 &#8212; <a class=\"mention\" href=\"\/users\/jeffsutherland-bluesky),\">@jeffsutherland-bluesky),<\/a>\u0432\u0435\u0440\u0441\u0438\u0438 <a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.1\">0.1.1<\/a> &#8212; <em>\u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041d\u0438\u043a\u0438\u0442\u0438\u043d<\/em> (Dmitry Nikitin, \u041a\u0438\u043f\u0440 &#8212; @gracingpro), <a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.0\">0.1.0<\/a> &#8212; <em>\u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440 \u0422\u0430\u0440\u0431\u0430\u0435\u0432<\/em> (Vladimir Tarbaev, \u041c\u043e\u0441\u043a\u0432\u0430 &#8212; @tarbaev-vl), \u0430 <a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.0-beta\">\u0431\u0435\u0442\u0443<\/a> \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u043b \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c &#8212; <em>\u0412\u0430\u0434\u0438\u043c \u0412\u043e\u0439\u0442\u0435\u043d\u043a\u043e<\/em> (Vadim Voitenko @wwoytenko. \u041e\u043d \u0436\u0435 \u0438 \u0430\u0432\u0442\u043e\u0440 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0444\u043e\u0440\u043a\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <a href=\"https:\/\/github.com\/wwoytenko\/postgres_exporter\">PostgreSQL metric exporter for Prometheus<\/a>. \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u00a0<a href=\"https:\/\/greenmask.io\/\">\u0437\u0434\u0435\u0441\u044c<\/a>, \u0440\u0435\u043b\u0438\u0437\u044b \u043d\u0430 \u0433\u0438\u0442\u0445\u0430\u0431\u0435 <a href=\"https:\/\/github.com\/GreenmaskIO\/greenmask\/releases\/tag\/v0.1.1\">\u0437\u0434\u0435\u0441\u044c<\/a>, \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0438\u0441\u044c\u043c\u0430 \u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 &#8212; <a href=\"mailto:support@greenmask.io\">\u0441\u044e\u0434\u0430<\/a>.<\/p>\n<p><a href=\"https:\/\/www.postgresql.org\/about\/news\/barman-3100-released-2798\/\"><strong>Barman 3.10.0<\/strong><\/a><\/p>\n<p>\u0411\u0430\u0440\u043c\u0435\u043d \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a <strong>B<\/strong>ackup<strong>A<\/strong>nd<strong>R<\/strong>ecovery-\u043c\u0435\u043d &#8212; \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u0445 Point-In-Time Recovery \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e PostgreSQL, \u043e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442  \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u043c \u043a\u043e\u043f\u0438\u0439 \u0438 \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0444\u0430\u0437\u0430\u043c\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f <a href=\"https:\/\/www.enterprisedb.com\/\">EDB<\/a>.<\/p>\n<p>\u0412 \u0432\u0435\u0440\u0441\u0438\u0438 <a href=\"https:\/\/github.com\/EnterpriseDB\/barman\/releases\/tag\/release%2F3.10.0\">3.10.0<\/a> \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043d\u043e\u0432\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u043d\u043e\u0432\u0430\u044f \u043e\u043f\u0446\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 \u0434\u0430\u0436\u0435 \u043d\u043e\u0432\u0430\u044f <em>\u043c\u043e\u0434\u0435\u043b\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438<\/em>. \u0418 \u0435\u0449\u0451 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u043e\u0441\u0443 \u043f\u0440\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0441 AWS S3 \u0438\u043b\u0438 Azure Blob Storage \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c <code>--max-bandwidth<\/code>.<\/p>\n<p><a href=\"https:\/\/github.com\/ANXS\/postgresql\"><strong>ANXS &#8212; Fairly full featured Ansible role for Postgresql<\/strong><\/a><\/p>\n<p>\u041f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0440\u043e\u043b\u044c, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0430\u044f \u0441 Ansible 2.4 \u0438 \u0432\u044b\u0448\u0435, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u0442 Postgres 12 \u0438 \u0432\u044b\u0448\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043c\u0438. \u041e\u043d\u0430 \u0443\u043c\u0435\u0435\u0442 \u0435\u0449\u0451 \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u0422\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Postgres 16.<\/p>\n<p><a href=\"https:\/\/github.com\/viggy28\/pg_savior\"><strong>pg_savior<\/strong><\/a><\/p>\n<p>\u041f\u043e\u0441\u0442\u0433\u0440\u0435\u0441-\u0421\u043f\u0430\u0441\u0438\u0442\u0435\u043b\u044c. \u041f\u0440\u043e\u0441\u0442\u0430\u044f \u0438 \u0433\u0435\u043d\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u0434\u0435\u044f: \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0431\u0435\u0437 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 WHERE &#8212; \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0441\u0435\u0447\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u043b\u0435\u043f\u044b\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0441\u0442\u0438, \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043f\u043e\u0442\u0435\u0440\u0435\u0439 \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e. \u0415\u0441\u0442\u044c \u0435\u0449\u0451 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438.<\/p>\n<h2>Badass Elephant \u0438 \u0440\u0435\u0435\u0441\u0442\u0440\u044b \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439<\/h2>\n<p>\u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, <em>\u0422\u0435\u043c\u0431\u043e<\/em> &#8212; \u0438\u043c\u044f \u043b\u0438\u0445\u043e\u0433\u043e \u0441\u043b\u043e\u043d\u0438\u043a\u0430 \u0438\u0437 \u0438\u0433\u0440\u044b <a href=\"https:\/\/en.wikipedia.org\/wiki\/Tembo_the_Badass_Elephant\">Tembo the Badass Elephant<\/a>. \u042d\u0442\u0438\u043c \u0436\u0435 \u0438\u043c\u0435\u043d\u0435\u043c \u0440\u0435\u0448\u0438\u043b\u0438 \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044e, \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0443\u044e \u0441\u0432\u043e\u044e \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0439 Postgres \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 &#8212; \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0438 \u0433\u0435\u043d\u0434\u0438\u0440 <em>\u0420\u0430\u0439 \u0423\u043e\u043a\u0435\u0440<\/em> (<a href=\"https:\/\/github.com\/ryw\">Ry Walker<\/a>) \u043e\u0431\u044a\u044f\u0432\u0438\u043b \u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 <a href=\"https:\/\/tembo.io\/blog\/ga\"><strong>Tembo Cloud<\/strong><\/a>.<\/p>\n<p>\u0418\u0434\u0435\u044f \u0442\u0430\u043a\u0430\u044f: \u0441\u0435\u0440\u0432\u0438\u0441\u044b Postgres \u043d\u0430 \u0432\u0441\u0435 \u0440\u0443\u043a\u0438: Postgres + Stacks. \u042d\u0442\u0438 &#171;\u0441\u0442\u044d\u043a\u0438&#187; \u0441\u0430\u043c\u044b\u0435 \u0440\u0430\u0437\u043d\u044b\u0435, \u0437\u0430\u0442\u043e\u0447\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u0434 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438: \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0439, \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0439, \u0432\u0440\u0435\u043c\u0435\u043d\u043d<em>\u044b<\/em>\u0435 \u0440\u044f\u0434\u044b \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.  \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0430\u0436 194 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439.<\/p>\n<p>\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u044f\u043d\u0432\u0430\u0440\u044f <a href=\"https:\/\/tembo.io\/blog\/welcoming-david-wheeler\">\u0432\u0437\u044f\u043b\u0438 \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443<\/a> <em>\u0414\u044d\u0432\u0438\u0434\u0430 \u0423\u0438\u043b\u0435\u0440\u0430<\/em> (David E. Wheeler) &#8212; \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044f <a href=\"https:\/\/pgxn.org\/\">PGXN (PostgreSQL Extension Network)<\/a>. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e \u043e\u043d \u0434\u0430\u0432\u043d\u043e \u043a\u043e\u043d\u0442\u0440\u0438\u0431\u044c\u044e\u0442\u043e\u0440 PostgreSQL, \u043f\u043e\u0434\u0430\u0440\u0438\u0432\u0448\u0438\u0439 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/www.postgresql.org\/docs\/current\/citext.html\">CITEXT2<\/a> &#8212; \u043d\u0435\u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445; \u0442\u0435\u0441\u0442\u043e\u0432\u0443\u044e \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 <a href=\"https:\/\/pgtap.org\/\">pgTAP<\/a>; \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438\u00a0<a href=\"https:\/\/sqitch.org\/\">Sqitch<\/a>. \u0423 \u0414\u044d\u0432\u0438\u0434\u0430 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 \u0441\u0430\u0439\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <a href=\"https:\/\/justatheory.com\/\">Just a Theory<\/a>. \u0422\u0430\u043c, \u0432 \u0431\u043b\u043e\u0433\u0435 \u043e\u043d \u0440\u0430\u0441\u043a\u0440\u044b\u043b \u0441\u0432\u043e\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 <em>\u0442\u0435\u043c\u0431\u043e\u043d\u0430\u0432\u0442\u0430<\/em>:<\/p>\n<p><a href=\"https:\/\/justatheory.com\/2024\/01\/tembonaut\/\"><strong>I&#8217;m a Postgres Extensions Tembonaut<\/strong><\/a><\/p>\n<ul>\n<li>\n<p>\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 &#8212; \u0437\u0430\u0434\u0430\u0447\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e PGXN \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0449\u0451 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0440\u0435\u0448\u0438\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>\u0423\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u044b \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0430\u043a\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 (binary packaging).<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c Postgres, \u0432\u044b\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043c.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c \u0438 \u0432\u043e\u043f\u043b\u043e\u0449\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0441\u0442\u0438\u043c\u0443\u043b\u0438\u0440\u0443\u044f \u0432\u0441\u0451 \u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c, \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/justatheory.com\/2024\/01\/pgxn-challenges\/\">PGXN Challenges<\/a> \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0439. \u0412 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u043f\u043e\u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 Go \u0438\u043b\u0438 Rust \u0442\u043e, \u0447\u0442\u043e \u0432 PGXN \u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0430 Perl \u0438 Ruby.<\/p>\n<p>\u0418 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u0423\u0438\u043b\u0435\u0440\u0430 \u0432\u043e\u0442 \u043e\u043d: \u043f\u043e\u0448\u043b\u0438 \u043e\u0434\u043d\u043e \u0437\u0430 \u0434\u0440\u0443\u0433\u0438\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043d\u0430 PGXN \u043e\u0442 Tembo:<\/p>\n<p><a href=\"https:\/\/pgxn.org\/dist\/vectorize\/0.9.0\/\"><strong>vectorize 0.9.0<\/strong>: The simplest way to do vector search on Postgres<\/a>,<\/p>\n<p><a href=\"https:\/\/pgxn.org\/dist\/pg_later\/0.0.14\/\"><strong>pg_later 0.0.14<\/strong>: Run queries now and get results later<\/a>,<\/p>\n<p><a href=\"https:\/\/pgxn.org\/dist\/pgmq\/1.1.1\/\"><strong>pgmq 1.1.1<\/strong>: A lightweight message queue like AWS SQS or RSMQ, but on Postgres<\/a>.<\/p>\n<p>\u041e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u0445 \u0432 Tembo \u043f\u0438\u0448\u0443\u0442 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435. <em>\u0410\u0434\u0430\u043c \u0425\u0435\u043d\u0434\u0435\u043b\u044c<\/em> (Adam Hendel) \u0432 \u0441\u0442\u0430\u0442\u044c\u0435<\/p>\n<p><a href=\"https:\/\/tembo.io\/blog\/tembo-data-warehouse\"><strong>How we built our customer data warehouse all on Postgres<\/strong><\/a><\/p>\n<p>\u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 <a href=\"https:\/\/github.com\/tembo-io\/clerk_fdw\">clerk_fdw<\/a>,\u00a0<a href=\"https:\/\/github.com\/tembo-io\/prometheus_fdw\">prometheus_fdw<\/a>, <a href=\"https:\/\/www.postgresql.org\/docs\/current\/postgres-fdw.html\">postgres_fdw<\/a>, <a href=\"https:\/\/github.com\/citusdata\/pg_cron\">pg_cron<\/a> \u0438 <a href=\"https:\/\/github.com\/pgpartman\/pg_partman\">pg_partman<\/a>.<\/p>\n<p><a href=\"https:\/\/tembo.io\/blog\/monitoring-with-prometheus-fdw\"><strong>Introducing prometheus_fdw: Seamless Monitoring in Postgres<\/strong><\/a><\/p>\n<p>\u042d\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 Tembo, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u0445, \u043a\u0442\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u043e\u043c \u0438\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b. \u041e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u043e\u0432\u044b\u043c\u0438 \u0430\u0433\u0435\u043d\u0442\u0430\u043c\u0438, \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 Prometheus. \u041e\u0431\u044b\u0447\u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0435 Prometheus \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0441\u0430\u043c\u0438 \u043f\u043e \u0441\u0435\u0431\u0435, \u0432\u043d\u0435 Postgres. \u0427\u0435\u0440\u0435\u0437 FDW \u043e\u043d\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 SQL, \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d<em>\u044b<\/em>\u0435 \u0440\u044f\u0434\u044b, \u0447\u0435\u043c \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u0432 Tembo. \u0420\u0430\u0431\u043e\u0442\u0443 \u0441 <a href=\"https:\/\/github.com\/tembo-io\/prometheus_fdw\">prometheus_fdw<\/a> \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442 \u0432 4-\u043c\u0438\u043d\u0443\u0442\u043d\u043e\u043c \u0432\u0438\u0434\u0435\u043e: <a href=\"https:\/\/www.youtube.com\/watch?v=LVuH4RtNQss\">Bring your Prometheus data into Postgres in 3 minutes<\/a>.<\/p>\n<p>\u041d\u043e \u0435\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u0445\u043e\u0442\u043d\u0438\u043a\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0438 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u0438:<\/p>\n<p><a href=\"https:\/\/pgt.dev\/\"><strong>Trunk<\/strong><\/a><\/p>\n<p>\u042d\u0442\u043e \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u043d\u044b\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0438 \u0440\u0435\u0435\u0441\u0442\u0440 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 PostgreSQL. \u041e\u043d\u0438 \u043e\u0445\u0432\u0430\u0442\u0438\u043b\u0438 \u043e\u043a\u043e\u043b\u043e 200 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 &#8212; \u043d\u0435 \u043f\u043e\u0440\u0430\u0436\u0430\u0435\u0442 \u0432\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043d\u043e \u044d\u0442\u043e \u043f\u043e\u043a\u0430. \u041a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0435\u0441\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440: \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u0437 15 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439, \u0441\u043a\u0430\u0436\u0435\u043c <a href=\"https:\/\/pgt.dev\/?cat=search\">\u041f\u043e\u0438\u0441\u043a<\/a> \u0438\u043b\u0438 <a href=\"https:\/\/pgt.dev\/?cat=auditing_logging\">\u0410\u0443\u0434\u0438\u0442\/\u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/a>.<\/p>\n<p>\u0410 \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u0438\u00a0<a href=\"https:\/\/database.dev\/\"><strong>dbdev<\/strong><\/a><strong>,<\/strong> \u0438\u00a0<a href=\"https:\/\/pgxman.com\/\"><strong>pgxman<\/strong><\/a>.<\/p>\n<p>\u0418\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043f\u0438\u0441\u043a\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439. \u041e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a:<\/p>\n<p><a href=\"https:\/\/gist.github.com\/joelonsql\/e5aa27f8cc9bd22b8999b7de8aee9d47\"><strong>1000+ PostgreSQL EXTENSIONs<\/strong><\/a><\/p>\n<p>\u0422\u0443\u0442 7 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 + \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f &#171;<a href=\"https:\/\/gist.github.com\/joelonsql\/e5aa27f8cc9bd22b8999b7de8aee9d47#uncategorized\">\u0432\u043d\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439<\/a>&#171;. \u0418 3\/4 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u043d\u0435\u0451. \u0414\u0430\u043b\u0435\u0435 \u043f\u043e \u043d\u0430\u0441\u0435\u043b\u0451\u043d\u043d\u043e\u0441\u0442\u0438 &#8212; <a href=\"https:\/\/gist.github.com\/joelonsql\/e5aa27f8cc9bd22b8999b7de8aee9d47#foreign-data-wrappers\">FDW<\/a>. \u0420\u0430\u0441\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0437\u0432\u0451\u0437\u0434\u043e\u0447\u043a\u0438 \u0437\u0440\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0441\u0438\u043c\u043f\u0430\u0442\u0438\u0439. \u041c\u0435\u0436\u0434\u0443 \u043f\u0440\u043e\u0447\u0438\u043c, 42 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u0436\u0438\u0432\u0443\u0442 \u043d\u0430 <a href=\"https:\/\/github.com\/postgrespro\/\">\u0433\u0438\u0442\u0445\u0430\u0431\u0435 Postgres Professional<\/a>.<\/p>\n<h2>\u041f\u044f\u0442\u043d\u0435\u0446\u044b, GPT, UUID-\u044b<\/h2>\n<p>\u042d\u0442\u0430 <a href=\"https:\/\/www.pgsqlphriday.com\/\">\u043f\u044f\u0442\u043d\u0435\u0446\u0430<\/a> \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u0430\u044f. \u041d\u0435 \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u0430\u044f \u0442\u0435\u043c\u0430 &#8212; \u0442\u0435\u043c\u0430 \u043a\u0430\u043a \u0442\u0435\u043c\u0430: <a href=\"https:\/\/mydbanotebook.org\/post\/uuid-fight\/\">UUID<\/a>. \u0410 \u0438\u0437-\u0437\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 <em>\u041f\u0430\u0432\u043b\u043e \u0413\u043e\u043b\u0443\u0431\u0430<\/em> (Pavlo Golub, Cybertec). \u041e\u043d \u043e\u0442\u0432\u0435\u0442\u0438\u043b \u043d\u0435 \u0441\u0430\u043c, \u0430 \u0432\u0437\u044f\u043b \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 \u0443 \u0431\u043e\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0437\u043e\u0432\u0443\u0442 Postgres.AI Bot:<\/p>\n<p><a href=\"https:\/\/www.cybertec-postgresql.com\/en\/postgres-ai-bot-interview-for-pgsql-phriday-015\/\"><strong>Postgres.AI bot interview for PGSQL Phriday #015<\/strong><\/a><\/p>\n<p>\u0413\u0435\u0440\u043e\u044f \u041f\u044f\u0442\u043d\u0435\u0446\u044b #15 <em>\u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u0421\u0430\u043c\u043e\u0445\u0432\u0430\u043b\u043e\u0432<\/em> \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u043f\u0443\u0431\u043b\u0438\u043a\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e:<\/p>\n<p><a href=\"https:\/\/postgres.ai\/blog\/20240127-postges-ai-bot\"><strong>Postgres.AI Bot. Towards LLM OS for Postgres<\/strong><\/a><\/p>\n<p>\u041e\u043d, \u0431\u043e\u0442, \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0439: \u0432 \u0435\u0433\u043e \u0436\u0438\u043b\u0430\u0445 \u0442\u0435\u0447\u0451\u0442 \u043a\u0440\u043e\u0432\u044c GPT-4 Turbo. \u0410 \u0441\u043a\u043e\u0440\u043c\u0438\u043b\u0438 \u0435\u043c\u0443 110 \u0442\u044b\u0441. \u0442\u0435\u043a\u0441\u0442\u043e\u0432, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e, \u0441\u0442\u0430\u0442\u044c\u0438 \u0438 \u0431\u043b\u043e\u0433\u0438 \u043f\u043e \u0442\u0435\u043c\u0435 \u0438 &#8212; \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 &#8212; \u043a\u043e\u0434 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 PostgreSQL, PgBouncer, Patroni, pgvector \u0438 \u0434\u0440\u0443\u0433\u0438\u0445.<\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e: \u0431\u043e\u0442 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u043e\u043b\u0442\u0430\u0435\u0442, \u043e\u043d \u0441\u0430\u043c \u0441\u0442\u0430\u0432\u0438\u0442 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0441\u0432\u043e\u0438 \u0432\u044b\u0432\u043e\u0434\u044b:<\/p>\n<ol>\n<li>\n<p>\u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u043e \u0441\u0435\u0441\u0441\u0438\u0438 \u043d\u0430 \u0442\u043e\u043d\u043a\u0438\u0439 \u043a\u043b\u043e\u043d <a href=\"https:\/\/postgres.ai\/docs\/database-lab\">Postgres.AI DBLab Engine<\/a>, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044f PostgreSQL \u0438<\/p>\n<\/li>\n<li>\n<p>\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c pgbench \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445 \u0432 Google Cloud, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 Postgres \u043f\u043e\u0434 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430\u043c\u0438; \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 70 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0431\u043e\u0442\u043e\u043c \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p> \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u0434\u043e\u0432\u0435\u0441\u0442\u0438 \u0447\u0438\u0441\u043b\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043e \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430.<\/p>\n<\/li>\n<\/ol>\n<p>\u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e: \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0438 \u0431\u043e\u0442\u0430 \u0432\u043e\u043e\u0434\u0443\u0448\u0435\u0432\u0438\u043b\u0438\u0441\u044c \u0438\u0434\u0435\u0435\u0439 LLM OS, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b\u0441\u043a\u0430\u0437\u0430\u043b \u0432 \u0432\u0438\u0434\u0435\u043e <em>\u0410\u043d\u0434\u0436\u0435\u0439 \u041a\u0430\u0440\u043f\u0430\u0442\u0438<\/em> (Andrej Karpathy &#8212; \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441 42:15): <a href=\"https:\/\/www.youtube.com\/watch?v=zjkBMFhNj_g\">Intro to Large Language Models<\/a> &#8212; \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u0441\u0451 \u044d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0447\u0430\u043b\u043e. \u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0431\u0435\u0441\u0435\u0434\u044b \u0441 \u0435\u0433\u043e \u0431\u043e\u0442\u043e\u043c \u0443\u0436\u0435 \u043d\u0430\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438 \u0435\u0433\u043e (\u0442\u043e\u0447\u043d\u0435\u0435: \u0438\u0445) \u043d\u0430 \u043d\u043e\u0432\u044b\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0412\u043e\u043e\u0431\u0449\u0435-\u0442\u043e, \u043a\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u043f\u0440\u0438\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u0442 GPT \u043a Postgres. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p><a href=\"https:\/\/github.com\/tatari-tv\/gptsql\"><strong>gptsql<\/strong><\/a><\/p>\n<p>\u0427\u0430\u0442-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 PostgreSQL.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-364118","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/364118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=364118"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/364118\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=364118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=364118"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=364118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}