{"id":361271,"date":"2024-05-21T01:10:17","date_gmt":"2024-05-21T01:10:17","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=361271"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-05-21T01:10:17","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=361271","title":{"rendered":"<span>\u0421\u0430\u043c\u044b\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0434\u043e\u043c\u0430 \u041c\u043e\u0441\u043a\u0432\u044b \u0434\u043b\u044f \u0436\u0438\u0437\u043d\u0438 \u0441\u0435\u043c\u044c\u0438 \u0441 \u0440\u0435\u0431\u0435\u043d\u043a\u043e\u043c<\/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<p>\u041a\u043e\u0433\u0434\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0448\u044c \u0434\u043e\u043c \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0431\u043b\u0430\u0433\u043e\u043f\u043e\u043b\u0443\u0447\u0438\u044f \u0440\u0435\u0431\u0435\u043d\u043a\u0430 \u0438 \u0436\u0438\u0437\u043d\u0438 \u0441\u0435\u043c\u044c\u0438 \u0441 \u043d\u0438\u043c \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0435 20 \u043b\u0435\u0442, \u043b\u0443\u0447\u0448\u0435 \u0436\u0438\u0442\u044c \u0432 \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043e\u0442 \u0434\u0435\u0442\u0441\u0430\u0434\u0430, \u0448\u043a\u043e\u043b\u044b, \u043a\u043e\u043b\u0435\u0434\u0436\u0430 \u0438 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0430. \u0411\u044b\u043b\u043e \u0431\u044b \u0445\u043e\u0440\u043e\u0448\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0431\u043b\u0438\u0437\u043e\u0441\u0442\u0438 \u0431\u044b\u043b\u0438 \u043a\u0440\u0443\u0436\u043a\u0438 \u0434\u0435\u0442\u0441\u043a\u043e\u0433\u043e \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u0430, \u0441\u043f\u043e\u0440\u0442\u0446\u0435\u043d\u0442\u0440\u044b, \u0448\u043a\u043e\u043b\u044b \u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432. \u041d\u0443 \u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u0440\u044f\u0434\u043e\u043c \u0435\u0441\u0442\u044c \u0438\u0433\u0440\u043e\u0432\u044b\u0435 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438 \u0438 \u043f\u043e\u043b\u0438\u043a\u043b\u0438\u043d\u0438\u043a\u0438 &#8212; \u0436\u0438\u043b\u044c\u0435 \u0432\u0435\u0434\u044c \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442 \u043d\u0435 \u043d\u0430 \u043f\u0430\u0440\u0443 \u043b\u0435\u0442.<\/p>\n<p>\u041c\u043e\u0439 \u0440\u0435\u0439\u0442\u0438\u043d\u0433 \u0434\u043e\u043c\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u0445 \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438. \u0412\u0441\u0435 \u0440\u0430\u0441\u0447\u0435\u0442\u044b \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u044b \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 OpenStreetMap \u0434\u043b\u044f \u0436\u0438\u043b\u044b\u0445 \u0434\u043e\u043c\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u043b\u0438\u0436\u0435 2\u043a\u043c \u043f\u0435\u0448\u043a\u043e\u043c \u043e\u0442 \u0432\u0445\u043e\u0434\u0430 \u0432 \u043c\u0435\u0442\u0440\u043e\u043f\u043e\u043b\u0438\u0442\u0435\u043d \u0438\u043b\u0438 \u041c\u0426\u041a, \u0430 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e \u0443 \u044d\u0442\u0438\u0445 \u0434\u043e\u043c\u043e\u0432 \u043d\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c\u044e. \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0441\u0430\u043c\u044b\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0434\u043e\u043c\u0430 \u0434\u043b\u044f \u0436\u0438\u0437\u043d\u0438 \u0441 \u0434\u0435\u0442\u044c\u043c\u0438 \u0432 \u0440\u0430\u0439\u043e\u043d\u0430\u0445 \u041c\u043e\u0441\u043a\u0432\u044b.<\/p>\n<p>\u0418\u0434\u0435\u044f \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u0430\u044f &#8212; \u043a\u043e\u0433\u0434\u0430 \u0438\u0437\u043e \u0434\u043d\u044f \u0432 \u0434\u0435\u043d\u044c \u0445\u043e\u0434\u0438\u0442\u0435 \u0432 \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u043c\u0435\u0441\u0442\u0430 \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u043c\u043d\u043e\u0433\u0438\u0445 \u043b\u0435\u0442, \u0442\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u0432\u0441\u0435 \u044d\u0442\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b \u0431\u044b\u043b\u0438 \u0431\u044b \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0431\u043b\u0438\u0437\u043a\u043e \u043a \u0432\u0430\u0448\u0435\u043c\u0443 \u0434\u043e\u043c\u0443 \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0443 \u0432\u0430\u0441 \u0431\u044b\u043b \u0431\u044b \u0432\u044b\u0431\u043e\u0440 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 \u0448\u0430\u0433\u043e\u0432\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043e\u0442 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u044b. <\/p>\n<h2>\u041c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0440\u0430\u0441\u0447\u0435\u0442\u0430<\/h2>\n<p>\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0436\u0438\u043b\u043e\u0433\u043e \u0434\u043e\u043c\u0430 \u041c\u043e\u0441\u043a\u0432\u044b \u0432\u044b\u0448\u0435 2\u0445 \u044d\u0442\u0430\u0436\u0435\u0439 \u0432 \u0435\u0433\u043e \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438 2\u043a\u043c \u043f\u0435\u0448\u043a\u043e\u043c \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u0435\u043c \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u0437\u0434\u0430\u043d\u0438\u044f \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Dkindergarten\" rel=\"noopener noreferrer nofollow\">\u0414\u0435\u0442\u0441\u0430\u0434<\/a> \u0438\u043b\u0438 <a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Dchildcare\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u0448\u043a\u043e\u043b\u044c\u043d\u043e\u0435 \u0443\u0447\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Dschool\" rel=\"noopener noreferrer nofollow\">\u0428\u043a\u043e\u043b\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Dcollege\" rel=\"noopener noreferrer nofollow\">\u041a\u043e\u043b\u0435\u0434\u0436 \u0438\u043b\u0438 \u0443\u0447\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Duniversity\" rel=\"noopener noreferrer nofollow\">\u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Dlanguage_school\" rel=\"noopener noreferrer nofollow\">\u041a\u0443\u0440\u0441\u044b \u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Dmusic_school\" rel=\"noopener noreferrer nofollow\">\u041c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0448\u043a\u043e\u043b\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Dtraining\" rel=\"noopener noreferrer nofollow\">\u0423\u0447\u0435\u0431\u043d\u044b\u0435 \u043a\u0443\u0440\u0441\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Dcommunity_centre\" rel=\"noopener noreferrer nofollow\">\u0414\u043e\u043c\u0430 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u0430 \u0438 \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0446\u0435\u043d\u0442\u0440\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:leisure=sports_centre\" rel=\"noopener noreferrer nofollow\">\u0421\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u044b\u0439 \u0446\u0435\u043d\u0442\u0440<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:leisure=playground\" rel=\"noopener noreferrer nofollow\">\u0414\u0435\u0442\u0441\u043a\u0430\u044f \u0438\u0433\u0440\u043e\u0432\u0430\u044f \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Dclinic\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u043b\u0438\u043a\u043b\u0438\u043d\u0438\u043a\u0430<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0434\u043e\u043c\u0430 \u0432\u0435\u0434\u0435\u043c \u043f\u0440\u0438\u0437\u043d\u0430\u043a <strong>all_infra<\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d, \u043a\u043e\u0433\u0434\u0430 \u0432 \u043e\u043a\u0440\u0435\u0441\u043d\u043e\u0441\u0442\u0438 \u0435\u0441\u0442\u044c \u043e\u0434\u0438\u043d \u0438 \u0431\u043e\u043b\u0435\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 <em>\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439<\/em> \u0438\u0437 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430. \u0410 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c <strong><em>totalScore<\/em><\/strong><em> <\/em>\u043a\u0430\u043a \u0441\u0443\u043c\u043c\u0443 \u0447\u0438\u0441\u043b\u0430 \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044f\u0445 (\u043f\u043e\u043b\u0438\u043a\u043b\u0438\u043d\u0438\u043a\u0443 \u0438 \u0434\u0435\u0442\u0441\u043a\u0438\u0435 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438 \u0441 \u043f\u043e\u043d\u0438\u0436\u0430\u044e\u0449\u0438\u043c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u043c 0.01).<\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 <a href=\"https:\/\/github.com\/igor-suhorukov\/igor-suhorukov.github.io\/blob\/main\/data\/moscow_children_infrastructure.tsv\" rel=\"noopener noreferrer nofollow\">\u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b<\/a> \u043a\u0430\u043a \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u0430 30\u0442\u044b\u0441 \u0436\u0438\u043b\u044b\u0445 \u043c\u043d\u043e\u0433\u043e\u044d\u0442\u0430\u0436\u043d\u044b\u0445 \u0436\u0438\u043b\u044b\u0445 \u0434\u043e\u043c\u043e\u0432 \u0434\u043b\u044f \u041c\u043e\u0441\u043a\u0432\u044b, \u0433\u0434\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u0434\u043e\u043c\u043e\u0432 \u0440\u0430\u0441\u0447\u0438\u0442\u0430\u043d\u043e \u0447\u0438\u0441\u043b\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u0441 \u0434\u0435\u0442\u044c\u043c\u0438, \u0432 \u043f\u0435\u0448\u0435\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0434\u043e 2\u043a\u043c. \u041c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0435\u0433\u043e \u0432 Excel \u0438\u043b\u0438 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438 \u0442\u0430\u043a \u043a\u0430\u043a \u0443\u0434\u043e\u0431\u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u0430\u043c. \u0412 \u0434\u0430\u043d\u043d\u044b\u0445 \u0435\u0441\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0430 \u0434\u043e\u043c\u043e\u0432 \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0439\u043e\u043d\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/002\/078\/982\/00207898234c2a3329db54d90417554e.png\" alt=\"30\u0442\u044b\u0441. \u0434\u043e\u043c\u043e\u0432 \u041c\u043e\u0441\u043a\u0432\u044b. \u0427\u0435\u043c \u0441\u0432\u0435\u0442\u043b\u0435\u0435 \u0442\u043e\u0447\u043a\u0430, \u0442\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u044b\u0448\u0435\u043d\u0430\u0437\u0432\u0430\u043d\u043d\u043e\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044f\u0445 \u0434\u043e\u043c\u0430\" title=\"30\u0442\u044b\u0441. \u0434\u043e\u043c\u043e\u0432 \u041c\u043e\u0441\u043a\u0432\u044b. \u0427\u0435\u043c \u0441\u0432\u0435\u0442\u043b\u0435\u0435 \u0442\u043e\u0447\u043a\u0430, \u0442\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u044b\u0448\u0435\u043d\u0430\u0437\u0432\u0430\u043d\u043d\u043e\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044f\u0445 \u0434\u043e\u043c\u0430\" width=\"720\" height=\"758\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/002\/078\/982\/00207898234c2a3329db54d90417554e.png\"\/><\/p>\n<div><figcaption>30\u0442\u044b\u0441. \u0434\u043e\u043c\u043e\u0432 \u041c\u043e\u0441\u043a\u0432\u044b. \u0427\u0435\u043c \u0441\u0432\u0435\u0442\u043b\u0435\u0435 \u0442\u043e\u0447\u043a\u0430, \u0442\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u044b\u0448\u0435\u043d\u0430\u0437\u0432\u0430\u043d\u043d\u043e\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044f\u0445 \u0434\u043e\u043c\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u041c\u043e\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0438 \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0447\u0442\u043e-\u043b\u0438\u0431\u043e \u043a\u0440\u043e\u043c\u0435 \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u043e\u0439 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0434\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b.<\/p>\n<p><strong>\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442<\/strong>, \u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b, \u043f\u0440\u043e\u0441\u0442\u043e <strong>\u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0439\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u0434\u0435\u043b<\/strong>.<\/p>\n<h2>\u041a\u0430\u043a \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c<\/h2>\n<p>\u0421 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u044d\u0442\u043e \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u043e. \u0425\u043e\u0442\u044f \u0440\u0430\u0441\u0447\u0435\u0442 \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u044b\u0445 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0434\u043e\u043c\u043e\u0432 \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0442\u043e\u0447\u043a\u0430\u043c\u0438 \u043f\u043e \u043f\u0440\u044f\u043c\u043e\u0439. \u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/habr.com\/ru\/articles\/773424\/\" rel=\"noopener noreferrer nofollow\">\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u043a\u0430\u0441\u0442\u0430\u0445<\/a>. <\/p>\n<p>\u0423\u0436\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u043f\u043e \u0448\u0430\u0433\u0430\u043c <a href=\"https:\/\/habr.com\/ru\/articles\/770044\/\" rel=\"noopener noreferrer nofollow\">\u043a\u0430\u043a \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c<\/a> \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430. \u041d\u043e \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432\u0434\u0440\u0443\u0433 \u043d\u0435\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0438\u043b\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432, \u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0437\u044f\u0442\u044c \u043f\u0440\u0435\u0434\u0440\u0430\u0441\u0447\u0438\u0442\u0430\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u044b\u0445 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u043e\u0442 \u0436\u0438\u043b\u044b\u0445 \u0434\u043e\u043c\u043e\u0432 \u0434\u043e \u043c\u0435\u0441\u0442 \u0432 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044f\u0445: <a href=\"https:\/\/github.com\/igor-suhorukov\/igor-suhorukov.github.io\/blob\/main\/data\/distmsk_\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/igor-suhorukov\/igor-suhorukov.github.io\/blob\/main\/data\/distmsk_<\/a><a href=\"https:\/\/github.com\/igor-suhorukov\/igor-suhorukov.github.io\/blob\/main\/data\/\" rel=\"noopener noreferrer nofollow\">*.parquet<\/a> (\u0433\u0434\u0435 \u043f\u043e\u0434 * \u043d\u043e\u043c\u0435\u0440\u0430 \u043e\u0442 0 \u0434\u043e 21). \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u044d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 duckdb_building \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043e\u0433\u0430\u0442\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u043e\u043c: \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u0434\u043e\u043c\u0430, \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0443\u043b\u0438\u0446\u044b \u0438 \u0440\u0430\u0439\u043e\u043d\u0430.<\/p>\n<p>\u0414\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Parquet \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u0442\u0440\u044f\u0445\u043d\u0443\u0442\u044c \u043f\u044b\u043b\u044c \u0441\u043e \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <a href=\"https:\/\/github.com\/igor-suhorukov\/arrow_to_database\" rel=\"noopener noreferrer nofollow\">arrow_to_database<\/a>, \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438, \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043b \u043a\u043e\u0434 \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u0431\u043e\u0440\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 Dockerfile. \u041f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 Apache Arrow \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432 Parquet, ORC, Arrow Feather \u0432 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 PostgreSQL, H2, QuestDB.  \u0416\u0434\u0443 \u043d\u0435 \u0434\u043e\u0436\u0434\u0443\u0441\u044c \u043a\u043e\u0433\u0434\u0430 \u0443\u0436\u0435 \u0432 PostgreSQL \u0438\u043b\u0438 psql \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c parquet \u0444\u0430\u0439\u043b\u044b \u0431\u0435\u0437 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code class=\"java\"> void copyArrowDatasetIntoPreparedStatement(int batchSize, FileFormat fileFormat,                                               String datasetUri, PreparedStatement preparedStatement) throws Exception {         try (BufferAllocator allocator = new RootAllocator()) {             FileSystemDatasetFactory factory = new FileSystemDatasetFactory(allocator,                                                         NativeMemoryPool.getDefault(), fileFormat, datasetUri);             final Dataset dataset = factory.finish();             ScanOptions options = new ScanOptions(batchSize);             final Scanner scanner = dataset.newScan(options);             try {                 long rowCount=0;                 try (ArrowReader reader = scanner.scanBatches()) {                     while (reader.loadNextBatch()) {                         try (VectorSchemaRoot root = reader.getVectorSchemaRoot()) {                             JdbcParameterBinder binder = JdbcParameterBinder                                     .builder(preparedStatement, root).bindAll().build();                             while (binder.next()) {                                 preparedStatement.addBatch();                                 rowCount++;                             }                             preparedStatement.executeBatch();                         }                     }                 } catch (Exception e) {                     throw new RuntimeException(e);                 }                 LOGGER.info(\"Total rows imported: {}\", rowCount);             } finally {                 AutoCloseables.close(scanner, dataset);             }         }     }<\/code><\/pre>\n<p>\u041f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Dataset, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Scanner \u0438 \u0437\u0430\u043f\u0438\u0441\u044c \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043e\u0440\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445( \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 \u0437\u0430\u0434\u0430\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b) \u0438\u0437 Arrow API \u0432 \u0431\u0430\u0437\u0443 \u0447\u0435\u0440\u0435\u0437 JDBC. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u0434 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u0438 \u0441\u0445\u0435\u043c\u044b \u0438 \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u0442\u0443\u0442 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442. \u0423\u0442\u0438\u043b\u0438\u0442\u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u043e \u0441\u0445\u0435\u043c\u0435 parquet \u0444\u0430\u0439\u043b\u0430, \u0435\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c <code>create_table<\/code>.  <\/p>\n<p>\u0418\u043c\u043f\u043e\u0440\u0442 55\u043c\u043b\u043d. \u0441\u0442\u0440\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 PostgreSQL :<\/p>\n<pre><code class=\"bash\">[main] INFO org.apache.arrow.memory.BaseAllocator - Debug mode disabled. Enable with the VM option -Darrow.memory.debug.allocator=true. [main] INFO org.apache.arrow.memory.DefaultAllocationManagerOption - allocation manager type not specified, using netty as the default type [main] WARN org.apache.arrow.memory.CheckAllocator - More than one DefaultAllocationManager on classpath. Choosing first found [main] INFO org.apache.arrow.memory.CheckAllocator - Using DefaultAllocationManager at memory-netty\/14.0.1\/arrow-memory-netty-14.0.1.jar!\/org\/apache\/arrow\/memory\/DefaultAllocationManagerFactory.class [main] INFO com.github.isuhorukov.arrow.jdbc.DatasetReader - Generated 'insert' query from Apache Arrow schema: insert into duckdb_building(\"h3_8\", \"building_id\", \"building_type\", \"distance\", \"categories\", \"design_ref\", \"name\", \"amenity\", \"leisure\", \"shop\", \"healthcare\", \"tourism\", \"historic\", \"sport\", \"memorial\", \"education\", \"religion\", \"office\", \"brand\", \"network\", \"operator\") values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [main] INFO com.github.isuhorukov.arrow.jdbc.DatasetReader - Total rows imported: 55180865<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u0447\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u043e \u0434\u043e\u043c\u0430\u043c \u044f\u0432\u043d\u043e \u043d\u0435 rocket science  &#8212;  \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0443\u043c\u043c\u044b \u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f: <\/p>\n<pre><code class=\"sql\">CREATE TABLE moscow_district AS select tags->'name' name,polygon from multipolygon where tags->'admin_level'='8' and tags->'boundary'='administrative';  CREATE INDEX idx_moscow_district_geometry ON moscow_district USING gist (polygon);  CREATE TABLE infrastructure_for_children AS   select       (select name        from moscow_district        where st_contains(polygon, centre) limit 1) district,   tags->'addr:street' street,    tags->'addr:housenumber' housenumber,     totalscore,   kindergarten>0 and school>0 and college>0 and university>0 and language_school>0 and music_school>0 and training>0 and sports_centre>0 and community_centre>0 and playground>0 and clinic>0 all_infra,   kindergarten::smallint,   school::smallint,   college::smallint,   university::smallint,   language_school::smallint,   music_school::smallint,   training::smallint,   sports_centre::smallint,   community_centre::smallint,   playground::smallint,   clinic::smallint from (select building_id,building_type,        (count(*) filter (where amenity='kindergarten' or amenity='childcare') +        count(*) filter (where amenity='school') +        count(*) filter (where amenity='college') +        count(*) filter (where amenity='university') +        count(*) filter (where amenity='language_school') +        count(*) filter (where amenity='music_school') +        count(*) filter (where amenity='training') +        count(*) filter (where leisure='sports_centre') +        count(*) filter (where amenity='community_centre') +        0.01*count(*) filter (where leisure='playground') +        0.01*count(*) filter (where amenity='clinic'))::float4 totalScore,        count(*) filter (where amenity='kindergarten' or amenity='childcare') kindergarten,        count(*) filter (where amenity='school') school,        count(*) filter (where amenity='college') college,        count(*) filter (where amenity='university') university,        count(*) filter (where amenity='language_school') language_school,        count(*) filter (where amenity='music_school') music_school,        count(*) filter (where amenity='training') training,        count(*) filter (where leisure='sports_centre') sports_centre,        count(*) filter (where amenity='community_centre') community_centre,        count(*) filter (where leisure='playground') playground,        count(*) filter (where amenity='clinic') clinic       from duckdb_building          group by 1,2) stat    inner join  geometry_global_view g      on stat.building_id=id and stat.building_type=type         and (g.tags->'building:levels' is not null and g.tags->'building:levels'~'^\\d+$' and (g.tags->'building:levels')::integer>2) -- \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u043d\u043e\u0433\u043e\u044d\u0442\u0430\u0436\u043d\u044b\u0435 \u0434\u043e\u043c\u0430  order by totalscore desc;<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0430 \u0438\u0437 \u043e\u0431\u0449\u0435\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443 \u0441 \u0441\u0430\u043c\u044b\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u043c <strong>totalScore<\/strong> \u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0435\u043c \u0432\u0441\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0435\u0441\u043b\u0438 \u043e\u043f\u0446\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430: <\/p>\n<pre><code class=\"sql\">select district, street, housenumber,         totalscore,all_infra,   kindergarten, school,college, university, language_school, music_school,training,sports_centre,community_centre,playground,clinic  from   (select *, row_number() over (partition by district order by all_infra desc,totalscore desc)     from infrastructure_for_children) a  where row_number=1 and district is not null order by totalscore desc;<\/code><\/pre>\n<p>\u041d\u0443 \u0430 \u0440\u0430\u0437 \u0432\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0438 \u044d\u0442\u0438 \u0448\u0430\u0433\u0438 \u0438 \u0437\u043d\u0430\u0435\u0442\u0435 SQL \u0445\u043e\u0442\u044f \u0431\u044b \u043d\u0430 \u0431\u0430\u0437\u043e\u0432\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435, \u0442\u043e \u043f\u0435\u0440\u0435\u0434 \u0432\u0430\u043c\u0438 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0447\u0442\u0438 \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0434 \u0441\u0435\u0431\u044f, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u0441\u0432\u043e\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u044f.<\/p>\n<p>\u0412\u0441\u0435\u0433\u0434\u0430 \u043b\u0438 \u0438 \u0432\u0441\u0435 \u043b\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 OpenStreetMap \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435? \u042f \u043e\u0442\u0432\u0435\u0447\u0443 &#8212; \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430. \u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0435\u0441\u0442\u044c \u0447\u0442\u043e \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c \u0438 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043a \u0447\u0435\u043c\u0443 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u044c\u0441\u044f \u0432 \u043c\u043e\u0434\u0435\u043b\u0438, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044f \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0435\u0435 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0443. \u0421\u0447\u0438\u0442\u0430\u044e, \u0447\u0442\u043e \u043d\u0435\u043f\u043e\u043b\u043d\u044b\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043b\u0443\u0447\u0448\u0435 \u0438\u0445 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \/ \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0438\u0437-\u0437\u0430 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u043a\u043e\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0445 \u0433\u0435\u043e\u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<h2>\u0420\u0435\u0439\u0442\u0438\u043d\u0433 \u043b\u0443\u0447\u0448\u0438\u0445 \u0434\u043e\u043c\u043e\u0432 \u043f\u043e \u0440\u0430\u0439\u043e\u043d\u0430\u043c<\/h2>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0440\u0430\u0439\u043e\u043d\u0430 \u041c\u043e\u0441\u043a\u0432\u044b \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0440\u0435\u0439\u0442\u0438\u043d\u0433 \u0436\u0438\u043b\u044c\u044f \u043f\u043e \u0440\u0430\u0439\u043e\u043d\u0430\u043c:<\/p>\n<ol>\n<li>\n<p>\u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e\u043c\u0430 \u0433\u0434\u0435 \u0432 \u043e\u043a\u0440\u0443\u0433\u0435 \u0435\u0441\u0442\u044c \u0432\u0441\u044f \u0432\u044b\u0448\u0435\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430;<\/p>\n<\/li>\n<li>\n<p>\u0438 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044f <em>totalScore <\/em>\u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0440\u0430\u0439\u043e\u043d\u0430.<\/p>\n<\/li>\n<\/ol>\n<p>\u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 <a href=\"https:\/\/github.com\/igor-suhorukov\/igor-suhorukov.github.io\/blob\/main\/data\/moscow_children_infrastructure_per_district.tsv\" rel=\"noopener noreferrer nofollow\">\u043d\u0430 GitHub<\/a> \u0441 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043f\u043e \u0447\u0438\u0441\u043b\u0443 \u0441\u0430\u0434\u0438\u043a\u043e\u0432, \u0448\u043a\u043e\u043b&#8230;<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bbb\/aa9\/777\/bbbaa9777f1a3f510baa962760690d2f.png\" alt=\"\u041f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0441\u0430\u043c\u043e\u043c\u0443 \u043b\u0443\u0447\u0448\u0435\u043c\u0443 \u0434\u043e\u043c\u0443 \u043d\u0430 \u0440\u0430\u0439\u043e\u043d. \u0427\u0435\u043c \u0441\u0432\u0435\u0442\u043b\u0435\u0435 \u0442\u043e\u0447\u043a\u0430 \u043d\u0430 \u043a\u0430\u0440\u0442\u0435, \u0442\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u044b\u0448\u0435\u043d\u0430\u0437\u0432\u0430\u043d\u043d\u043e\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044f\u0445 \u0434\u043e\u043c\u0430\" title=\"\u041f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0441\u0430\u043c\u043e\u043c\u0443 \u043b\u0443\u0447\u0448\u0435\u043c\u0443 \u0434\u043e\u043c\u0443 \u043d\u0430 \u0440\u0430\u0439\u043e\u043d. \u0427\u0435\u043c \u0441\u0432\u0435\u0442\u043b\u0435\u0435 \u0442\u043e\u0447\u043a\u0430 \u043d\u0430 \u043a\u0430\u0440\u0442\u0435, \u0442\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u044b\u0448\u0435\u043d\u0430\u0437\u0432\u0430\u043d\u043d\u043e\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044f\u0445 \u0434\u043e\u043c\u0430\" width=\"660\" height=\"760\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bbb\/aa9\/777\/bbbaa9777f1a3f510baa962760690d2f.png\"\/><\/p>\n<div><figcaption>\u041f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0441\u0430\u043c\u043e\u043c\u0443 \u043b\u0443\u0447\u0448\u0435\u043c\u0443 \u0434\u043e\u043c\u0443 \u043d\u0430 \u0440\u0430\u0439\u043e\u043d. \u0427\u0435\u043c \u0441\u0432\u0435\u0442\u043b\u0435\u0435 \u0442\u043e\u0447\u043a\u0430 \u043d\u0430 \u043a\u0430\u0440\u0442\u0435, \u0442\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u044b\u0448\u0435\u043d\u0430\u0437\u0432\u0430\u043d\u043d\u043e\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044f\u0445 \u0434\u043e\u043c\u0430<\/figcaption><\/div>\n<\/figure>\n<pre><code>            \u0420\u0430\u0439\u043e\u043d                |            \u0423\u043b\u0438\u0446\u0430              |    \u0414\u043e\u043c      | totalscore | \u0432\u0441\u044f \u043b\u0438 \u0438\u043d\u0444-\u0440\u0430?  ---------------------------------+-------------------------------+-------------+------------+---------------  \u041a\u0440\u0430\u0441\u043d\u043e\u0441\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d            | \u0421\u0440\u0435\u0442\u0435\u043d\u0441\u043a\u0438\u0439 \u0431\u0443\u043b\u044c\u0432\u0430\u0440            | 3\/4 \u04412      |     190.16 | \u0434\u0430  \u041c\u0435\u0449\u0430\u043d\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d                 | \u0420\u043e\u0436\u0434\u0435\u0441\u0442\u0432\u0435\u043d\u0441\u043a\u0438\u0439 \u0431\u0443\u043b\u044c\u0432\u0430\u0440        | 11          |     183.83 | \u0434\u0430  \u0411\u0430\u0441\u043c\u0430\u043d\u043d\u044b\u0439 \u0440\u0430\u0439\u043e\u043d                 | \u041c\u044f\u0441\u043d\u0438\u0446\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430               | 30\/2 \u04413     |      181.1 | \u0434\u0430  \u0422\u0432\u0435\u0440\u0441\u043a\u043e\u0439 \u0440\u0430\u0439\u043e\u043d                  | \u041f\u0435\u0442\u0440\u043e\u0432\u0441\u043a\u0438\u0439 \u0431\u0443\u043b\u044c\u0432\u0430\u0440            | 23          |     178.83 | \u0434\u0430  \u0413\u0430\u0433\u0430\u0440\u0438\u043d\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d               | \u041b\u0435\u043d\u0438\u043d\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0441\u043f\u0435\u043a\u0442            | 79          |     166.48 | \u0434\u0430  \u0422\u0430\u0433\u0430\u043d\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d                 | \u042f\u0443\u0437\u0441\u043a\u0438\u0439 \u0431\u0443\u043b\u044c\u0432\u0430\u0440               | 14\/8        |     164.79 | \u0434\u0430  \u041f\u0440\u0435\u0441\u043d\u0435\u043d\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d               | \u0421\u0430\u0434\u043e\u0432\u0430\u044f-\u041a\u0443\u0434\u0440\u0438\u043d\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430      | 6 \u04411        |     163.87 | \u0434\u0430  \u041b\u043e\u043c\u043e\u043d\u043e\u0441\u043e\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d             | \u041b\u0435\u043d\u0438\u043d\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0441\u043f\u0435\u043a\u0442            | 81\/2        |     163.42 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0410\u0440\u0431\u0430\u0442                     | \u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u0414\u0435\u0432\u044f\u0442\u0438\u043d\u0441\u043a\u0438\u0439 \u043f\u0435\u0440\u0435\u0443\u043b\u043e\u043a  | 1\/17        |     156.64 | \u0434\u0430  \u041e\u0431\u0440\u0443\u0447\u0435\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d               | \u041b\u0435\u043d\u0438\u043d\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0441\u043f\u0435\u043a\u0442            | 95\u0411         |     143.14 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0418\u0437\u043c\u0430\u0439\u043b\u043e\u0432\u043e                 | \u0421\u0438\u0440\u0435\u043d\u0435\u0432\u044b\u0439 \u0431\u0443\u043b\u044c\u0432\u0430\u0440             | 32          |     142.79 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0418\u0437\u043c\u0430\u0439\u043b\u043e\u0432\u043e        | \u0421\u0438\u0440\u0435\u043d\u0435\u0432\u044b\u0439 \u0431\u0443\u043b\u044c\u0432\u0430\u0440             | 37\/40       |     138.86 | \u0434\u0430  \u0410\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d             | \u041d\u0430\u0445\u0438\u043c\u043e\u0432\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0441\u043f\u0435\u043a\u0442          | 56          |     137.37 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0427\u0435\u0440\u0451\u043c\u0443\u0448\u043a\u0438                 | \u0443\u043b\u0438\u0446\u0430 \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440\u0430 \u0412\u043b\u0430\u0441\u043e\u0432\u0430     | 27          |     135.24 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u041c\u0430\u0440\u044c\u0438\u043d\u0430 \u0420\u043e\u0449\u0430              | \u041e\u043a\u0442\u044f\u0431\u0440\u044c\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430             | 2           |     133.77 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u041f\u0440\u043e\u0441\u043f\u0435\u043a\u0442 \u0412\u0435\u0440\u043d\u0430\u0434\u0441\u043a\u043e\u0433\u043e      | \u0443\u043b\u0438\u0446\u0430 \u0423\u0434\u0430\u043b\u044c\u0446\u043e\u0432\u0430               | 1 \u043a1        |     131.96 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0425\u0430\u043c\u043e\u0432\u043d\u0438\u043a\u0438                 | \u0421\u043c\u043e\u043b\u0435\u043d\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430              | 3           |     130.26 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0411\u0435\u0433\u043e\u0432\u043e\u0439                   | \u0411\u0443\u043c\u0430\u0436\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u0437\u0434               | 2\/2         |     128.49 | \u0434\u0430  \u0425\u043e\u0440\u043e\u0448\u0451\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d               | \u041b\u0435\u043d\u0438\u043d\u0433\u0440\u0430\u0434\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0441\u043f\u0435\u043a\u0442        | 59          |     127.45 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0417\u0430\u043c\u043e\u0441\u043a\u0432\u043e\u0440\u0435\u0447\u044c\u0435             | \u0443\u043b\u0438\u0446\u0430 \u0417\u0430\u0446\u0435\u043f\u0441\u043a\u0438\u0439 \u0412\u0430\u043b           | 5           |      126.3 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0420\u0430\u043c\u0435\u043d\u043a\u0438                   | \u043f\u0440\u043e\u0441\u043f\u0435\u043a\u0442 \u0412\u0435\u0440\u043d\u0430\u0434\u0441\u043a\u043e\u0433\u043e          | 10 \u043a1       |     125.61 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0410\u044d\u0440\u043e\u043f\u043e\u0440\u0442                  | \u0443\u043b\u0438\u0446\u0430 \u0423\u0441\u0438\u0435\u0432\u0438\u0447\u0430                | 27 \u043a1       |     125.43 | \u0434\u0430  \u0421\u0430\u0432\u0451\u043b\u043e\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d               | \u0443\u043b\u0438\u0446\u0430 8 \u041c\u0430\u0440\u0442\u0430                 | 8 \u043a1        |     118.95 | \u0434\u0430  \u041e\u0440\u0435\u0445\u043e\u0432\u043e-\u0411\u043e\u0440\u0438\u0441\u043e\u0432\u043e \u042e\u0436\u043d\u043e\u0435          | \u041e\u0440\u0435\u0445\u043e\u0432\u044b\u0439 \u0431\u0443\u043b\u044c\u0432\u0430\u0440              | 20\/2        |     117.84 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0421\u043e\u043a\u043e\u043b                     | \u041b\u0435\u043d\u0438\u043d\u0433\u0440\u0430\u0434\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0441\u043f\u0435\u043a\u0442        | 63          |     117.31 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u041e\u0440\u0435\u0445\u043e\u0432\u043e-\u0411\u043e\u0440\u0438\u0441\u043e\u0432\u043e \u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0435 | \u0411\u043e\u0440\u0438\u0441\u043e\u0432\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0435\u0437\u0434            | 44 \u043a2       |     116.63 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0417\u044f\u0431\u043b\u0438\u043a\u043e\u0432\u043e                 | \u041e\u0440\u0435\u0445\u043e\u0432\u044b\u0439 \u0431\u0443\u043b\u044c\u0432\u0430\u0440              | 29\/49       |     115.83 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u042f\u043a\u0438\u043c\u0430\u043d\u043a\u0430                  | \u0443\u043b\u0438\u0446\u0430 \u0421\u0435\u0440\u0430\u0444\u0438\u043c\u043e\u0432\u0438\u0447\u0430            | 2\/20        |     115.77 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0422\u0443\u0448\u0438\u043d\u043e           | \u0443\u043b\u0438\u0446\u0430 \u0413\u0435\u0440\u043e\u0435\u0432 \u041f\u0430\u043d\u0444\u0438\u043b\u043e\u0432\u0446\u0435\u0432      | 3           |     114.98 | \u043d\u0435\u0442  \u042e\u0436\u043d\u043e\u043f\u043e\u0440\u0442\u043e\u0432\u044b\u0439 \u0440\u0430\u0439\u043e\u043d              | 3-\u0439 \u041a\u0440\u0443\u0442\u0438\u0446\u043a\u0438\u0439 \u043f\u0435\u0440\u0435\u0443\u043b\u043e\u043a        | 11          |     113.49 | \u0434\u0430  \u0422\u0438\u043c\u0438\u0440\u044f\u0437\u0435\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d             | \u0427\u0443\u043a\u0441\u0438\u043d \u0442\u0443\u043f\u0438\u043a                  | 3           |     112.86 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u041c\u0430\u0440\u044c\u0438\u043d\u043e                   | \u0411\u0440\u0430\u0442\u0438\u0441\u043b\u0430\u0432\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430           | 5           |     111.94 | \u0434\u0430  \u0411\u0443\u0442\u044b\u0440\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d                 | \u0411\u0443\u0442\u044b\u0440\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430               | 4           |     111.75 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u041b\u044e\u0431\u043b\u0438\u043d\u043e                   | \u0443\u043b\u0438\u0446\u0430 \u0412\u0435\u0440\u0445\u043d\u0438\u0435 \u041f\u043e\u043b\u044f            | 35 \u043a5       |     110.22 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u041a\u0443\u0437\u044c\u043c\u0438\u043d\u043a\u0438                 | \u0412\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0441\u043f\u0435\u043a\u0442        | 82\/37       |     109.92 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0413\u043e\u043b\u044c\u044f\u043d\u043e\u0432\u043e                 | \u0429\u0451\u043b\u043a\u043e\u0432\u0441\u043a\u043e\u0435 \u0448\u043e\u0441\u0441\u0435              | 79 \u043a1       |     108.18 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0435 \u0418\u0437\u043c\u0430\u0439\u043b\u043e\u0432\u043e       | \u041f\u0435\u0440\u0432\u043e\u043c\u0430\u0439\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430            | 74          |     105.42 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0421\u043e\u043a\u043e\u043b\u044c\u043d\u0438\u043a\u0438                | \u0443\u043b\u0438\u0446\u0430 \u0413\u0430\u0441\u0442\u0435\u043b\u043b\u043e                | 41          |     101.84 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0441\u043a\u043e\u0435            | \u0443\u043b\u0438\u0446\u0430 \u0411\u043e\u0433\u043e\u0440\u043e\u0434\u0441\u043a\u0438\u0439 \u0412\u0430\u043b         | 6 \u043a1        |     100.14 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0411\u043e\u0433\u043e\u0440\u043e\u0434\u0441\u043a\u043e\u0435               | \u041a\u0440\u0430\u0441\u043d\u043e\u0431\u043e\u0433\u0430\u0442\u044b\u0440\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430       | 79 \u043a3\u0410      |       99.3 | \u0434\u0430  \u0411\u0435\u0441\u043a\u0443\u0434\u043d\u0438\u043a\u043e\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d           | \u0414\u043c\u0438\u0442\u0440\u043e\u0432\u0441\u043a\u043e\u0435 \u0448\u043e\u0441\u0441\u0435             | 103         |      97.76 | \u043d\u0435\u0442  \u0414\u0430\u043d\u0438\u043b\u043e\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d               | \u041c\u044b\u0442\u043d\u0430\u044f \u0443\u043b\u0438\u0446\u0430                  | 48          |      97.47 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0411\u0438\u0431\u0438\u0440\u0435\u0432\u043e                  | \u0428\u0435\u043d\u043a\u0443\u0440\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0435\u0437\u0434             | 14          |      96.68 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u041c\u0438\u0442\u0438\u043d\u043e                    | \u041c\u0438\u0442\u0438\u043d\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430               | 23          |      96.04 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0422\u0435\u043a\u0441\u0442\u0438\u043b\u044c\u0449\u0438\u043a\u0438              | 11-\u044f \u0443\u043b\u0438\u0446\u0430 \u0422\u0435\u043a\u0441\u0442\u0438\u043b\u044c\u0449\u0438\u043a\u043e\u0432      | 12\u0410         |      95.21 | \u0434\u0430  \u0414\u043c\u0438\u0442\u0440\u043e\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d               | \u0414\u043c\u0438\u0442\u0440\u043e\u0432\u0441\u043a\u043e\u0435 \u0448\u043e\u0441\u0441\u0435             | 107 \u043a1      |      94.44 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0429\u0443\u043a\u0438\u043d\u043e                    | \u0443\u043b\u0438\u0446\u0430 \u041c\u0430\u0440\u0448\u0430\u043b\u0430 \u0420\u044b\u0431\u0430\u043b\u043a\u043e         | 1           |       93.7 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u041b\u0435\u0444\u043e\u0440\u0442\u043e\u0432\u043e                 | \u041a\u0440\u0430\u0441\u043d\u043e\u043a\u0430\u0437\u0430\u0440\u043c\u0435\u043d\u043d\u0430\u044f \u0443\u043b\u0438\u0446\u0430       | 3           |      93.59 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u041a\u043e\u0442\u043b\u043e\u0432\u043a\u0430                  | \u0443\u043b\u0438\u0446\u0430 \u041a\u0440\u0436\u0438\u0436\u0430\u043d\u043e\u0432\u0441\u043a\u043e\u0433\u043e          | 27          |      92.89 | \u043d\u0435\u0442  \u0411\u0430\u0431\u0443\u0448\u043a\u0438\u043d\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d              | \u041b\u0435\u043d\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430                 | 19          |      91.31 | \u0434\u0430  \u041b\u043e\u0441\u0438\u043d\u043e\u043e\u0441\u0442\u0440\u043e\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d          | \u0410\u043d\u0430\u0434\u044b\u0440\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0435\u0437\u0434             | 25 \u043a2       |      90.75 | \u043d\u0435\u0442  \u0410\u043b\u0435\u043a\u0441\u0435\u0435\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d              | \u043f\u0440\u043e\u0441\u043f\u0435\u043a\u0442 \u041c\u0438\u0440\u0430                 | 182         |      90.43 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u042f\u0441\u0435\u043d\u0435\u0432\u043e                   | \u042f\u0441\u043d\u043e\u0433\u043e\u0440\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430             | 13 \u043a2       |      90.02 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0417\u044e\u0437\u0438\u043d\u043e                    | \u0411\u043e\u043b\u043e\u0442\u043d\u0438\u043a\u043e\u0432\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430          | 54 \u043a1       |      89.59 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0414\u043e\u0440\u043e\u0433\u043e\u043c\u0438\u043b\u043e\u0432\u043e              | \u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0414\u043e\u0440\u043e\u0433\u043e\u043c\u0438\u043b\u043e\u0432\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430 | 4           |       89.5 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0425\u043e\u0440\u043e\u0448\u0451\u0432\u043e-\u041c\u043d\u0451\u0432\u043d\u0438\u043a\u0438         | \u0443\u043b\u0438\u0446\u0430 \u041c\u0430\u0440\u0448\u0430\u043b\u0430 \u0422\u0443\u0445\u0430\u0447\u0435\u0432\u0441\u043a\u043e\u0433\u043e    | 21 \u043a1       |      89.33 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u041b\u0438\u0430\u043d\u043e\u0437\u043e\u0432\u043e                 | \u0410\u043b\u0442\u0443\u0444\u044c\u0435\u0432\u0441\u043a\u043e\u0435 \u0448\u043e\u0441\u0441\u0435            | 83          |      88.87 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u041c\u0435\u0434\u0432\u0435\u0434\u043a\u043e\u0432\u043e       | \u0421\u0443\u0445\u043e\u043d\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430               | 11          |      88.69 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u041f\u0435\u0440\u043e\u0432\u043e                    | \u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u0440\u043e\u0441\u043f\u0435\u043a\u0442         | 16 \u043a1       |      88.39 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0425\u043e\u0432\u0440\u0438\u043d\u043e                   | \u0443\u043b\u0438\u0446\u0430 \u041b\u0430\u0432\u043e\u0447\u043a\u0438\u043d\u0430               | 34 \u043a1       |      87.79 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0435 \u0414\u0435\u0433\u0443\u043d\u0438\u043d\u043e        | \u0443\u043b\u0438\u0446\u0430 800-\u043b\u0435\u0442\u0438\u044f \u041c\u043e\u0441\u043a\u0432\u044b        | 14          |      87.58 | \u043d\u0435\u0442  \u0420\u044f\u0437\u0430\u043d\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d                 | \u0412\u043e\u043b\u0436\u0441\u043a\u0438\u0439 \u0431\u0443\u043b\u044c\u0432\u0430\u0440              | 13 \u043a1       |      86.68 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u041e\u0442\u0440\u0430\u0434\u043d\u043e\u0435                  | \u0421\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0431\u0443\u043b\u044c\u0432\u0430\u0440              | 8           |      85.41 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0421\u043e\u043a\u043e\u043b\u0438\u043d\u0430\u044f \u0413\u043e\u0440\u0430            | \u0411\u043e\u043b\u044c\u0448\u0430\u044f \u0421\u0435\u043c\u0451\u043d\u043e\u0432\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430     | 29\/2        |      85.39 | \u0434\u0430  \u041e\u0441\u0442\u0430\u043d\u043a\u0438\u043d\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d              | \u0417\u0432\u0451\u0437\u0434\u043d\u044b\u0439 \u0431\u0443\u043b\u044c\u0432\u0430\u0440              | 1           |      84.64 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u041a\u0443\u043d\u0446\u0435\u0432\u043e                   | \u042f\u0440\u0446\u0435\u0432\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430               | 27 \u043a1       |      84.57 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u041d\u043e\u0432\u043e\u0433\u0438\u0440\u0435\u0435\u0432\u043e               | \u041c\u0430\u0440\u0442\u0435\u043d\u043e\u0432\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430            | 16\/36       |      84.26 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0421\u0432\u0438\u0431\u043b\u043e\u0432\u043e                  | \u0412\u0435\u0440\u0435\u0441\u043a\u043e\u0432\u0430\u044f \u0443\u043b\u0438\u0446\u0430              | 1 \u043a2        |      82.96 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u042e\u0436\u043d\u043e\u0435 \u0422\u0443\u0448\u0438\u043d\u043e              | \u0443\u043b\u0438\u0446\u0430 \u0421\u0432\u043e\u0431\u043e\u0434\u044b                 | 43          |      82.29 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0426\u0430\u0440\u0438\u0446\u044b\u043d\u043e                  | \u041a\u0430\u043d\u0442\u0435\u043c\u0438\u0440\u043e\u0432\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430          | 31          |      81.87 | \u043d\u0435\u0442  \u0413\u043e\u043b\u043e\u0432\u0438\u043d\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d               | \u0443\u043b\u0438\u0446\u0430 \u041b\u0430\u0432\u043e\u0447\u043a\u0438\u043d\u0430               | 28\/42       |      80.72 | \u0434\u0430  \u041c\u043e\u0436\u0430\u0439\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d                 | \u0413\u0432\u0430\u0440\u0434\u0435\u0439\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430             | 15 \u043a1       |      79.32 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u041a\u043e\u043d\u044c\u043a\u043e\u0432\u043e                  | \u041f\u0440\u043e\u0444\u0441\u043e\u044e\u0437\u043d\u0430\u044f \u0443\u043b\u0438\u0446\u0430             | 110 \u043a2      |      78.75 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u041b\u0435\u0432\u043e\u0431\u0435\u0440\u0435\u0436\u043d\u044b\u0439              | \u0424\u0435\u0441\u0442\u0438\u0432\u0430\u043b\u044c\u043d\u0430\u044f \u0443\u043b\u0438\u0446\u0430            | 4           |      77.87 | \u0434\u0430  \u041d\u0430\u0433\u043e\u0440\u043d\u044b\u0439 \u0440\u0430\u0439\u043e\u043d                  | \u0411\u043e\u043b\u043e\u0442\u043d\u0438\u043a\u043e\u0432\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430          | 11 \u043a1       |      77.67 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0418\u0432\u0430\u043d\u043e\u0432\u0441\u043a\u043e\u0435                | \u041d\u0430\u043f\u043e\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u0437\u0434              | 1           |      76.81 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0427\u0435\u0440\u0442\u0430\u043d\u043e\u0432\u043e \u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0435        | \u0427\u0435\u0440\u0442\u0430\u043d\u043e\u0432\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430            | 1\u0410 \u043a1       |      76.25 | \u043d\u0435\u0442  \u042f\u0440\u043e\u0441\u043b\u0430\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d               | \u0425\u0438\u0431\u0438\u043d\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0435\u0437\u0434              | 26          |      75.48 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u041a\u043e\u043f\u0442\u0435\u0432\u043e                   | \u0443\u043b\u0438\u0446\u0430 \u041a\u043e\u0441\u043c\u043e\u043d\u0430\u0432\u0442\u0430 \u0412\u043e\u043b\u043a\u043e\u0432\u0430      | 29          |      74.97 | \u043d\u0435\u0442  \u0414\u043e\u043d\u0441\u043a\u043e\u0439 \u0440\u0430\u0439\u043e\u043d                   | \u0414\u043e\u043d\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430                 | 33          |      74.48 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0411\u0440\u0430\u0442\u0435\u0435\u0432\u043e                  | \u0443\u043b\u0438\u0446\u0430 \u0411\u043e\u0440\u0438\u0441\u043e\u0432\u0441\u043a\u0438\u0435 \u041f\u0440\u0443\u0434\u044b       | 16 \u043a2       |      74.46 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0421\u0442\u0440\u043e\u0433\u0438\u043d\u043e                  | \u0443\u043b\u0438\u0446\u0430 \u041c\u0430\u0440\u0448\u0430\u043b\u0430 \u041a\u0430\u0442\u0443\u043a\u043e\u0432\u0430        | 20 \u043a1       |      74.17 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u042e\u0436\u043d\u043e\u0435 \u041c\u0435\u0434\u0432\u0435\u0434\u043a\u043e\u0432\u043e          | \u0417\u0430\u043f\u043e\u0432\u0435\u0434\u043d\u0430\u044f \u0443\u043b\u0438\u0446\u0430              | 18 \u043a2       |      73.61 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0417\u0430\u043f\u0430\u0434\u043d\u043e\u0435 \u0414\u0435\u0433\u0443\u043d\u0438\u043d\u043e         | \u041a\u043e\u0440\u043e\u0432\u0438\u043d\u0441\u043a\u043e\u0435 \u0448\u043e\u0441\u0441\u0435             | 15 \u043a1       |      73.24 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0427\u0435\u0440\u0442\u0430\u043d\u043e\u0432\u043e \u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0435     | \u041a\u0438\u0440\u043e\u0432\u043e\u0433\u0440\u0430\u0434\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430          | 32 \u043a1       |      72.54 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0412\u044b\u0445\u0438\u043d\u043e-\u0416\u0443\u043b\u0435\u0431\u0438\u043d\u043e           | \u0420\u044f\u0437\u0430\u043d\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0441\u043f\u0435\u043a\u0442            | 58\/1        |      71.61 | \u043d\u0435\u0442  \u0410\u043b\u0442\u0443\u0444\u044c\u0435\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d              | \u0410\u043b\u0442\u0443\u0444\u044c\u0435\u0432\u0441\u043a\u043e\u0435 \u0448\u043e\u0441\u0441\u0435            | 64\u0412         |      71.57 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0422\u0451\u043f\u043b\u044b\u0439 \u0421\u0442\u0430\u043d               | \u0443\u043b\u0438\u0446\u0430 \u041e\u0441\u0442\u0440\u043e\u0432\u0438\u0442\u044f\u043d\u043e\u0432\u0430           | 16 \u043a2       |      71.54 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u042e\u0436\u043d\u043e\u0435 \u0411\u0443\u0442\u043e\u0432\u043e              | \u042e\u0436\u043d\u043e\u0431\u0443\u0442\u043e\u0432\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430           | 9           |      71.26 | \u043d\u0435\u0442  \u0412\u043e\u0439\u043a\u043e\u0432\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d                | \u0443\u043b\u0438\u0446\u0430 \u041a\u043e\u0441\u043c\u043e\u043d\u0430\u0432\u0442\u0430 \u0412\u043e\u043b\u043a\u043e\u0432\u0430      | 17 \u043a1       |      69.81 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0421\u043e\u043b\u043d\u0446\u0435\u0432\u043e                  | \u0443\u043b\u0438\u0446\u0430 \u0411\u043e\u0433\u0434\u0430\u043d\u043e\u0432\u0430               | 26 \u043a2       |      66.57 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0427\u0435\u0440\u0442\u0430\u043d\u043e\u0432\u043e \u042e\u0436\u043d\u043e\u0435           | \u041a\u0438\u0440\u043e\u0432\u043e\u0433\u0440\u0430\u0434\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0435\u0437\u0434         | 3 \u043a1        |      66.46 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u041c\u043e\u0441\u043a\u0432\u043e\u0440\u0435\u0447\u044c\u0435-\u0421\u0430\u0431\u0443\u0440\u043e\u0432\u043e      | \u041a\u0430\u043d\u0442\u0435\u043c\u0438\u0440\u043e\u0432\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430          | 16 \u043a1\u0410      |      66.42 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0420\u043e\u0441\u0442\u043e\u043a\u0438\u043d\u043e                 | \u0443\u043b\u0438\u0446\u0430 \u0421\u0435\u0440\u0433\u0435\u044f \u042d\u0439\u0437\u0435\u043d\u0448\u0442\u0435\u0439\u043d\u0430      | 2           |      66.14 | \u0434\u0430  \u0422\u0440\u043e\u043f\u0430\u0440\u0451\u0432\u043e-\u041d\u0438\u043a\u0443\u043b\u0438\u043d\u043e              | \u043f\u0440\u043e\u0441\u043f\u0435\u043a\u0442 \u0412\u0435\u0440\u043d\u0430\u0434\u0441\u043a\u043e\u0433\u043e          | 105 \u043a4      |      65.95 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u041a\u0440\u044b\u043b\u0430\u0442\u0441\u043a\u043e\u0435                | \u0420\u0443\u0431\u043b\u0451\u0432\u0441\u043a\u043e\u0435 \u0448\u043e\u0441\u0441\u0435              | 34 \u043a1       |      65.48 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0412\u0435\u0448\u043d\u044f\u043a\u0438                   | \u0443\u043b\u0438\u0446\u0430 \u0421\u0442\u0430\u0440\u044b\u0439 \u0413\u0430\u0439              | 2 \u043a3        |      64.12 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u041f\u0435\u0447\u0430\u0442\u043d\u0438\u043a\u0438                 | \u0443\u043b\u0438\u0446\u0430 \u041a\u0443\u0445\u043c\u0438\u0441\u0442\u0435\u0440\u043e\u0432\u0430            | 20          |      62.96 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0424\u0438\u043b\u0438-\u0414\u0430\u0432\u044b\u0434\u043a\u043e\u0432\u043e            | \u0418\u043d\u0438\u0446\u0438\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0443\u043b\u0438\u0446\u0430            | 5 \u043a1        |      61.81 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u041d\u043e\u0432\u043e\u043a\u043e\u0441\u0438\u043d\u043e                | \u0421\u0443\u0437\u0434\u0430\u043b\u044c\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430             | 18 \u043a3       |       60.8 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u041c\u0430\u0440\u0444\u0438\u043d\u043e                   | \u0443\u043b\u0438\u0446\u0430 \u041a\u0430\u0448\u0451\u043d\u043a\u0438\u043d \u041b\u0443\u0433            | 2 \u043a1        |      60.57 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u041d\u0430\u0433\u0430\u0442\u0438\u043d\u0441\u043a\u0438\u0439 \u0417\u0430\u0442\u043e\u043d         | \u0421\u0443\u0434\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0443\u043b\u0438\u0446\u0430        | 12          |      60.03 | \u043d\u0435\u0442  \u041d\u0438\u0436\u0435\u0433\u043e\u0440\u043e\u0434\u0441\u043a\u0438\u0439 \u0440\u0430\u0439\u043e\u043d             | \u0411\u043e\u0435\u043d\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0435\u0437\u0434               | 2           |      58.25 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u041d\u0430\u0433\u0430\u0442\u0438\u043d\u043e-\u0421\u0430\u0434\u043e\u0432\u043d\u0438\u043a\u0438        | \u041d\u0430\u0433\u0430\u0442\u0438\u043d\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430             | 32          |      57.96 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u041f\u043e\u043a\u0440\u043e\u0432\u0441\u043a\u043e\u0435-\u0421\u0442\u0440\u0435\u0448\u043d\u0435\u0432\u043e      | \u041c\u0430\u043b\u0430\u044f \u041d\u0430\u0431\u0435\u0440\u0435\u0436\u043d\u0430\u044f \u0443\u043b\u0438\u0446\u0430        | 17\/22       |      56.26 | \u0434\u0430  \u041d\u043e\u0432\u043e-\u041f\u0435\u0440\u0435\u0434\u0435\u043b\u043a\u0438\u043d\u043e                | \u0443\u043b\u0438\u0446\u0430 \u0421\u043a\u0443\u043b\u044c\u043f\u0442\u043e\u0440\u0430 \u041c\u0443\u0445\u0438\u043d\u043e\u0439      | 3           |      52.39 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0424\u0438\u043b\u0451\u0432\u0441\u043a\u0438\u0439 \u041f\u0430\u0440\u043a            | \u041a\u0430\u0441\u0442\u0430\u043d\u0430\u0435\u0432\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430           | 4           |      52.32 | \u0434\u0430  \u0440\u0430\u0439\u043e\u043d \u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0411\u0443\u0442\u043e\u0432\u043e           | \u0431\u0443\u043b\u044c\u0432\u0430\u0440 \u0414\u043c\u0438\u0442\u0440\u0438\u044f \u0414\u043e\u043d\u0441\u043a\u043e\u0433\u043e      | 17          |      49.98 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u041e\u0447\u0430\u043a\u043e\u0432\u043e-\u041c\u0430\u0442\u0432\u0435\u0435\u0432\u0441\u043a\u043e\u0435       | \u041e\u0437\u0451\u0440\u043d\u0430\u044f \u0443\u043b\u0438\u0446\u0430                 | 17          |      45.54 | \u0434\u0430  \u043f\u043e\u0441\u0435\u043b\u0435\u043d\u0438\u0435 \u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u0438\u0439            | \u0443\u043b\u0438\u0446\u0430 \u0417\u0435\u043b\u0451\u043d\u0430\u044f \u0413\u043e\u0440\u043a\u0430           | 1 \u043a3        |      42.37 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u041a\u043e\u0441\u0438\u043d\u043e-\u0423\u0445\u0442\u043e\u043c\u0441\u043a\u0438\u0439          | \u0443\u043b\u0438\u0446\u0430 \u0420\u0443\u0434\u043d\u0451\u0432\u043a\u0430                | 3           |      41.89 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0421\u0435\u0432\u0435\u0440\u043d\u044b\u0439                  | \u0414\u043c\u0438\u0442\u0440\u043e\u0432\u0441\u043a\u043e\u0435 \u0448\u043e\u0441\u0441\u0435             | 165\u0415 \u043a7     |      37.83 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0411\u0438\u0440\u044e\u043b\u0451\u0432\u043e \u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0435        | 6-\u044f \u0420\u0430\u0434\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0443\u043b\u0438\u0446\u0430          | 3 \u043a1        |      33.64 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u041c\u0435\u0442\u0440\u043e\u0433\u043e\u0440\u043e\u0434\u043e\u043a              | \u041e\u0442\u043a\u0440\u044b\u0442\u043e\u0435 \u0448\u043e\u0441\u0441\u0435                | 17 \u043a1       |      33.61 | \u043d\u0435\u0442  \u043f\u043e\u0441\u0435\u043b\u0435\u043d\u0438\u0435 \u0412\u043d\u0443\u043a\u043e\u0432\u0441\u043a\u043e\u0435            | \u0443\u043b\u0438\u0446\u0430 \u0410\u043d\u043d\u044b \u0410\u0445\u043c\u0430\u0442\u043e\u0432\u043e\u0439          | 10          |      33.59 | \u043d\u0435\u0442  \u043f\u043e\u0441\u0435\u043b\u0435\u043d\u0438\u0435 \u0421\u043e\u0441\u0435\u043d\u0441\u043a\u043e\u0435             | \u0424\u0438\u0442\u0430\u0440\u0451\u0432\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430             | 19          |      27.23 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u041d\u0435\u043a\u0440\u0430\u0441\u043e\u0432\u043a\u0430                | \u0420\u043e\u0436\u0434\u0435\u0441\u0442\u0432\u0435\u043d\u0441\u043a\u0430\u044f \u0443\u043b\u0438\u0446\u0430          | 33          |      23.92 | \u043d\u0435\u0442  \u043f\u043e\u0441\u0435\u043b\u0435\u043d\u0438\u0435 \u0412\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u0441\u043a\u043e\u0435         | \u0427\u0435\u0447\u0451\u0440\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0435\u0437\u0434              | 122 \u043a2      |      20.53 | \u043d\u0435\u0442  \u0440\u0430\u0439\u043e\u043d \u0412\u043d\u0443\u043a\u043e\u0432\u043e                   | \u0421\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u0430\u044f \u0443\u043b\u0438\u0446\u0430              | 2\/11        |      14.59 | \u043d\u0435\u0442 (119 rows) <\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/00d\/f7f\/f65\/00df7ff656322a6b5ffd7aa1c98d3e27.png\" alt=\"\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u044d\u0442\u043e\u0433\u043e \u0436\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 GitHub\" title=\"\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u044d\u0442\u043e\u0433\u043e \u0436\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 GitHub\" width=\"1599\" height=\"987\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/00d\/f7f\/f65\/00df7ff656322a6b5ffd7aa1c98d3e27.png\"\/><\/p>\n<div><figcaption>\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u044d\u0442\u043e\u0433\u043e \u0436\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 GitHub<\/figcaption><\/div>\n<\/figure>\n<h2>\u0412\u044b\u0432\u043e\u0434\u044b<\/h2>\n<p>\u0411\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u0439 \u041c\u043e\u0441\u043a\u0432\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0443 \u0434\u043e\u043c\u043e\u0432 \u0432 \u0426\u0410\u041e, \u041b\u043e\u043c\u043e\u043d\u043e\u0441\u043e\u0432\u0441\u043a\u043e\u043c \u0440\u0430\u0439\u043e\u043d\u0435, \u0440\u0430\u0439\u043e\u043d\u0435 \u0410\u044d\u0440\u043e\u043f\u043e\u0440\u0442 \u0438 \u0432 \u0418\u0437\u043c\u0430\u0439\u043b\u043e\u0432\u043e. \u041d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u043e\u0447\u0442\u0438 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0440\u0430\u0439\u043e\u043d\u0435 \u0441\u0442\u043e\u043b\u0438\u0446\u044b \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0435\u0441\u043b\u0438 \u0441\u0443\u0434\u0438\u0442\u044c \u043f\u043e \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043e\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443.<\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0445 \u0432\u043e\u043a\u0440\u0443\u0433 \u043d\u0430\u0441 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e. \u041d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043c\u0430\u043b\u043e \u043a\u0442\u043e \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u0443\u044e \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0434\u0430\u0442\u044c \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0432 \u0436\u0438\u0437\u043d\u0438, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0435 \u043d\u0430 \u044d\u043c\u043e\u0446\u0438\u044f\u0445 \u0430 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0444\u0430\u043a\u0442\u043e\u0440\u0430\u0445. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0443 \u0432\u0441\u0435\u0445 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043c\u0438\u0440\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u044f\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u0430\u043c \u0438 \u0432\u0430\u0448\u0435\u0439 \u0441\u0435\u043c\u044c\u0435. \u041f\u043e\u043c\u043d\u0438\u0442\u0435, \u0447\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 &#8212; \u044d\u0442\u043e \u043a\u0430\u043a \u043d\u0430\u0432\u0438\u0433\u0430\u0442\u043e\u0440 \u0441 \u043a\u0430\u0440\u0442\u043e\u0439 \u0432 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u0435: \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043a \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044e, \u043d\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043e\u0442\u0432\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0437\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0432\u0430\u0441.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/f54\/d26\/cbb\/f54d26cbbe864a3d3e68612efb3d13cd.jpg\" alt=\"\u0422\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438 SD \u043d\u0430 \u0442\u0435\u043c\u0443 \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u0436\u0438\u043b\u044c\u044f \u0432 \u043c\u043d\u043e\u0433\u043e\u044d\u0442\u0430\u0436\u043d\u043e\u043c \u0434\u043e\u043c\u0435 \u0434\u043b\u044f \u0441\u0435\u043c\u044c\u0438\" title=\"\u0422\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438 SD \u043d\u0430 \u0442\u0435\u043c\u0443 \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u0436\u0438\u043b\u044c\u044f \u0432 \u043c\u043d\u043e\u0433\u043e\u044d\u0442\u0430\u0436\u043d\u043e\u043c \u0434\u043e\u043c\u0435 \u0434\u043b\u044f \u0441\u0435\u043c\u044c\u0438\" width=\"1024\" height=\"1024\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f54\/d26\/cbb\/f54d26cbbe864a3d3e68612efb3d13cd.jpg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>\u0422\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0438 SD \u043d\u0430 \u0442\u0435\u043c\u0443 \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u0436\u0438\u043b\u044c\u044f \u0432 \u043c\u043d\u043e\u0433\u043e\u044d\u0442\u0430\u0436\u043d\u043e\u043c \u0434\u043e\u043c\u0435 \u0434\u043b\u044f \u0441\u0435\u043c\u044c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u043b\u044f \u0434\u0435\u0442\u0435\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0432 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044f\u0445 \u0432\u0430\u0448\u0435\u0433\u043e \u0436\u0438\u043b\u044c\u044f, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0443 \u0441\u0435\u043c\u044c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0434\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u0432\u044b\u0431\u043e\u0440\u0430. \u0425\u043e\u0442\u044f \u0446\u0438\u0444\u0440\u044b \u043d\u0435 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0438 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0432\u0435\u0440\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e  \u0432\u044b\u0431\u043e\u0440\u0430 \u043c\u0435\u0441\u0442\u0430 \u0436\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430, \u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u0430\u0441 \u0432\u043e\u043b\u043d\u0443\u0435\u0442 \u0441\u0443\u0434\u044c\u0431\u0430 \u0432\u0430\u0448\u0435\u0433\u043e \u0447\u0430\u0434\u0430, \u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0432\u044b\u0431\u043e\u0440\u0430 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u0430\u043c \u043d\u0430\u0439\u0442\u0438 \u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0439 \u0436\u0438\u0437\u043d\u0438, \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u043f\u0440\u0438\u0441\u043c\u043e\u0442\u0440\u0435\u0432\u0448\u0438\u0441\u044c \u043a \u0440\u0430\u0439\u043e\u043d\u0430\u043c \u0441\u0442\u043e\u043b\u0438\u0446\u044b.<\/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\/776582\/\"> https:\/\/habr.com\/ru\/articles\/776582\/<\/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<p>\u041a\u043e\u0433\u0434\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0448\u044c \u0434\u043e\u043c \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0431\u043b\u0430\u0433\u043e\u043f\u043e\u043b\u0443\u0447\u0438\u044f \u0440\u0435\u0431\u0435\u043d\u043a\u0430 \u0438 \u0436\u0438\u0437\u043d\u0438 \u0441\u0435\u043c\u044c\u0438 \u0441 \u043d\u0438\u043c \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0435 20 \u043b\u0435\u0442, \u043b\u0443\u0447\u0448\u0435 \u0436\u0438\u0442\u044c \u0432 \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043e\u0442 \u0434\u0435\u0442\u0441\u0430\u0434\u0430, \u0448\u043a\u043e\u043b\u044b, \u043a\u043e\u043b\u0435\u0434\u0436\u0430 \u0438 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0430. \u0411\u044b\u043b\u043e \u0431\u044b \u0445\u043e\u0440\u043e\u0448\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0431\u043b\u0438\u0437\u043e\u0441\u0442\u0438 \u0431\u044b\u043b\u0438 \u043a\u0440\u0443\u0436\u043a\u0438 \u0434\u0435\u0442\u0441\u043a\u043e\u0433\u043e \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u0430, \u0441\u043f\u043e\u0440\u0442\u0446\u0435\u043d\u0442\u0440\u044b, \u0448\u043a\u043e\u043b\u044b \u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432. \u041d\u0443 \u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u0440\u044f\u0434\u043e\u043c \u0435\u0441\u0442\u044c \u0438\u0433\u0440\u043e\u0432\u044b\u0435 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438 \u0438 \u043f\u043e\u043b\u0438\u043a\u043b\u0438\u043d\u0438\u043a\u0438 &#8212; \u0436\u0438\u043b\u044c\u0435 \u0432\u0435\u0434\u044c \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442 \u043d\u0435 \u043d\u0430 \u043f\u0430\u0440\u0443 \u043b\u0435\u0442.<\/p>\n<p>\u041c\u043e\u0439 \u0440\u0435\u0439\u0442\u0438\u043d\u0433 \u0434\u043e\u043c\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u0445 \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438. \u0412\u0441\u0435 \u0440\u0430\u0441\u0447\u0435\u0442\u044b \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u044b \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 OpenStreetMap \u0434\u043b\u044f \u0436\u0438\u043b\u044b\u0445 \u0434\u043e\u043c\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u043b\u0438\u0436\u0435 2\u043a\u043c \u043f\u0435\u0448\u043a\u043e\u043c \u043e\u0442 \u0432\u0445\u043e\u0434\u0430 \u0432 \u043c\u0435\u0442\u0440\u043e\u043f\u043e\u043b\u0438\u0442\u0435\u043d \u0438\u043b\u0438 \u041c\u0426\u041a, \u0430 \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e \u0443 \u044d\u0442\u0438\u0445 \u0434\u043e\u043c\u043e\u0432 \u043d\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c\u044e. \u0420\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0441\u0430\u043c\u044b\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u0434\u043e\u043c\u0430 \u0434\u043b\u044f \u0436\u0438\u0437\u043d\u0438 \u0441 \u0434\u0435\u0442\u044c\u043c\u0438 \u0432 \u0440\u0430\u0439\u043e\u043d\u0430\u0445 \u041c\u043e\u0441\u043a\u0432\u044b.<\/p>\n<p>\u0418\u0434\u0435\u044f \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u0430\u044f &#8212; \u043a\u043e\u0433\u0434\u0430 \u0438\u0437\u043e \u0434\u043d\u044f \u0432 \u0434\u0435\u043d\u044c \u0445\u043e\u0434\u0438\u0442\u0435 \u0432 \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u043c\u0435\u0441\u0442\u0430 \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u043c\u043d\u043e\u0433\u0438\u0445 \u043b\u0435\u0442, \u0442\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u0432\u0441\u0435 \u044d\u0442\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b \u0431\u044b\u043b\u0438 \u0431\u044b \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0431\u043b\u0438\u0437\u043a\u043e \u043a \u0432\u0430\u0448\u0435\u043c\u0443 \u0434\u043e\u043c\u0443 \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0443 \u0432\u0430\u0441 \u0431\u044b\u043b \u0431\u044b \u0432\u044b\u0431\u043e\u0440 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 \u0448\u0430\u0433\u043e\u0432\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043e\u0442 \u043a\u0432\u0430\u0440\u0442\u0438\u0440\u044b. <\/p>\n<h2>\u041c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0440\u0430\u0441\u0447\u0435\u0442\u0430<\/h2>\n<p>\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0436\u0438\u043b\u043e\u0433\u043e \u0434\u043e\u043c\u0430 \u041c\u043e\u0441\u043a\u0432\u044b \u0432\u044b\u0448\u0435 2\u0445 \u044d\u0442\u0430\u0436\u0435\u0439 \u0432 \u0435\u0433\u043e \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438 2\u043a\u043c \u043f\u0435\u0448\u043a\u043e\u043c \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u0435\u043c \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u0437\u0434\u0430\u043d\u0438\u044f \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Dkindergarten\" rel=\"noopener noreferrer nofollow\">\u0414\u0435\u0442\u0441\u0430\u0434<\/a> \u0438\u043b\u0438 <a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Dchildcare\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u0448\u043a\u043e\u043b\u044c\u043d\u043e\u0435 \u0443\u0447\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Dschool\" rel=\"noopener noreferrer nofollow\">\u0428\u043a\u043e\u043b\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Dcollege\" rel=\"noopener noreferrer nofollow\">\u041a\u043e\u043b\u0435\u0434\u0436 \u0438\u043b\u0438 \u0443\u0447\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Duniversity\" rel=\"noopener noreferrer nofollow\">\u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Dlanguage_school\" rel=\"noopener noreferrer nofollow\">\u041a\u0443\u0440\u0441\u044b \u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Dmusic_school\" rel=\"noopener noreferrer nofollow\">\u041c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0448\u043a\u043e\u043b\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Dtraining\" rel=\"noopener noreferrer nofollow\">\u0423\u0447\u0435\u0431\u043d\u044b\u0435 \u043a\u0443\u0440\u0441\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Dcommunity_centre\" rel=\"noopener noreferrer nofollow\">\u0414\u043e\u043c\u0430 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u0430 \u0438 \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0446\u0435\u043d\u0442\u0440\u044b<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:leisure=sports_centre\" rel=\"noopener noreferrer nofollow\">\u0421\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u044b\u0439 \u0446\u0435\u043d\u0442\u0440<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:leisure=playground\" rel=\"noopener noreferrer nofollow\">\u0414\u0435\u0442\u0441\u043a\u0430\u044f \u0438\u0433\u0440\u043e\u0432\u0430\u044f \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0430<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/wiki.openstreetmap.org\/wiki\/RU:Tag:amenity%3Dclinic\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u043b\u0438\u043a\u043b\u0438\u043d\u0438\u043a\u0430<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0434\u043e\u043c\u0430 \u0432\u0435\u0434\u0435\u043c \u043f\u0440\u0438\u0437\u043d\u0430\u043a <strong>all_infra<\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d, \u043a\u043e\u0433\u0434\u0430 \u0432 \u043e\u043a\u0440\u0435\u0441\u043d\u043e\u0441\u0442\u0438 \u0435\u0441\u0442\u044c \u043e\u0434\u0438\u043d \u0438 \u0431\u043e\u043b\u0435\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 <em>\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439<\/em> \u0438\u0437 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430. \u0410 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c <strong><em>totalScore<\/em><\/strong><em> <\/em>\u043a\u0430\u043a \u0441\u0443\u043c\u043c\u0443 \u0447\u0438\u0441\u043b\u0430 \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044f\u0445 (\u043f\u043e\u043b\u0438\u043a\u043b\u0438\u043d\u0438\u043a\u0443 \u0438 \u0434\u0435\u0442\u0441\u043a\u0438\u0435 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438 \u0441 \u043f\u043e\u043d\u0438\u0436\u0430\u044e\u0449\u0438\u043c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u043c 0.01).<\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432 <a href=\"https:\/\/github.com\/igor-suhorukov\/igor-suhorukov.github.io\/blob\/main\/data\/moscow_children_infrastructure.tsv\" rel=\"noopener noreferrer nofollow\">\u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b<\/a> \u043a\u0430\u043a \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u0430 30\u0442\u044b\u0441 \u0436\u0438\u043b\u044b\u0445 \u043c\u043d\u043e\u0433\u043e\u044d\u0442\u0430\u0436\u043d\u044b\u0445 \u0436\u0438\u043b\u044b\u0445 \u0434\u043e\u043c\u043e\u0432 \u0434\u043b\u044f \u041c\u043e\u0441\u043a\u0432\u044b, \u0433\u0434\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u0434\u043e\u043c\u043e\u0432 \u0440\u0430\u0441\u0447\u0438\u0442\u0430\u043d\u043e \u0447\u0438\u0441\u043b\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u0441 \u0434\u0435\u0442\u044c\u043c\u0438, \u0432 \u043f\u0435\u0448\u0435\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0434\u043e 2\u043a\u043c. \u041c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0435\u0433\u043e \u0432 Excel \u0438\u043b\u0438 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438 \u0442\u0430\u043a \u043a\u0430\u043a \u0443\u0434\u043e\u0431\u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u0430\u043c. \u0412 \u0434\u0430\u043d\u043d\u044b\u0445 \u0435\u0441\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0430 \u0434\u043e\u043c\u043e\u0432 \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0439\u043e\u043d\u0430.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>30\u0442\u044b\u0441. \u0434\u043e\u043c\u043e\u0432 \u041c\u043e\u0441\u043a\u0432\u044b. \u0427\u0435\u043c \u0441\u0432\u0435\u0442\u043b\u0435\u0435 \u0442\u043e\u0447\u043a\u0430, \u0442\u0435\u043c \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u044b\u0448\u0435\u043d\u0430\u0437\u0432\u0430\u043d\u043d\u043e\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044f\u0445 \u0434\u043e\u043c\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u041c\u043e\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0438 \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0447\u0442\u043e-\u043b\u0438\u0431\u043e \u043a\u0440\u043e\u043c\u0435 \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u043e\u0439 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0434\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b.<\/p>\n<p><strong>\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442<\/strong>, \u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b, \u043f\u0440\u043e\u0441\u0442\u043e <strong>\u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0439\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u0434\u0435\u043b<\/strong>.<\/p>\n<h2>\u041a\u0430\u043a \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c<\/h2>\n<p>\u0421 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u044d\u0442\u043e \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u043e. \u0425\u043e\u0442\u044f \u0440\u0430\u0441\u0447\u0435\u0442 \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u044b\u0445 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0434\u043e\u043c\u043e\u0432 \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0442\u043e\u0447\u043a\u0430\u043c\u0438 \u043f\u043e \u043f\u0440\u044f\u043c\u043e\u0439. \u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/habr.com\/ru\/articles\/773424\/\" rel=\"noopener noreferrer nofollow\">\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u043a\u0430\u0441\u0442\u0430\u0445<\/a>. <\/p>\n<p>\u0423\u0436\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u043f\u043e \u0448\u0430\u0433\u0430\u043c <a href=\"https:\/\/habr.com\/ru\/articles\/770044\/\" rel=\"noopener noreferrer nofollow\">\u043a\u0430\u043a \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c<\/a> \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430. \u041d\u043e \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432\u0434\u0440\u0443\u0433 \u043d\u0435\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0438\u043b\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432, \u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0437\u044f\u0442\u044c \u043f\u0440\u0435\u0434\u0440\u0430\u0441\u0447\u0438\u0442\u0430\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043f\u0435\u0448\u0435\u0445\u043e\u0434\u043d\u044b\u0445 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u043e\u0442 \u0436\u0438\u043b\u044b\u0445 \u0434\u043e\u043c\u043e\u0432 \u0434\u043e \u043c\u0435\u0441\u0442 \u0432 \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u044f\u0445: <a href=\"https:\/\/github.com\/igor-suhorukov\/igor-suhorukov.github.io\/blob\/main\/data\/distmsk_\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/igor-suhorukov\/igor-suhorukov.github.io\/blob\/main\/data\/distmsk_<\/a><a href=\"https:\/\/github.com\/igor-suhorukov\/igor-suhorukov.github.io\/blob\/main\/data\/\" rel=\"noopener noreferrer nofollow\">*.parquet<\/a> (\u0433\u0434\u0435 \u043f\u043e\u0434 * \u043d\u043e\u043c\u0435\u0440\u0430 \u043e\u0442 0 \u0434\u043e 21). \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u044d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 duckdb_building \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043e\u0433\u0430\u0442\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u043e\u043c: \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u0434\u043e\u043c\u0430, \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0443\u043b\u0438\u0446\u044b \u0438 \u0440\u0430\u0439\u043e\u043d\u0430.<\/p>\n<p>\u0414\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Parquet \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u0442\u0440\u044f\u0445\u043d\u0443\u0442\u044c \u043f\u044b\u043b\u044c \u0441\u043e \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 <a href=\"https:\/\/github.com\/igor-suhorukov\/arrow_to_database\" rel=\"noopener noreferrer nofollow\">arrow_to_database<\/a>, \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438, \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043b \u043a\u043e\u0434 \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u0431\u043e\u0440\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 Dockerfile. \u041f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 Apache Arrow \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432 Parquet, ORC, Arrow Feather \u0432 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 PostgreSQL, H2, QuestDB.  \u0416\u0434\u0443 \u043d\u0435 \u0434\u043e\u0436\u0434\u0443\u0441\u044c \u043a\u043e\u0433\u0434\u0430 \u0443\u0436\u0435 \u0432 PostgreSQL \u0438\u043b\u0438 psql \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c parquet \u0444\u0430\u0439\u043b\u044b \u0431\u0435\u0437 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code class=\"java\"> void copyArrowDatasetIntoPreparedStatement(int batchSize, FileFormat fileFormat,                                               String datasetUri, PreparedStatement preparedStatement) throws Exception {         try (BufferAllocator allocator = new RootAllocator()) {             FileSystemDatasetFactory factory = new FileSystemDatasetFactory(allocator,                                                         NativeMemoryPool.getDefault(), fileFormat, datasetUri);             final Dataset dataset = factory.finish();             ScanOptions options = new ScanOptions(batchSize);             final Scanner scanner = dataset.newScan(options);             try {                 long rowCount=0;                 try (ArrowReader reader = scanner.scanBatches()) {                     while (reader.loadNextBatch()) {                         try (VectorSchemaRoot root = reader.getVectorSchemaRoot()) {                             JdbcParameterBinder binder = JdbcParameterBinder                                     .builder(preparedStatement, root).bindAll().build();                             while (binder.next()) {                                 preparedStatement.addBatch();                                 rowCount++;                             }                             preparedStatement.executeBatch();                         }                     }                 } catch (Exception e) {                     throw new RuntimeException(e);                 }                 LOGGER.info(\"Total rows imported: {}\", rowCount);             } finally {                 AutoCloseables.close(scanner, dataset);             }         }     }<\/code><\/pre>\n<p>\u041f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Dataset, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Scanner \u0438 \u0437\u0430\u043f\u0438\u0441\u044c \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043e\u0440\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445( \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430 \u0437\u0430\u0434\u0430\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b) \u0438\u0437 Arrow API \u0432 \u0431\u0430\u0437\u0443 \u0447\u0435\u0440\u0435\u0437 JDBC. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u0434 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u0438 \u0441\u0445\u0435\u043c\u044b \u0438 \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u0442\u0443\u0442 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442. \u0423\u0442\u0438\u043b\u0438\u0442\u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u043e \u0441\u0445\u0435\u043c\u0435 parquet \u0444\u0430\u0439\u043b\u0430, \u0435\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c <code>create_table<\/code>.  <\/p>\n<p>\u0418\u043c\u043f\u043e\u0440\u0442 55\u043c\u043b\u043d. \u0441\u0442\u0440\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 PostgreSQL :<\/p>\n<pre><code class=\"bash\">[main] INFO org.apache.arrow.memory.BaseAllocator - Debug mode disabled. Enable with the VM option -Darrow.memory.debug.allocator=true. [main] INFO org.apache.arrow.memory.DefaultAllocationManagerOption - allocation manager type not specified, using netty as the default type [main] WARN org.apache.arrow.memory.CheckAllocator - More than one DefaultAllocationManager on classpath. Choosing first found [main] INFO org.apache.arrow.memory.CheckAllocator - Using DefaultAllocationManager at memory-netty\/14.0.1\/arrow-memory-netty-14.0.1.jar!\/org\/apache\/arrow\/memory\/DefaultAllocationManagerFactory.class [main] INFO com.github.isuhorukov.arrow.jdbc.DatasetReader - Generated 'insert' query from Apache Arrow schema: insert into duckdb_building(\"h3_8\", \"building_id\", \"building_type\", \"distance\", \"categories\", \"design_ref\", \"name\", \"amenity\", \"leisure\", \"shop\", \"healthcare\", \"tourism\", \"historic\", \"sport\", \"memorial\", \"education\", \"religion\", \"office\", \"brand\", \"network\", \"operator\") values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [main] INFO com.github.isuhorukov.arrow.jdbc.DatasetReader - Total rows imported: 55180865<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0441\u0447\u0435\u0442 \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u043e \u0434\u043e\u043c\u0430\u043c \u044f\u0432\u043d\u043e \u043d\u0435 rocket science  &#8212;  \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0443\u043c\u043c\u044b \u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f: <\/p>\n<pre><code class=\"sql\">CREATE TABLE moscow_district AS select tags->'name' name,polygon from multipolygon where tags->'admin_level'='8' and tags->'boundary'='administrative';  CREATE INDEX idx_moscow_district_geometry ON moscow_district USING gist (polygon);  CREATE TABLE infrastructure_for_children AS   select       (select name        from moscow_district        where st_contains(polygon, centre) limit 1) district,   tags->'addr:street' street,    tags->'addr:housenumber' housenumber,     totalscore,   kindergarten>0 and school>0 and college>0 and university>0 and language_school>0 and music_school>0 and training>0 and sports_centre>0 and community_centre>0 and playground>0 and clinic>0 all_infra,   kindergarten::smallint,   school::smallint,   college::smallint,   university::smallint,   language_school::smallint,   music_school::smallint,   training::smallint,   sports_centre::smallint,   community_centre::smallint,   playground::smallint,   clinic::smallint from (select building_id,building_type,        (count(*) filter (where amenity='kindergarten' or amenity='childcare') +        count(*) filter (where amenity='school') +        count(*) filter (where amenity='college') +        count(*) filter (where amenity='university') +        count(*) filter (where amenity='language_school') +        count(*) filter (where amenity='music_school') +        count(*) filter (where amenity='training') +        count(*) filter (where leisure='sports_centre') +        count(*) filter (where amenity='community_centre') +        0.01*count(*) filter (where leisure='playground') +        0.01*count(*) filter (where amenity='clinic'))::float4 totalScore,        count(*) filter (where amenity='kindergarten' or amenity='childcare') kindergarten,        count(*) filter (where amenity='school') school,        count(*) filter (where amenity='college') college,        count(*) filter (where amenity='university') university,        count(*) filter (where amenity='language_school') language_school,        count(*) filter (where amenity='music_school') music_school,        count(*) filter (where amenity='training') training,        count(*) filter (where leisure='sports_centre') sports_centre,        count(*) filter (where amenity='community_centre') community_centre,        count(*) filter (where leisure='playground') playground,        count(*) filter (where amenity='clinic') clinic       from duckdb_building          group by 1,2) stat    inner join  geometry_global_view g      on stat.building_id=id and stat.building_type=type         and (g.tags->'building:levels' is not null and g.tags->'building:levels'~'^\\d+$' and (g.tags->'building:levels')::integer>2) -- \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u043d\u043e\u0433\u043e\u044d\u0442\u0430\u0436\u043d\u044b\u0435 \u0434\u043e\u043c\u0430  order by totalscore desc;<\/code><\/pre>\n<p>\u0414\u043b\u044f \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0430 \u0438\u0437 \u043e\u0431\u0449\u0435\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443 \u0441 \u0441\u0430\u043c\u044b\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u043c <strong>totalScore<\/strong> \u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0435\u043c \u0432\u0441\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0435\u0441\u043b\u0438 \u043e\u043f\u0446\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430: <\/p>\n<pre><code class=\"sql\">select district, street, housenumber,         totalscore,all_infra,   kindergarten, school,college, university, language_school,<\/code><\/pre>\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-361271","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/361271","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=361271"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/361271\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=361271"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=361271"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=361271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}