{"id":316905,"date":"2021-01-25T15:00:38","date_gmt":"2021-01-25T15:00:38","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=316905"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=316905","title":{"rendered":"\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0432\u0438\u0436\u043e\u043a Amazon Redshift + \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u041e\u0431\u043b\u0430\u043a\u0430"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/uq\/z2\/4a\/uqz24aq-txivnlauxyvlmhwii5y.png\" alt=\"\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0432\u0438\u0436\u043e\u043a Amazon Redshift + \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u041e\u0431\u043b\u0430\u043a\u0430\" title=\"\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0432\u0438\u0436\u043e\u043a Amazon Redshift + \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u041e\u0431\u043b\u0430\u043a\u0430\"><\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!<\/p>\n<p>  <\/p>\n<p>\u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0410\u0440\u0442\u0435\u043c\u0438\u0439 \u041a\u043e\u0437\u044b\u0440\u044c \u0438\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0410\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438, \u0438 \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c \u0432\u0430\u0441 \u0441 Wheely. \u0412 \u044d\u0442\u043e\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u041e\u0441\u043d\u043e\u0432\u044b \u0433\u0438\u0431\u043a\u0438\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439<\/li>\n<li>\u041a\u043e\u043b\u043e\u043d\u043e\u0447\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n<li>\u0412\u043c\u0435\u0441\u0442\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432: \u043a\u043b\u044e\u0447\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 <\/li>\n<li>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0430\u043c\u0438, \u043f\u0440\u0430\u0432\u0430\u043c\u0438, \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438<\/li>\n<li>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 S3 \u0438\u043b\u0438 \u0414\u0430\u0442\u0430\u043b\u0435\u0439\u043a \u043d\u0430 \u0440\u043e\u0432\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435<\/li>\n<\/ul>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<p>\u0412\u0441\u0435 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f Wheely \u0442\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0414\u0430\u043d\u043d\u044b\u0445, \u0434\u0432\u0438\u0436\u043a\u043e\u043c \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0441 \u043a\u043e\u0434\u043e\u0432\u044b\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <em>Redshift<\/em> \u043e\u0442 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 <em>Amazon<\/em>. \u041d\u043e \u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0434\u0443\u043a\u0442? <\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u0443 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044e \u044f \u0431\u044b \u043e\u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0437\u043e\u0432\u0430\u043b \u043a\u0430\u043a \u0431\u0430\u0437\u043e\u0432\u0443\u044e \u0438 \u043e\u0441\u043d\u043e\u0432\u043e\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0449\u0443\u044e. \u0421\u043b\u043e\u0436\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0438 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441\u043a\u0440\u044b\u0442\u044b \u043e\u0442 \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u0438 \u043b\u0435\u0436\u0430\u0442 \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u041f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u0432\u043d\u0435\u0441\u0442\u0438 \u044f\u0441\u043d\u043e\u0441\u0442\u044c \u0438 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044c \u0434\u043b\u044f \u0432\u0430\u0441 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  <\/p>\n<h2 id=\"klasternye-vychisleniya-kak-osnova-arhitektury\">\u041a\u043b\u0430\u0441\u0442\u0435\u0440\u043d\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043a\u0430\u043a \u043e\u0441\u043d\u043e\u0432\u0430 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b<\/h2>\n<p>  <\/p>\n<p>\u041a\u043b\u0430\u0441\u0442\u0435\u0440 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 <em>leader node<\/em> (\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440) \u0438 \u043d\u0430\u0431\u043e\u0440\u0430 <em>compute node<\/em> (\u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0443\u0437\u0435\u043b). <em>\u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043e\u0440<\/em> \u0438\u0433\u0440\u0430\u0435\u0442 \u0440\u043e\u043b\u044c \u0441\u0432\u044f\u0437\u0443\u044e\u0449\u0435\u0433\u043e \u0437\u0432\u0435\u043d\u0430 \u043c\u0435\u0436\u0434\u0443 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u043c \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u043f\u043b\u0430\u043d\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0435\u0439. <em>\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0437\u043b\u044b<\/em> \u2014 \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043b\u043e\u0448\u0430\u0434\u043a\u0438, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432. <\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/habrastorage.org\/webt\/cc\/bw\/dz\/ccbwdz2-wc07qdpwuj_4pqznsu8.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/cc\/bw\/dz\/ccbwdz2-wc07qdpwuj_4pqznsu8.png\" alt=\"Redshift \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0443\u044e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u043c\u0430\u0448\u0438\u043d\" title=\"Redshift \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0443\u044e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u043c\u0430\u0448\u0438\u043d\"><\/a><\/p>\n<p>  <\/p>\n<p><em>Redshift \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0443\u044e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u043c\u0430\u0448\u0438\u043d<\/em><\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e\u0442 \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0448\u0438\u0440\u043e\u043a\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u043a\u0430\u043a <em>MPP<\/em> (massively parallel processing, \u043c\u0430\u0441\u0441\u043e\u0432\u043e-\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430). \u041d\u0435 \u043b\u0438\u0448\u043d\u0438\u043c \u0431\u0443\u0434\u0435\u0442 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0421\u0423\u0411\u0414, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b: <em>BigQuery, Vertica, Greenplum, Teradata, Azure SQL DW<\/em>.<\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u0436\u0434\u0430\u044f compute node \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432: <em>CPU<\/em>, <em>memory<\/em>, <em>disk<\/em>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u0438\u043f\u043e\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/habrastorage.org\/webt\/lw\/l5\/fk\/lwl5fkiocu6nqkwplohfo5yp9kq.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/lw\/l5\/fk\/lwl5fkiocu6nqkwplohfo5yp9kq.png\" alt=\"\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0442\u0438\u043f\u043e\u0432 compute node \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0434\u043b\u044f Amazon Redshift\" title=\"\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0442\u0438\u043f\u043e\u0432 compute node \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0434\u043b\u044f Amazon Redshift\"><\/a><\/p>\n<p>  <\/p>\n<p><em><a href=\"https:\/\/aws.amazon.com\/redshift\/pricing\/\">\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0442\u0438\u043f\u043e\u0432 compute node \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0434\u043b\u044f Amazon Redshift<\/a><\/em><\/p>\n<p>  <\/p>\n<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0432 Wheely \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c 8 \u0443\u0437\u043b\u043e\u0432 \u0442\u0438\u043f\u0430 <em>dc2.large<\/em>, \u0447\u0442\u043e \u0432 \u0441\u0443\u043c\u043c\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 16 vCPU, 120 GiB \u043f\u0430\u043c\u044f\u0442\u0438, 1.3 TB \u043e\u0431\u044a\u0435\u043c \u0434\u0438\u0441\u043a\u0430. \u041a\u0442\u043e-\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u0442\u0430\u043a\u0438\u0435 \u0443\u0436 \u0438 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043c\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0430 \u0447\u0442\u043e \u044f \u0431\u044b \u0432\u043e\u0437\u0440\u0430\u0437\u0438\u043b: \u0441\u0443\u0442\u044c \u043d\u0435 \u0432 \u043e\u0431\u044a\u0435\u043c\u0435, \u0430 \u0432 \u0442\u043e\u043c, \u043a\u0430\u043a\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438 \u043f\u043e\u043b\u044c\u0437\u0443 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u0436\u0430\u0442\u044c \u0438\u0437 \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  <\/p>\n<p>\u041d\u0435 \u043c\u043e\u0433\u0443\u0442 \u043d\u0435 \u0440\u0430\u0434\u043e\u0432\u0430\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438 \u0438 \u044d\u043b\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0441\u0442\u0438 (<em>elasticity<\/em>), \u0432 \u0446\u0435\u043b\u043e\u043c \u043f\u0440\u0438\u0441\u0443\u0449\u0438\u0435 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c. \u0421 \u0440\u043e\u0441\u0442\u043e\u043c \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0438 \u0432 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u0431\u0435\u0437 \u043e\u0441\u043e\u0431\u043e\u0433\u043e \u0442\u0440\u0443\u0434\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430: \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u043b\u043e\u0441\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0437\u043b\u043e\u0432 (<em>resize<\/em>), \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u043b\u0441\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d (<em>node upgrade<\/em>).<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/habrastorage.org\/webt\/ri\/vw\/8c\/rivw8clyvzol8o_0qbm2otvdtog.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ri\/vw\/8c\/rivw8clyvzol8o_0qbm2otvdtog.png\" alt=\"Concurrency Scaling \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0438\u043a\u043e\u0432\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439\" title=\"Concurrency Scaling \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0438\u043a\u043e\u0432\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439\"><\/a><\/p>\n<p>  <\/p>\n<p><em><a href=\"https:\/\/www.allthingsdistributed.com\/2018\/11\/amazon-redshift-performance-optimization.html\">Concurrency Scaling<\/a> \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0441 \u043f\u0438\u043a\u043e\u0432\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439<\/em><\/p>\n<p>  <\/p>\n<p>\u0412 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u043f\u0438\u043a\u043e\u0432\u044b\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044f <a href=\"https:\/\/docs.aws.amazon.com\/redshift\/latest\/dg\/concurrency-scaling.html\">concurrency scaling<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0438 \u0432 \u0432\u0438\u0434\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 <em>compute nodes<\/em>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 &quot;\u0433\u0430\u0441\u044f\u0442\u0441\u044f&quot; \u043f\u043e\u0441\u043b\u0435 \u0441\u043f\u0430\u0434\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438.<\/p>\n<p>  <\/p>\n<h2 id=\"kolonochnoe-hranenie-i-kompressiya-dannyh\">\u041a\u043e\u043b\u043e\u043d\u043e\u0447\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445<\/h2>\n<p>  <\/p>\n<p>\u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0432\u0435\u0441 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u0421\u0423\u0411\u0414 (<em>PostgreSQL, MySQL, SQL Server<\/em>), \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 (<em>row-oriented storage<\/em>), Redshift \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0432\u0441\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043a\u043e\u043b\u043e\u043d\u043e\u0447\u043d\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f (<em>column-oriented storage<\/em>). \u0411\u043b\u043e\u043a\u0438 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438, \u0438 \u043a\u0430\u0436\u0434\u0430\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0430 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0442 \u043b\u044e\u0431\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439. <\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0434\u0430\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043e\u0441\u043f\u043e\u0440\u0438\u043c\u044b\u0445 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a. \u041f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 <em>\u043f\u0440\u043e\u0435\u043a\u0446\u0438\u0438<\/em> (\u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u043a\u043e\u043b\u043e\u043d\u043e\u043a). \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0435\u0431\u0435 \u0448\u0438\u0440\u043e\u043a\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0444\u0430\u043a\u0442\u043e\u0432 \u0438\u0437 100+ \u043a\u043e\u043b\u043e\u043d\u043e\u043a; \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430\u043c \u0438\u0437 \u043d\u0438\u0445 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e 5. \u041f\u0440\u0438 \u043a\u043e\u043b\u043e\u043d\u043e\u0447\u043d\u043e\u043c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u043c\u044b \u0441 \u0434\u0438\u0441\u043a\u0430 \u043f\u0440\u043e\u0447\u0442\u0435\u043c \u0440\u043e\u0432\u043d\u043e 5 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043a\u043e\u043b\u043e\u043d\u043e\u043a. \u041f\u0440\u0438 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u043c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0431\u044b \u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0441\u0435 100+ \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0438 \u043f\u043e\u0442\u043e\u043c \u043e\u0442\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0431\u041e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c, \u0447\u0442\u043e \u0432 \u0440\u0430\u0437\u044b \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u044c I\/O \u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 \u0434\u0438\u0441\u043a.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/habrastorage.org\/webt\/y6\/pa\/ja\/y6paja_eaqlhi1ojlcnapfcerpy.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/y6\/pa\/ja\/y6paja_eaqlhi1ojlcnapfcerpy.png\" alt=\"\u041a\u043e\u043b\u043e\u043d\u043e\u0447\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0432 \u0431\u043b\u043e\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 (\u043d\u0435 \u0441\u0442\u0440\u043e\u043a\u0438!)\" title=\"\u041a\u043e\u043b\u043e\u043d\u043e\u0447\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0432 \u0431\u043b\u043e\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 (\u043d\u0435 \u0441\u0442\u0440\u043e\u043a\u0438!)\"><\/a><\/p>\n<p>  <\/p>\n<p><em>\u041a\u043e\u043b\u043e\u043d\u043e\u0447\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u0432 \u0431\u043b\u043e\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 (\u043d\u0435 \u0441\u0442\u0440\u043e\u043a\u0438!)<\/em><\/p>\n<p>  <\/p>\n<p>\u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0431\u0443\u0434\u0443\u0447\u0438 \u043e\u0434\u043d\u043e\u0440\u043e\u0434\u043d\u044b\u043c\u0438, \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0432\u0435\u0441\u044c\u043c\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u043e\u0434\u0434\u0430\u044e\u0442\u0441\u044f \u0441\u0436\u0430\u0442\u0438\u044e (<em>compression<\/em>). \u041e\u0431\u044a\u044f\u0441\u043d\u044f\u044f \u043d\u0430 \u043f\u0430\u043b\u044c\u0446\u0430\u0445, \u043d\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u0440\u0438\u0444\u0430 (<em>Business, First, Luxe<\/em>) \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043e\u0435\u0437\u0434\u043a\u0438. \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0437\u0430\u043f\u0438\u0441\u044c \u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u043d\u0430 \u043a\u0430\u043a\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435: <em>{100, Luxe}<\/em>. \u042d\u0444\u0444\u0435\u043a\u0442 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0435\u043d, \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u0438\u0441\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0442\u043d\u044f\u043c\u0438 \u0442\u044b\u0441\u044f\u0447 \u0438 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u0430\u043c\u0438. \u041d\u0430 \u0434\u0435\u043b\u0435 \u0432\u0441\u0451 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435: \u043a\u043e\u0434\u0435\u043a\u043e\u0432 (\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432) \u0441\u0436\u0430\u0442\u0438\u044f \u043e\u043a\u043e\u043b\u043e \u0434\u0435\u0441\u044f\u0442\u043a\u0430, \u0438 \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0438 \u043b\u0443\u0447\u0448\u0438\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/habrastorage.org\/webt\/zh\/vl\/jp\/zhvljpq21kmpllv6tyqlomgeurm.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zh\/vl\/jp\/zhvljpq21kmpllv6tyqlomgeurm.png\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u0436\u0430\u0442\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c Runlength encoding\" title=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u0436\u0430\u0442\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c Runlength encoding\"><\/a><\/p>\n<p>  <\/p>\n<p><em>\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u0436\u0430\u0442\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u043c <\/em><a href=\"https:\/\/docs.aws.amazon.com\/redshift\/latest\/dg\/c_Runlength_encoding.html\"><em>Runlength encoding<\/em><\/a><\/p>\n<p>  <\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u0438 \u0434\u043e\u043b\u0436\u043d\u043e\u043c \u0443\u0441\u0435\u0440\u0434\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0435\u0449\u0435 \u0431\u043e\u043b\u0435\u0435 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0436\u0430\u0442\u0438\u044f, \u0447\u0435\u043c \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0435 \u043a\u043e\u0434\u0435\u043a\u0438, \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 Amazon Redshift. \u0427\u0443\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u044d\u0442\u043e\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u044f \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u043b \u0432 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 <a href=\"https:\/\/kzzzr.github.io\/blog\/compressing-redshift-columnar-data-even-further-with-proper-encodings\/\">Compressing Redshift columnar data even further with proper encodings<\/a>.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/habrastorage.org\/webt\/7z\/mp\/sd\/7zmpsdu0apati8vgo8ocs54ns_0.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/7z\/mp\/sd\/7zmpsdu0apati8vgo8ocs54ns_0.png\" alt=\"\u041f\u0435\u0440\u0435\u0441\u043c\u043e\u0442\u0440 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0441\u0436\u0430\u0442\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c 21% \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\" title=\"\u041f\u0435\u0440\u0435\u0441\u043c\u043e\u0442\u0440 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0441\u0436\u0430\u0442\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c 21% \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\"><\/a><\/p>\n<p>  <\/p>\n<p><em>\u041f\u0435\u0440\u0435\u0441\u043c\u043e\u0442\u0440 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0441\u0436\u0430\u0442\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c 21% \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430<\/em><\/p>\n<p>  <\/p>\n<h2 id=\"klyuchi-segmentacii-i-sortirovki-vmesto-indeksov\">\u041a\u043b\u044e\u0447\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432<\/h2>\n<p>  <\/p>\n<p>\u0412 Redshift \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0435 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 (\u0438\u043d\u0434\u0435\u043a\u0441\u044b) \u0432 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u043c \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 (<em>B-Tree, Bitmap<\/em>) \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442. \u0417\u0434\u0435\u0441\u044c \u043e\u043d\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u044b, \u0438 \u0432\u043e\u0442 \u043f\u043e\u0447\u0435\u043c\u0443:<\/p>\n<p>  <\/p>\n<p>\u0422\u043e\u043d\u043a\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u0434\u0430\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0441\u0442\u0440\u043e\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0443\u0437\u043b\u0430\u043c\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430: \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0435 (<em>EVEN<\/em>), \u043a\u043e\u043f\u0438\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c (<em>ALL<\/em>), \u0438\u043b\u0438 \u043f\u043e \u043a\u043b\u044e\u0447\u0443 (<em>KEY<\/em>). \u042d\u0442\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043d\u043e\u0441\u0438\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u0438\u043f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 (<em>distribution style<\/em>).<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/habrastorage.org\/webt\/a7\/7f\/f4\/a77ff4n35wmdirrgtvgqzy7tvae.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/a7\/7f\/f4\/a77ff4n35wmdirrgtvgqzy7tvae.png\" alt=\"3 \u0442\u0438\u043f\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435: KEY, ALL, EVEN\" title=\"3 \u0442\u0438\u043f\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435: KEY, ALL, EVEN\"><\/a><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/community.microstrategy.com\/s\/article\/Amazon-Redshift-Best-Practices-for-Performance?language=en_US\"><em>3 \u0442\u0438\u043f\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f<\/em><\/a> <em>\u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435: KEY, ALL, EVEN<\/em><\/p>\n<p>  <\/p>\n<p>\u0410 \u0443\u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0431\u043b\u043e\u043a\u0430\u0445 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0443\u0437\u043b\u0435 \u043c\u043e\u0436\u043d\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0442\u043e \u0435\u0441\u0442\u044c \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438. \u041d\u0430 \u0443\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e \u043c\u043e\u043d\u043e\u0442\u043e\u043d\u043d\u043e \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0435\u043c\u0443 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0443. \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0430\u044f \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u0432 distribution key, sort key \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446 \u2014 SORT MERGE JOIN:<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">ORDER BY request_id:<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">{{    config(        dist='request_id',        sort='request_id'    ) }}<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<p>\u0421\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u043e \u043a\u0430\u043a \u043d\u0430 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e <em>ORDER BY<\/em> \u0432 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u0435, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0449\u0443\u044e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u2014 \u0442\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u0443\u0436\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u043e\u0439 \u043a\u043b\u044e\u0447 (<em>compound sort key<\/em>).<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">ORDER BY city, date, product_name:<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">{{    config(        materialized='table',        dist=&quot;city&quot;,        sort=['city', 'date', 'product_name']    ) }}<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<p>\u0412 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435, \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u0442\u0430\u043a\u043e\u0439 \u043e\u0447\u0435\u043d\u044c \u0445\u0438\u0442\u0440\u044b\u0439 \u0432\u0438\u0434 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u043a\u0430\u043a <a href=\"https:\/\/docs.aws.amazon.com\/redshift\/latest\/dg\/t_Sorting_data.html#t_Sorting_data-interleaved\">Interleaved sort key<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0430\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u0432\u0435\u0441 \u043b\u044e\u0431\u043e\u0439 \u0438\u0437 \u043a\u043e\u043b\u043e\u043d\u043e\u043a (\u0438\u043b\u0438 \u0438\u0445 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438) \u0432 \u043a\u043b\u044e\u0447\u0435 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438. \u041e\u043d \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043a \u0432\u0438\u0442\u0440\u0438\u043d\u0430\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">INTERLEAVED SORT BY completed_ts_loc, city, country, service_group, is_airport, is_wheely_journey:<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"plaintext\">{{    config(        materialized='table',        dist=&quot;journey_id&quot;,        sort_type='interleaved',        sort=[&quot;completed_ts_loc&quot;                , &quot;city&quot;                , &quot;country&quot;                , &quot;service_group&quot;                , &quot;is_airport&quot;                , &quot;is_wheely_journey&quot;]    ) }}<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<p>\u0412\u043a\u0443\u043f\u0435 \u0441 \u043a\u043e\u043b\u043e\u043d\u043e\u0447\u043d\u044b\u043c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u044d\u0442\u043e \u0434\u0430\u0435\u0442 \u043f\u043e\u0440\u0430\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432.<\/p>\n<p>  <\/p>\n<h2 id=\"razgranichenie-prav-dostupa-i-resursnyh-kvot\">\u0420\u0430\u0437\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0430\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u043d\u044b\u0445 \u043a\u0432\u043e\u0442<\/h2>\n<p>  <\/p>\n<p>\u041d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u044d\u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432, \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432\u043b\u0438\u044f\u044e\u0449\u0438\u0439 \u043d\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u043b\u044e\u0431\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u043a \u0433\u0440\u0443\u043f\u043f\u0435 \u0441 \u0447\u0435\u0442\u043a\u0438\u043c \u0441\u043a\u043e\u0443\u043f\u043e\u043c \u043f\u0440\u0430\u0432<\/li>\n<li>\u0432\u0441\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043b\u0443\u0447\u0448\u0435 \u0445\u0430\u043e\u0441\u0430. \u041a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0411\u0438\u0437\u043d\u0435\u0441-\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0441\u043c\u043e\u0442\u0440\u044f\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0432\u0438\u0442\u0440\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n<li>\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u0432\u0438\u0434\u044f\u0442 \u0441\u0442\u0435\u0439\u0434\u0436 \u0438 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b<\/li>\n<li>\u0418\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0432\u0438\u0434\u044f\u0442 \u0441\u044b\u0440\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435<\/li>\n<li>\u0410\u0434\u043c\u0438\u043d \u0432\u0438\u0434\u0438\u0442 \u0438\u0445 \u0432\u0441\u0435\u0445 \ud83d\ude42 <\/li>\n<\/ul>\n<p>  <\/p>\n<p>Amazon Redshift \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u043e\u0440\u043a\u043e\u043c \u0448\u0438\u0440\u043e\u043a\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 PostgreSQL \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u043c\u043d\u043e\u0433\u0438\u043c \u043f\u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u043c:<\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0423\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0433\u0440\u0443\u043f\u043f \u0438 \u043f\u0440\u0430\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0430:<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"sql\">---------------------- -- USER MANAGEMENT --- ----------------------  CREATE USER etl WITH PASSWORD '' ; CREATE USER hevo WITH PASSWORD '' ;  CREATE USER dbt WITH PASSWORD '' ;  CREATE USER da WITH PASSWORD '' ; CREATE USER nb WITH PASSWORD '' ;  CREATE USER looker WITH PASSWORD '' SYSLOG ACCESS UNRESTRICTED ;  CREATE USER ar WITH PASSWORD '' ; CREATE USER ak WITH PASSWORD '' ;  ------------------------- --- SCHEMA MANAGEMENT --- -------------------------  CREATE SCHEMA IF NOT EXISTS hevo AUTHORIZATION hevo ; CREATE SCHEMA IF NOT EXISTS ext AUTHORIZATION etl ;  CREATE SCHEMA IF NOT EXISTS flatten AUTHORIZATION dbt ; CREATE SCHEMA IF NOT EXISTS staging AUTHORIZATION dbt ; CREATE SCHEMA IF NOT EXISTS intermediate AUTHORIZATION dbt ; CREATE SCHEMA IF NOT EXISTS analytics AUTHORIZATION dbt ; CREATE SCHEMA IF NOT EXISTS ad_hoc AUTHORIZATION dbt ; CREATE SCHEMA IF NOT EXISTS meta AUTHORIZATION dbt ;  CREATE SCHEMA IF NOT EXISTS looker_scratch AUTHORIZATION looker ;  ----------------------- -- GROUP MANAGEMENT --- -----------------------  CREATE GROUP etl WITH USER etl, hevo ;  CREATE GROUP dbt WITH USER dbt ;  CREATE GROUP analytics WITH USER da, nb ;  CREATE GROUP bi WITH USER looker ;  CREATE GROUP business_users WITH USER ar, ak ;  ---------------------------- -- PRIVILEGES MANAGEMENT --- ----------------------------  -- GROUP etl GRANT USAGE ON SCHEMA hevo, staging, flatten, analytics, intermediate TO GROUP etl ;  -- GROUP dbt GRANT USAGE ON SCHEMA hevo, snapshots TO GROUP dbt ; GRANT USAGE, CREATE ON SCHEMA ext TO GROUP dbt ;  GRANT SELECT ON ALL tables IN SCHEMA hevo TO GROUP dbt ; GRANT ALL PRIVILEGES ON ALL tables IN SCHEMA meta, ext, snapshots TO GROUP dbt ;  ALTER DEFAULT PRIVILEGES FOR USER hevo IN SCHEMA hevo    GRANT SELECT ON tables TO GROUP dbt ;  ALTER DEFAULT PRIVILEGES FOR USER etl IN SCHEMA ext    GRANT ALL PRIVILEGES ON tables TO GROUP dbt ;  -- GROUP analytics GRANT USAGE ON SCHEMA hevo, ext, flatten, staging, intermediate, restricted, analytics, meta TO GROUP analytics ; GRANT USAGE, CREATE ON SCHEMA ad_hoc TO GROUP analytics ;  GRANT SELECT ON ALL tables IN SCHEMA hevo, ext, flatten, staging, intermediate, restricted, analytics, meta TO GROUP analytics ; GRANT ALL PRIVILEGES ON ALL tables IN SCHEMA ad_hoc TO GROUP analytics ;  ALTER DEFAULT PRIVILEGES FOR USER dbt IN SCHEMA flatten, staging, intermediate, restricted, analytics, meta    GRANT SELECT ON tables TO GROUP analytics ;  ALTER DEFAULT PRIVILEGES FOR USER dbt IN SCHEMA ad_hoc    GRANT ALL PRIVILEGES ON tables TO GROUP analytics ;  -- GROUP bi GRANT USAGE ON SCHEMA analytics, meta, ad_hoc, snapshots TO GROUP bi ;  GRANT SELECT ON ALL tables IN SCHEMA analytics, meta, ad_hoc TO GROUP bi ;  ALTER DEFAULT PRIVILEGES FOR USER dbt IN SCHEMA analytics, meta, ad_hoc    GRANT SELECT ON tables TO GROUP bi ;  -- GROUP business users GRANT USAGE ON SCHEMA analytics TO GROUP business_users ; GRANT USAGE, CREATE ON SCHEMA ad_hoc TO GROUP business_users ;  GRANT SELECT ON ALL tables IN SCHEMA analytics TO GROUP business_users ; GRANT ALL PRIVILEGES ON ALL tables IN SCHEMA ad_hoc TO GROUP business_users ;  ALTER DEFAULT PRIVILEGES FOR USER dbt IN SCHEMA analytics    GRANT SELECT ON tables TO GROUP business_users ;<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<p>\u0423 Amazon Redshift \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u043f\u043b\u043e\u0445\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 <a href=\"https:\/\/docs.aws.amazon.com\/redshift\/latest\/dg\/automatic-wlm.html\">automatic workload management<\/a> (WLM), \u0442.\u0435. \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u043c\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u041d\u043e \u043d\u0430 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0435 \u0438 \u0435\u0433\u043e \u0443\u0441\u0438\u043b\u0438\u044f \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u044e\u0442 \u043f\u0440\u0435\u0434\u0435\u043b\u0430. Redshift \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0437\u043d\u0430\u0442\u044c \u0432\u0441\u0451 \u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0435 \u0432\u0430\u0448\u0435\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438: <\/p>\n<p>  <\/p>\n<ul>\n<li>\u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 ELT<\/li>\n<li>\u041f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u044b\u0435 \u0447\u0430\u0441\u044b \u0434\u043b\u044f BI \u0438 Ad-hoc<\/li>\n<li>\u041a\u0430\u043a\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043c\u043e\u0436\u043d\u043e \u201c\u043e\u0442\u0441\u0442\u0440\u0435\u043b\u0438\u0432\u0430\u0442\u044c\u201d \u0438 \u043f\u043e\u0447\u0435\u043c\u0443<\/li>\n<li>\u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0432\u0430\u0436\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u043e\u0447\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0442\u044c\u0441\u044f<\/li>\n<\/ul>\n<p>  <\/p>\n<p><a href=\"https:\/\/habrastorage.org\/webt\/gs\/e2\/fn\/gse2fn-az1kvp1u8ti7_w9cx4_u.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/gs\/e2\/fn\/gse2fn-az1kvp1u8ti7_w9cx4_u.png\" alt=\"\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439 (WLM) \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0433\u0438\u0431\u043a\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u043d\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\" title=\"\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439 (WLM) \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0433\u0438\u0431\u043a\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u043d\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\"><\/a><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/aws.amazon.com\/blogs\/big-data\/run-mixed-workloads-with-amazon-redshift-workload-management\/\"><em>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439<\/em><\/a><em> (WLM) \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0433\u0438\u0431\u043a\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u043d\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440<\/em><\/p>\n<p>  <\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e \u0443\u0436\u0435 \u0442\u0435\u043c\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0438 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u044f \u043c\u043e\u0433\u0443 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0434\u043e\u043a\u043b\u0430\u0434 \u043f\u043e \u0440\u0430\u0437\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044e \u043f\u0440\u0430\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438 \u0442\u043e\u043d\u043a\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439.<\/p>\n<p>  <\/p>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c \u043f\u0440\u043e <em><a href=\"https:\/\/docs.aws.amazon.com\/redshift\/latest\/dg\/wlm-short-query-acceleration.html\">short-query acceleration<\/a><\/em>. Amazon Redshift \u0433\u043e\u0440\u0434\u0438\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c ML-\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0438 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 (~ \u0434\u043e 30 \u0441\u0435\u043a.) \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0432\u043f\u0435\u0440\u0435\u0434\u0438 \u0442\u0435\u0445, \u0447\u0442\u043e \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0434\u043e\u043b\u0433\u043e. \u0412 \u043b\u044e\u0431\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043f\u043e\u0441\u043b\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0439 \u0444\u0438\u0447\u0438 \u0443 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Wheely \u043a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u043b\u043e\u0441\u044c \u0432\u0442\u043e\u0440\u043e\u0435 \u0434\u044b\u0445\u0430\u043d\u0438\u0435, \u0430 BI \u0437\u0434\u043e\u0440\u043e\u0432\u043e \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0441\u044f.<\/p>\n<p>  <\/p>\n<h2 id=\"data-lake-blizhe-chem-vy-mozhete-predstavit\">Data Lake \u0431\u043b\u0438\u0436\u0435 \u0447\u0435\u043c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c<\/h2>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u0442\u0430\u043c \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u0441\u0442\u0440\u043e\u0438\u0442\u044c <em>\u0414\u0430\u0442\u0430\u043b\u0435\u0439\u043a<\/em> \u043d\u0430 \u0440\u043e\u0432\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435? \u041e\u043d\u0430 \u0435\u0441\u0442\u044c! \u0412\u043c\u0435\u0441\u0442\u0435 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c <em>Redshift Spectrum<\/em> \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0412 \u0432\u0438\u0434\u0435 <em>SQL DDL<\/em> \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0444\u0430\u0439\u043b\u044b \u0432 S3)<\/li>\n<li>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u0442\u0430\u043a\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u043c: \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043f\u0440\u043e\u0435\u043a\u0446\u0438\u0438 (<em>SELECT<\/em>), \u0444\u0438\u043b\u044c\u0442\u0440\u044b (<em>WHERE<\/em>), \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 (<em>JOINs<\/em>), \u0432\u0441\u0442\u0430\u0432\u043a\u0430 (<em>INSERT<\/em>)<\/li>\n<li>\u0420\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u043f\u043e\u043b\u0443-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438: <em>JSON, ORC, PARQUET<\/em><\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0412\u0441\u0451 \u044d\u0442\u043e \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u0448\u0438\u0440\u043e\u043a\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 <em>EXTERNAL TABLE<\/em> \u0432 _Hive. _\u0418 \u043f\u043e \u0441\u0443\u0442\u0438 \u0442\u0430\u043a \u043e\u043d\u043e \u0438 \u0435\u0441\u0442\u044c: \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e <em>Hive Metastore<\/em>.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/habrastorage.org\/webt\/g4\/lc\/rg\/g4lcrg-kuqw6knerl6eu7qbgmvo.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/g4\/lc\/rg\/g4lcrg-kuqw6knerl6eu7qbgmvo.png\" alt=\"\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f Spectrum \u0432 Redshift \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0448\u0438\u0440\u043e\u043a\u0438\u0439 \u043d\u0430\u0431\u043e\u0440 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445\" title=\"\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f Spectrum \u0432 Redshift \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0448\u0438\u0440\u043e\u043a\u0438\u0439 \u043d\u0430\u0431\u043e\u0440 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445\"><\/a><\/p>\n<p>  <\/p>\n<p><em>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f Spectrum \u0432 Redshift \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0448\u0438\u0440\u043e\u043a\u0438\u0439 \u043d\u0430\u0431\u043e\u0440 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445<\/em><\/p>\n<p>  <\/p>\n<p>\u0412 Wheely \u043c\u044b \u043d\u0430\u0448\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0439 Spectrum:<\/p>\n<p>  <\/p>\n<p>1. Data Quality Pipeline<\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 S3 \u0438 Spectrum \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u0440\u043e\u0441\u0441-\u0441\u0432\u0435\u0440\u043a\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 (MongoDB) \u0438 \u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 (Redshift). \u0427\u0443\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b \u044d\u0442\u043e \u0432 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/526174\/\">\u041a\u0442\u043e \u043e\u0442\u0432\u0435\u0442\u0438\u0442 \u0437\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438: QA \u0434\u043b\u044f \u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0414\u0430\u043d\u043d\u044b\u0445<\/a>, \u0438 \u0441 \u0442\u0435\u0445 \u043f\u043e\u0440 \u0434\u0430\u0436\u0435 \u0435\u0441\u0442\u044c \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<p>2. \u0410\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0445\u043e\u043b\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 S3<\/p>\n<p>  <\/p>\n<p>\u0425\u043e\u043b\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0440\u043e\u043a\u043e\u043c \u0434\u0430\u0432\u043d\u043e\u0441\u0442\u0438 &gt;3 \u043b\u0435\u0442 \u043c\u044b \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0432 S3 \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u043a\u043e\u043b\u043e\u043d\u043e\u0447\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 <em>parquet<\/em>. \u0414\u0430\u043d\u043d\u044b\u0435 \u0432\u0441\u0451 \u0442\u0430\u043a \u0436\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043e\u0434\u043d\u0430\u043a\u043e \u0434\u043e\u0440\u043e\u0433\u043e\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u043c\u0435\u0441\u0442\u043e \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Redshift \u043e\u043d\u0438 \u0443\u0436\u0435 \u043d\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442, \u0447\u0442\u043e \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e. <\/p>\n<p>  <\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 S3 (\u0444\u043e\u0440\u043c\u0430\u0442 \u0444\u0430\u0439\u043b\u043e\u0432 parquet)<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"sql\">UNLOAD ('SELECT * FROM &quot;hevo&quot;.&quot;events_prod_clickstream_archive&quot;')  TO 's3:\/\/wheely_analytics\/dwh\/hevo\/events_prod\/clickstream_archive'   IAM_ROLE ''  MANIFEST  FORMAT AS PARQUET  NULL AS ''  MAXFILESIZE AS 256   ENCRYPTED AUTO  ;<\/code><\/pre>\n<\/div><\/div>\n<p>  <\/p>\n<p>\u0412 \u043f\u043b\u0430\u043d\u0430\u0445 \u0443 \u043c\u0435\u043d\u044f \u0435\u0449\u0435 \u043e\u0434\u043d\u0430 \u0433\u0440\u0430\u043d\u0434\u0438\u043e\u0437\u043d\u0430\u044f \u0438\u0434\u0435\u044f: \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u0434\u0430\u0442\u0430-\u043b\u0435\u0439\u043a. \u041d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u043e\u0437\u0436\u0435.<\/p>\n<p>  <\/p>\n<h2 id=\"v-sluchae-fakapa-vosstanovites-iz-bekapa\">\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0444\u0430\u043a\u0430\u043f\u0430 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435\u0441\u044c \u0438\u0437 \u0431\u044d\u043a\u0430\u043f\u0430<\/h2>\n<p>  <\/p>\n<p><a href=\"https:\/\/habrastorage.org\/webt\/0o\/2q\/tt\/0o2qttcwjrtz27qf4meetanreiq.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/0o\/2q\/tt\/0o2qttcwjrtz27qf4meetanreiq.png\" alt=\"\u0412\u043c\u0435\u0441\u0442\u043e \u0442\u044b\u0441\u044f\u0447\u0438 \u0441\u043b\u043e\u0432\" title=\"\u0412\u043c\u0435\u0441\u0442\u043e \u0442\u044b\u0441\u044f\u0447\u0438 \u0441\u043b\u043e\u0432\"><\/a><\/p>\n<p>  <\/p>\n<p><em>\u0412\u043c\u0435\u0441\u0442\u043e \u0442\u044b\u0441\u044f\u0447\u0438 \u0441\u043b\u043e\u0432<\/em><\/p>\n<p>  <\/p>\n<p>\u041e\u0431\u044b\u0447\u043d\u043e \u044f \u043d\u0435 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u043c\u0435\u043c\u044b \u0432 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u043d\u043e \u0442\u0443\u0442 \u043d\u0435 \u0441\u043c\u043e\u0433 \u0443\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u0441\u044f. \u0421\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043d\u0430\u0442\u043a\u043d\u0443\u043b\u0441\u044f \u0438 \u043d\u0430\u0448\u0435\u043b \u0435\u0433\u043e \u043e\u0447\u0435\u043d\u044c \u0441\u043c\u0435\u0448\u043d\u044b\u043c \u0438 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u043c. \u0421\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0442\u0438 \u0441 \u043a\u0430\u0436\u0434\u044b\u043c, \u0438 \u044f \u043d\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u0411\u043b\u0430\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0435 \u0431\u044b\u043b \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u0432\u0438\u0442\u0440\u0438\u043d\u0430\u043c\u0438 \u0438 production-\u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438, \u0430 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0435\u043b \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0439 ad-hoc \u0437\u0430\u0434\u0430\u0447\u0438.<\/p>\n<p>  <\/p>\n<p>\u0421\u0443\u0442\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441 \u043d\u0435\u0434\u0430\u0432\u043d\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u044b\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438\u0437 \u0431\u044d\u043a\u0430\u043f\u0430 \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (target table). \u041e\u0447\u0435\u043d\u044c \u043b\u0435\u0433\u043a\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u0443\u044e \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u0440\u0447\u0435\u043d\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438\u0437 \u0431\u044d\u043a\u0430\u043f\u0430 \u0437\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0434\u0430\u0442\u0443. \u0418 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u0430 \u043d\u0435 \u0441\u043d\u0430\u043f\u0448\u043e\u0442 \u0446\u0435\u043b\u0438\u043a\u043e\u043c. \u0418 \u044d\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0440\u0430\u0434\u043e\u0432\u0430\u0442\u044c. \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c, \u0438, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0445\u0432\u0430\u0442\u0438\u0442.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/habrastorage.org\/webt\/rh\/22\/pc\/rh22pctxqcaqy0frp5cysfxsx5i.png\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/rh\/22\/pc\/rh22pctxqcaqy0frp5cysfxsx5i.png\" alt=\"\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u0443\u044e \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u0440\u0447\u0435\u043d\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438\u0437 \u0431\u044d\u043a\u0430\u043f\u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u043a\u0430\u043a \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0431\u044b\u0441\u0442\u0440\u043e\" title=\"\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u0443\u044e \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u0440\u0447\u0435\u043d\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438\u0437 \u0431\u044d\u043a\u0430\u043f\u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u043a\u0430\u043a \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0431\u044b\u0441\u0442\u0440\u043e\"><\/a><\/p>\n<p>  <\/p>\n<p><em>\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u0443\u044e \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u0440\u0447\u0435\u043d\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438\u0437 \u0431\u044d\u043a\u0430\u043f\u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u043a\u0430\u043a \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0431\u044b\u0441\u0442\u0440\u043e<\/em><\/p>\n<p>  <\/p>\n<p>\u041d\u0443 \u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0441\u0442\u043e\u0438\u0442 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c \u0447\u0442\u043e \u0431\u044d\u043a\u0430\u043f\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0447\u0430\u0441\u043e\u0432 \u0438 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u043e\u043c \u0432 7 \u0441\u0443\u0442\u043e\u043a.<\/p>\n<p>  <\/p>\n<h2 id=\"ochen-zhdyom-in-database-ml-native-semi-structured-data-support\">\u041e\u0447\u0435\u043d\u044c \u0436\u0434\u0451\u043c: in-database ML, native semi-structured data support<\/h2>\n<p>  <\/p>\n<p>\u0414\u0430\u0436\u0435 \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0434\u043e\u0441\u0442\u043e\u0438\u043d\u0441\u0442\u0432\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u043a\u0443\u0434\u0430 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f. \u0418 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Wheely \u043a\u0430\u043a \u0438\u0441\u043a\u0443\u0448\u0435\u043d\u043d\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0432\u0441\u0435\u0433\u0434\u0430 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e.<\/p>\n<p>  <\/p>\n<p>\u041e\u0431\u043b\u0438\u0437\u044b\u0432\u0430\u044f\u0441\u044c, \u044f \u0441\u043c\u043e\u0442\u0440\u044e \u043d\u0430 \u043d\u043e\u0432\u044b\u0435 \u0444\u0438\u0447\u0438 Amazon Redshift, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 preview (\u043f\u043e\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432):<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/docs.aws.amazon.com\/redshift\/latest\/dg\/machine_learning.html\">Using machine learning in Amazon Redshift<\/a><\/li>\n<li><a href=\"https:\/\/docs.aws.amazon.com\/redshift\/latest\/dg\/super-overview.html\">Ingesting and querying semistructured data in Amazon Redshift<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u044f \u0443\u0436\u0435 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b \u0438\u043c \u0434\u043e\u0441\u0442\u043e\u0439\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435. \u041e\u0447\u0435\u043d\u044c \u0436\u0434\u0451\u043c! \u0418, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043c \u0441\u0432\u0435\u0436\u0438\u0435 \u043e\u0431\u0437\u043e\u0440\u044b \u0438 \u0434\u043e\u043a\u043b\u0430\u0434\u044b.<\/p>\n<p>  <\/p>\n<p>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e? \u041f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0439\u0441\u044f \u043a \u043a\u043e\u043c\u0430\u043d\u0434\u0435 <a href=\"https:\/\/wheely.com\/ru\/careers?department=4022440003&amp;city=4013282003\">Wheely<\/a>. \u0418\u043b\u0438 \u0441\u0432\u044f\u0436\u0438\u0441\u044c \u0441\u043e \u043c\u043d\u043e\u0439 \u0438 \u0437\u0430\u0434\u0430\u0439 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u2014 \u0431\u0443\u0434\u0443 \u0440\u0430\u0434 \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c.<\/p>\n<p>  <\/p>\n<p>\u0421\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u043c\u043e\u0438\u043c\u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f\u043c\u0438 \u0432 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u043c \u043a\u0430\u043d\u0430\u043b\u0435: <a href=\"https:\/\/t.me\/enthusiastech\">https:\/\/t.me\/enthusiastech<\/a>.<\/p>\n<p>  <\/p>\n<p>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435.<\/p>\n<\/div>\n<p> \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\/company\/wheely\/blog\/539154\/\"> https:\/\/habr.com\/ru\/company\/wheely\/blog\/539154\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/uq\/z2\/4a\/uqz24aq-txivnlauxyvlmhwii5y.png\" alt=\"\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0432\u0438\u0436\u043e\u043a Amazon Redshift + \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u041e\u0431\u043b\u0430\u043a\u0430\" title=\"\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0432\u0438\u0436\u043e\u043a Amazon Redshift + \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u041e\u0431\u043b\u0430\u043a\u0430\"><\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!<\/p>\n<p>  <\/p>\n<p>\u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0410\u0440\u0442\u0435\u043c\u0438\u0439 \u041a\u043e\u0437\u044b\u0440\u044c \u0438\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0410\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438, \u0438 \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c \u0432\u0430\u0441 \u0441 Wheely. \u0412 \u044d\u0442\u043e\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u041e\u0441\u043d\u043e\u0432\u044b \u0433\u0438\u0431\u043a\u0438\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439<\/li>\n<li>\u041a\u043e\u043b\u043e\u043d\u043e\u0447\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n<li>\u0412\u043c\u0435\u0441\u0442\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432: \u043a\u043b\u044e\u0447\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 <\/li>\n<li>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0430\u043c\u0438, \u043f\u0440\u0430\u0432\u0430\u043c\u0438, \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438<\/li>\n<li>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 S3 \u0438\u043b\u0438 \u0414\u0430\u0442\u0430\u043b\u0435\u0439\u043a \u043d\u0430 \u0440\u043e\u0432\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435<\/li>\n<\/ul>\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-316905","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/316905","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=316905"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/316905\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=316905"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=316905"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=316905"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}