{"id":326509,"date":"2021-07-15T15:00:51","date_gmt":"2021-07-15T15:00:51","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=326509"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=326509","title":{"rendered":"\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u041b\u0435\u0440\u0443\u0430 \u041c\u0435\u0440\u043b\u0435\u043d. Part 2. \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f 2021 \u0433\u043e\u0434\u0430: Flink \u0438 Superset"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u0418\u0442\u0430\u043a, \u0432 2021 \u0433\u043e\u0434 \u043c\u044b \u0432\u0441\u0442\u0443\u043f\u0438\u043b\u0438 \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c12\/472\/ae9\/c12472ae9e24ab0e53602b6e3a499d77.png\" width=\"1431\" height=\"570\"><figcaption><\/figcaption><\/figure>\n<p>\u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c DWH, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043f\u0443\u0442\u044f\u043c\u0438 \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c CDC \u043f\u043e\u0442\u043e\u043a \u0441 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u044b\u0445 \u0447\u0435\u0440\u0435\u0437 Airflow \u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c DDS \u0438 \u0432\u0438\u0442\u0440\u0438\u043d\u044b. \u0422\u0430\u043a\u0436\u0435 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c DataLake \u043d\u0430 S3, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043b\u0435\u0436\u0438\u0442 \u0441\u044b\u0440\u044c\u0451.<\/p>\n<p>\u041c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 CDC \u043d\u0435\u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0431\u0430\u0437, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Mongo (\u0442\u043e\u0436\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Debezium \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u043b\u0438 \u0438\u0445 \u0432 Kafka), \u043d\u0430\u0447\u0430\u043b\u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u2013 \u044d\u0442\u043e, \u043f\u043e \u0441\u0443\u0442\u0438, \u0442\u0430\u043a\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0441\u0442\u0440\u043e\u0433\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u044b\u043c \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0441\u0445\u0435\u043c\u0430\u043c. \u0422\u0430\u043a\u0436\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 event streams, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a clickstreams \u0441 \u043e\u043d\u043b\u0430\u0439\u043d-\u043f\u043b\u043e\u0449\u0430\u0434\u043e\u043a, \u0438\u043b\u0438 \u044d\u0432\u0435\u043d\u0442\u0430\u043c\u0438 CDP (customer data platform). \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0438 \u0438\u0445 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 parquet \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e NiFi \u0438 \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u043b\u0438 \u0432 Yandex Object Storage, \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Spark \u043f\u0430\u0440\u0441\u0438\u043b\u0438 \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u043b\u0438 \u0432 GreenPlum (\u0447\u0435\u0440\u0435\u0437 PXF).&nbsp;<\/p>\n<h3>\u0422\u043e\u0447\u043a\u0438 \u0440\u043e\u0441\u0442\u0430<\/h3>\n<p>\u0414\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u0435\u043c \u043d\u0430\u0448\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430\u0448\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438: \u0434\u0430\u0442\u0430-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b, \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u0438 \u0434\u0430\u0442\u0430-\u0441\u0430\u0439\u0435\u043d\u0442\u0438\u0441\u0442\u044b. \u0411\u0435\u0437 \u043d\u0438\u0445, \u0432\u0441\u044f \u043d\u0430\u0448\u0430 \u043f\u043e\u043b\u044c\u0437\u0430 \u0434\u043b\u044f \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u0438\u043c\u0435\u043b\u0430 \u0431\u044b \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043c\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u043e\u0442 \u043d\u0438\u0445 \u0444\u0438\u0434\u0431\u0435\u043a \u043e \u043d\u0430\u0448\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435.<\/p>\n<p><strong>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442<\/strong><\/p>\n<ul>\n<li>\n<p><em>\u041e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043e\u0442\u0447\u0435\u0442\u044b<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u0430\u043c\u0430\u044f \u0447\u0430\u0441\u0442\u0430\u044f \u043f\u0440\u043e\u0441\u044c\u0431\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u2013 \u0434\u0430\u0442\u044c \u0438\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043e\u0442\u0447\u0435\u0442\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0414\u0430\u043d\u043d\u044b\u0445 \u0437\u0430 \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0438\u0439 \u0434\u0435\u043d\u044c \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e\u0439 \u043e\u0446\u0435\u043d\u043a\u0438 \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432, \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438, \u0431\u043b\u0438\u0437\u043a\u0438\u0435 \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<ul>\n<li>\n<p><em>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0411\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u044b\u043b\u0430 \u0432 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c CDC \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432, \u043f\u0440\u043e\u043b\u0438\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 Kafka, \u043a\u043e\u043c\u043c\u0438\u0442\u0438\u0442\u044c \u0432 CI DDL GreenPlum\u2019\u0430, \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0432 NiFi ETL \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043d\u0435 \u0443\u043c\u0435\u043b\u0438 \u0434\u0430\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 GIT\u2019\u043e\u043c, \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u044f \u0443\u0436\u0435 \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0434\u043e\u043a\u0435\u0440\u0435, \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0442\u0435\u0441\u0442\u043e\u0432 \u0432 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u0430\u0445, DAG\u2019\u0430\u0445 Airflow \u0438 \u043f\u0440\u043e\u0447\u0435\u043c.<\/p>\n<ul>\n<li>\n<p><em>\u0412\u0440\u0435\u043c\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u00ab\u0412\u0447\u0435\u0440\u0430 \u043c\u043e\u0439 SQL \u0437\u0430\u043f\u0440\u043e\u0441 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0441\u044f 30 \u0441\u0435\u043a\u0443\u043d\u0434, \u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0443\u0436\u0435 10 \u043c\u0438\u043d\u0443\u0442\u00bb \u2013 \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u043d\u0430\u0447\u0430\u043b\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438. \u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u0431\u044b\u043b\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u2013 \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e \u0447\u0442\u043e \u0443 GreenPlum \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043f\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u043d\u044b\u043c \u0433\u0440\u0443\u043f\u043f\u0430\u043c \u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u044f\u043c, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u043b\u0438\u0441\u044c \u043f\u043e\u0434 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0442\u044f\u0436\u0435\u043b\u044b\u0435 ETL-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b.<\/p>\n<ul>\n<li>\n<p><em>\u041f\u0440\u044f\u043c\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b (DirectQuery)<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0445\u043e\u0442\u0435\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0441\u0432\u043e\u0438 BI-\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 Direct Query. \u041f\u043e \u0441\u0443\u0442\u0438, \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u043c\u043e\u0436\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445, \u0430 \u043c\u044b \u043d\u0430 GreenPlum \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u043a\u0430\u0436\u0434\u043e\u0439 \u0443\u0447\u0435\u0442\u043a\u0438. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0438\u0445 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0433\u0440\u0443\u0436\u0430\u043b\u0438\u0441\u044c. \u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b GreenPlum, \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u041d\u043e \u043c\u044b \u0441\u0430\u043c\u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u043b\u0438, \u0447\u0442\u043e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435.<\/p>\n<p><strong>\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043e\u043f\u044b\u0442<\/strong><\/p>\n<p><em>\u041d\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b &#8212; \u043d\u0430\u043c \u043a\u0430\u043a \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430\u043c \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0442\u043e\u0436\u0435 \u0431\u044b\u043b\u043e \u0432\u0430\u0436\u043d\u043e \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0441\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0438 \u0440\u043e\u0441\u0442\u0430 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0443 \u0440\u0430\u0431\u043e\u0442\u0443.<\/em><\/p>\n<ul>\n<li>\n<p><em>\u0420\u0435\u0441\u0443\u0440\u0441\u044b<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0423 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0435\u043c\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u2013 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0443 \u043f\u043e\u0440\u043e\u0439 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043a\u0430 150 \u043c\u043b\u043d CDC-\u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0437\u0430 \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b, \u0430 \u044d\u0442\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u0434\u043e 4 \u0447\u0430\u0441\u043e\u0432. \u0412\u0440\u0435\u043c\u044f \u0434\u0435\u0433\u0440\u0430\u0434\u0438\u0440\u043e\u0432\u0430\u043b\u043e \u0438\u0437-\u0437\u0430 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438. \u041f\u0430\u0440\u0442\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u043e\u043c\u043e\u0433\u0430\u043b\u043e \u0434\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u044f\u0436\u0435\u043b\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 \u043d\u0435 \u0441\u0442\u0430\u043b\u043e \u0438\u0441\u0447\u0438\u0441\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0434\u0435\u0441\u044f\u0442\u043a\u0430\u043c\u0438.&nbsp;<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u043b\u0438 \u0445\u043e\u0434\u0438\u0442\u044c \u0432 ODS-\u0441\u043b\u043e\u0438 \u0438 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u043d\u0438\u0445 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u044b, \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u043e\u0441\u043b\u0430. \u0420\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u043c\u043e\u0433\u043b\u043e \u0441\u0442\u0430\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0438\u0442\u0440\u0438\u043d. \u041d\u043e \u043c\u044b \u0437\u0430 \u043f\u043e\u0434\u0445\u043e\u0434 <a href=\"https:\/\/www.youtube.com\/watch?v=WNNZt27sHyY\"><strong><u>Data mesh<\/u><\/strong><\/a> \u0432\u043e \u0432\u0441\u0435\u043c \u0431\u0438\u0437\u043d\u0435\u0441\u0435, \u043c\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u043c \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u0435\u0434\u0438\u043d\u044b\u043c \u0446\u0435\u043d\u0442\u0440\u043e\u043c \u043a\u043e\u043c\u043f\u0435\u0442\u0435\u043d\u0446\u0438\u0439, \u0430 \u0445\u043e\u0442\u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0438 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u043b\u0430\u0441\u044c \u0432 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u041d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u0440\u0443\u043a \u0434\u0430\u0442\u0430-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0432\u043e \u0432\u0441\u0435\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445 (\u0434\u043e\u043c\u0435\u043d\u0430\u0445) \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e.&nbsp;<\/p>\n<ul>\n<li>\n<p><em>\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043d\u0430\u0448\u0438 \u0434\u0440\u0443\u0437\u044c\u044f, \u0438 \u043c\u044b \u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u0438\u043c \u0432\u043e \u0432\u0441\u0435\u043c \u043f\u043e\u043c\u043e\u0433\u0430\u0442\u044c. \u041d\u043e, \u043d\u0435 \u0438\u043c\u0435\u044f \u0434\u043e\u043b\u0436\u043d\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 GreenPlum, \u043d\u0435 \u0437\u043d\u0430\u044f \u0435\u0433\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0438, \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0431\u0435\u0436\u0430\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u0440\u0438\u0432\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u043d\u0430\u043c \u0436\u0435 \u0431\u044b\u043b\u043e \u0442\u044f\u0436\u0435\u043b\u043e \u0438\u0445 \u043e\u0442\u043b\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u043c\u0438\u043d\u0443\u0442\u0443 \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u043b\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 2 \u0442\u044b\u0441\u044f\u0447 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041f\u043b\u044e\u0441 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u043b\u0441\u044f \u0441\u043e \u0441\u0432\u043e\u0435\u0439 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u2013 \u043a\u0442\u043e \u0438\u0437 DBeaver, \u043a\u0442\u043e \u0438\u0437 PGAdmin, \u0430 \u043a\u0442\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u0438\u043c\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438.&nbsp;<\/p>\n<ul>\n<li>\n<p><em>\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0441\u0442\u044c<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e \u043d\u0430\u0448\u0438\u043c \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f\u043c, GreenPlum \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0441\u0442\u0430\u043b \u0441\u0438\u043d\u043e\u043d\u0438\u043c\u043e\u043c \u0434\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u043d \u2013 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442: \u043e\u0442\u0447\u0435\u0442\u043d\u043e\u0441\u0442\u044c, \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u044b, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u044b. \u041c\u044b \u043f\u043e\u043d\u044f\u043b\u0438, \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438 \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043d\u0435 \u0437\u0430\u043a\u0443\u043f\u0430\u044f \u043d\u043e\u0432\u043e\u0435 \u0436\u0435\u043b\u0435\u0437\u043e \u043f\u043e\u0434 GreenPlum \u0438\u043b\u0438 \u0437\u0430\u043a\u0430\u0437\u044b\u0432\u0430\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0438, \u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0443\u043f\u0440\u043e\u0449\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u043d\u0433\u0430 \u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.&nbsp;<\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0441\u0444\u043e\u043a\u0443\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043e\u0442\u0447\u0435\u0442\u043d\u043e\u0441\u0442\u0438 \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435 \u0437\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u042d\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e 2\u0445 \u043d\u043e\u0432\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b.<\/p>\n<h3>\u0410\u043f\u0434\u0435\u0439\u0442\u044b 2021<\/h3>\n<p><strong>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u043d\u0430 Flink<\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a09\/f73\/187\/a09f73187604c6dd099a5922618d9caa.png\" width=\"1600\" height=\"817\"><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u043d\u0430\u0447\u0430\u043b\u0435, \u0447\u0442\u043e\u0431\u044b \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0438\u0442\u044c \u0441\u0430\u043c\u0443\u044e \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 (\u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445), \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0437\u0432\u0430\u043b\u0438 \u00ab\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430\u00bb. \u041f\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043c\u044b \u0435\u0433\u043e \u043d\u0430 \u0431\u0430\u0437\u0435 Flink (\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445). \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 1.11 \u0441 \u0438\u044e\u043b\u044f 2020 \u0433\u043e\u0434\u0430 \u0432 \u043d\u0435\u043c \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 CDC \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438, \u043a\u0430\u043a-\u0440\u0430\u0437 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0445 Debezium.&nbsp;<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e65\/1fe\/d8d\/e651fed8dcb9d32385899b82d2be895e.png\" width=\"1431\" height=\"802\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 1.12 \u0443 Flink \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 CDC+Avro \u0438 \u0441\u043e \u0441\u0445\u0435\u043c\u0430\u043c\u0438, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u043c\u0438\u0441\u044f \u0432 Confluent Schema Registry.&nbsp;<\/p>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 \u043f\u043e\u0442\u043e\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0449\u0438\u0435\u0441\u044f counter\u2019\u044b. \u041c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b\u0438 \u044d\u0442\u043e\u0442 \u0444\u043e\u0440\u043c\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b, \u043e\u043d \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b, \u0438 \u0442\u043e, \u0447\u0442\u043e \u043d\u0430 GreenPlum \u0441\u0447\u0438\u0442\u0430\u043b\u043e\u0441\u044c \u0447\u0430\u0441\u0430\u043c\u0438, \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0443\u0436\u0435 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0430 \u043f\u043e\u0442\u043e\u043a\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Flink, \u0435\u0449\u0435 \u0438 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 near-realtime. \u041a\u0435\u0439\u0441 \u044d\u0442\u043e\u0442 \u043e\u0447\u0435\u043d\u044c \u043d\u0443\u0436\u043d\u044b\u0439, \u0442\u0430\u043a \u043a\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u043f\u043e \u0442\u043e\u0432\u0430\u0440\u043e\u043e\u0431\u043e\u0440\u043e\u0442\u0443 \u0431\u0438\u0437\u043d\u0435\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439.&nbsp;<\/p>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0432\u0441\u0435 \u0431\u044b\u043b\u043e \u0442\u0430\u043a \u0433\u043b\u0430\u0434\u043a\u043e. \u0421 \u043a\u0430\u043a\u0438\u043c\u0438 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043c\u044b \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 Flink \u0441 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435\u043c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438? \u041c\u0438\u043d\u0443\u0441\u044b \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u043d\u0430 Flink:<\/p>\n<ul>\n<li>\n<p><em>\u041e\u0434\u0438\u043d \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u2013 \u043e\u0434\u0438\u043d \u0442\u043e\u043f\u0438\u043a<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0423 \u043d\u0430\u0441 \u0432 Kafka \u0434\u0430\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: \u043e\u0434\u0438\u043d \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u2013 \u043e\u0434\u0438\u043d \u0442\u043e\u043f\u0438\u043a. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u043c\u0443 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0442\u0430\u0431\u043b\u0438\u0446 \u0432 \u043e\u0434\u043d\u043e\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0442\u043e\u043f\u0438\u043a. \u0418 \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432 Flink \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430, \u043d\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0435\u0441\u044c \u043f\u043e\u0442\u043e\u043a \u043f\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0443.&nbsp;&nbsp;<\/p>\n<ul>\n<li>\n<p><em>\u041d\u0435\u0442 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e Debezium<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043c\u0438\u043d\u0443\u0441\u0430 \u2013 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Flink \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u043f\u043e\u043b\u0435\u0439 Debezium. \u0422\u043e \u0435\u0441\u0442\u044c \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0442\u043e\u0447\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0438\u043c\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0441\u0447\u0438\u0442\u0430\u0432 \u0438\u043c\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438\u0437 Kafka CDC \u043f\u043e\u0442\u043e\u043a\u0430. \u0416\u0434\u0435\u043c <a href=\"https:\/\/issues.apache.org\/jira\/browse\/FLINK-20454\"><u>\u0444\u0438\u043a\u0441<\/u><\/a>.<\/p>\n<ul>\n<li>\n<p><em>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0445\u0435\u043c<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 avro, \u043d\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 schema registry, \u0430 \u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0441\u0445\u0435\u043c\u0443 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439, \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 Flink \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0445\u0435\u043c\u0443 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u2013 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0445\u0435\u043c\u0443 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0437\u0430\u0440\u0430\u043d\u0435\u0435.&nbsp;<\/p>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u044d\u0442\u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438, \u043c\u044b \u0432\u044b\u044f\u0432\u0438\u043b\u0438 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043c\u043d\u043e\u0433\u043e \u043f\u043b\u044e\u0441\u043e\u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u043d\u0430 Flink:<\/p>\n<ul>\n<li>\n<p><em>Near-realtime \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 CDC \u043f\u043e\u0442\u043e\u043a\u0430\u0445<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0430\u0432\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0431\u043b\u0438\u0437\u043a\u043e\u043c\u0443 \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<ul>\n<li>\n<p><em>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 SQL<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043a\u0430\u0443\u043d\u0442\u0435\u0440\u044b, \u043d\u0430\u043f\u0438\u0441\u0430\u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 <a href=\"https:\/\/ci.apache.org\/projects\/flink\/flink-docs-release-1.13\/docs\/dev\/table\/sql\/overview\/\"><u>FlinkSQL<\/u><\/a> \u2013 \u0438\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u043d\u0438 Scala, \u043d\u0438 Java, \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u044f\u0437\u044b\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u0440\u043e\u043c\u0435 SQL.<\/p>\n<ul>\n<li>\n<p><em>\u0421\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/em><\/p>\n<\/li>\n<\/ul>\n<p>Flink \u2013 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0430 \u0440\u044b\u043d\u043a\u0435 \u0434\u0430\u0432\u043d\u043e. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043d\u0430\u043c \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0435 HA-\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 savepoint\u2019\u043e\u0432 \u0438 checkpoint\u2019\u043e\u0432.&nbsp;<\/p>\n<ul>\n<li>\n<p><em>\u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u0421\u043f\u0430\u0440\u043a\u0430 \u2013 \u0443 \u0444\u043b\u0438\u043a\u0430 \u0442.\u043d. \u201ctrue\u201d-streaming, \u0430 \u043d\u0435 \u043c\u0438\u043a\u0440\u043e \u0431\u0430\u0442\u0447\u0438, \u0447\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0435\u043c\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438 CDC.<\/p>\n<ul>\n<li>\n<p><em>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Avro Confluent schema registry&nbsp;<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0441\u044f \u043a Confluent Schema Registry \u0438 \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u0445\u0435\u043c\u044b \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0438\u0437 \u043d\u0435\u0433\u043e:<\/p>\n<details class=\"spoiler\">\n<summary>FlinkSQL<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"sql\">CREATE TABLE test1(  &nbsp;&nbsp;`event_time` TIMESTAMP(3) METADATA FROM 'timestamp' VIRTUAL,  &nbsp;&nbsp;`lSequenceNumber` INT,  &nbsp;&nbsp;`Date` STRING,  &nbsp;&nbsp;`RequestType` STRING,  &nbsp;&nbsp;`TransactionDate` STRING,  &nbsp;&nbsp;`TransactionTime` STRING,  &nbsp;&nbsp;`Amount` DECIMAL(10, 4)  )  WITH (  &nbsp;&nbsp;'connector' = 'kafka',  &nbsp;&nbsp;'topic' = 'data.init.database.avro.test',  &nbsp;&nbsp;'properties.bootstrap.servers' = kafka0:9092,kafka1:9092,kafka2:9092, kafka3:9092,kafka4:9092',  &nbsp;&nbsp;'properties.group.id' = 'flink-group-test1',  &nbsp;&nbsp;'properties.security.protocol' = 'SASL_SSL',  &nbsp;&nbsp;'properties.sasl.mechanism' = 'SCRAM-SHA-256',  &nbsp;&nbsp;'properties.sasl.jaas.config' = 'org.apache.kafka.common.security.scram.ScramLoginModule required username=\"***\" password=\"***\";',  &nbsp;&nbsp;'properties.ssl.truststore.location' = '\/home\/client.truststore.jks',  &nbsp;&nbsp;'properties.ssl.truststore.password' = '***',  &nbsp;&nbsp;'scan.startup.mode' = 'earliest-offset',  &nbsp;&nbsp;'value.format' = 'debezium-avro-confluent',  &nbsp;&nbsp;'value.debezium-avro-confluent.schema-registry.url' = 'sr0:8081'  &nbsp;);<\/code><\/pre>\n<\/div>\n<\/details>\n<ul>\n<li>\n<p><em>\u0423\u0434\u043e\u0431\u043d\u044b\u0439 \u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u0436\u043e\u0431 \u0444\u043b\u0438\u043d\u043a \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 (\u043a\u043c\u043a \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432 \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u0438, \u0447\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441\u043f\u0430\u0440\u043a\u0430):<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5e7\/71f\/579\/5e771f5794acd8fd65582e24f1168c5b.png\" alt=\"UI monitoring\" title=\"UI monitoring\" width=\"1600\" height=\"635\"><figcaption>UI monitoring<\/figcaption><\/figure>\n<ul>\n<li>\n<p><em>\u0411\u043e\u043b\u044c\u0448\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u043e\u0432.<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0417\u0430 \u0432\u0440\u0435\u043c\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f Flink\u2019\u0430, \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e source \u0438 sink \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0432 \u0441\u0432\u043e\u0438\u0445 ETL \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u0445 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u0441\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u041a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440 \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 <a href=\"https:\/\/github.com\/ivi-ru\/flink-clickhouse-sink\"><u>clickhouse-sink<\/u><\/a> \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440, \u043e\u0442 \u043a\u043e\u043b\u043b\u0435\u0433 \u0438\u0437 ivi, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 CH.<\/p>\n<p><em>\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c Spark \u0441 Flink \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043d\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e, \u0442.\u043a. killer-\u0444\u0438\u0447\u0435\u0439 \u0434\u043b\u044f \u043d\u0430\u0441 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 CDC \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438, \u0447\u0435\u0433\u043e \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043f\u0430\u0440\u043a \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438.<\/em><\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u043b\u044f near-realtime \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/641\/f5b\/43b\/641f5b43bcb9659c126c485cf582fa39.png\" width=\"1431\" height=\"570\"><figcaption><\/figcaption><\/figure>\n<p>ETL \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u044b \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u043d\u0430 Flink, \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0432 \u0435\u0433\u043e \u0432 Kubernetes, \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0435 \u043c\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0432 Yandex Object Storage \u0441 CH \u043d\u0430\u0434 \u043d\u0438\u043c.<\/p>\n<p><strong>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442 \u043d\u0430 Apache Superset<\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5d3\/a56\/7b0\/5d3a567b05afd6e5300d71fdb2974af6.png\" width=\"1600\" height=\"483\"><figcaption><\/figcaption><\/figure>\n<p>\u041c\u044b \u0432\u043d\u0435\u0434\u0440\u0438\u043b\u0438 Apache Superset \u2013 \u0431\u044b\u0441\u0442\u0440\u044b\u0439, \u043b\u0435\u0433\u043a\u0438\u0439, \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0442\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u043c\u0443 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u0445 \u0438 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430\u0445.<\/p>\n<p><u>\u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u043b\u0438 \u0435\u0433\u043e, \u043c\u044b \u043d\u0430\u0448\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432:<\/u><\/p>\n<ul>\n<li>\n<p><em>\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 UTF-8<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0421 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u043e\u0439 UTF-8 \u0440\u0443\u0441\u0441\u043a\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0435 \u0432 CSV, \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0438\u0441\u044c \u0442.\u043d. \u043a\u0440\u0430\u043a\u0430\u0437\u044f\u0431\u0440\u044b. \u0412 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 (1.2.0) \u044d\u0442\u043e \u0443\u0436\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e.<\/p>\n<ul>\n<li>\n<p><em>\u041d\u0435\u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0411\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0430\u0445 \u043f\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u0438 \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0445 \u0441\u0442\u0440\u043e\u043a. \u041f\u043e \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0435 \u0437\u0430\u0432\u0435\u0434\u0435\u043d <a href=\"https:\/\/github.com\/apache\/superset\/issues\/9947\"><u>issue<\/u><\/a> \u0432 github.&nbsp;<\/p>\n<ul>\n<li>\n<p><em>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u044b\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438 (Oracle, DB2) \u043d\u0435 \u0442\u0430\u043a \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u043d\u0443\u0436\u043d\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0438 \u043f\u0430\u043a\u0435\u0442\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f Oracle \u0432 requirements-extra.txt:<\/p>\n<p><code>cx_Oracle==8.2.0<\/code><\/p>\n<details class=\"spoiler\">\n<summary>\u0438 \u0432 Dockerfile<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>ADD https:\/\/download.oracle.com\/otn_software\/linux\/instantclient\/1911000\/instantclient-basic-linux.x64-19.11.0.0.0dbru.zip \/lib\/oracle_instantclient_basic.zip  ADD https:\/\/download.oracle.com\/otn_software\/linux\/instantclient\/1911000\/instantclient-sqlplus-linux.x64-19.11.0.0.0dbru.zip \/lib\/oracle_instantclient_sqlplus.zip  ADD https:\/\/download.oracle.com\/otn_software\/linux\/instantclient\/1911000\/instantclient-sdk-linux.x64-19.11.0.0.0dbru.zip \/lib\/oracle_instantclient_sdk.zip  ENV LD_LIBRARY_PATH=\"\/lib\/instantclient_19_11:${LD_LIBRARY_PATH}\"  RUN export PATH=$PATH:\/usr\/local\/instantclient\/bin &amp;&amp; \\  &nbsp;&nbsp;&nbsp; unzip \/lib\/oracle_instantclient_basic.zip -d \/lib\/ &amp;&amp; \\  &nbsp;&nbsp;&nbsp; unzip \/lib\/oracle_instantclient_sqlplus.zip -d \/lib\/ &amp;&amp; \\  &nbsp;&nbsp;&nbsp; unzip \/lib\/oracle_instantclient_sdk.zip -d \/lib\/ &amp;&amp; \\  &nbsp;&nbsp;&nbsp; echo \/lib\/instantclient_19_11\/ &gt; \/etc\/ld.so.conf.d\/oracle-instantclient.conf &amp;&amp; \\  &nbsp;&nbsp;&nbsp; ldconfig<\/code><\/pre>\n<\/div>\n<\/details>\n<ul>\n<li>\n<p><em>\u0422\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u043e\u0434\u0443\u043a\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0447\u0430\u0441\u0442\u043e \u0435\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c. \u041d\u043e \u043c\u044b \u0443\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u043e\u0432\u044b\u0445 \u0444\u0438\u0447, \u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u0440\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b. \u041d\u043e \u044d\u0442\u043e open source, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u0436\u0434\u0430\u0442\u044c \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043b\u0438\u0431\u043e \u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u0430\u043c\u0438\u043c.<\/p>\n<p><u>\u041d\u043e \u043f\u043b\u044e\u0441\u044b \u043f\u0435\u0440\u0435\u043a\u0440\u044b\u043b\u0438 \u0432\u0441\u0435 \u044d\u0442\u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438<\/u>:<\/p>\n<ul>\n<li>\n<p><em>\u0415\u0434\u0438\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0423 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0435\u0434\u0438\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430 \u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443, \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0437\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0438\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439, \u0437\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438. \u041d\u0430\u043c \u0432 \u044d\u0442\u043e\u043c \u043f\u043e\u043c\u043e\u0433 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b user impersonation \u2013 \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u0445\u043e\u0434\u0438\u0442 \u0432 Superset \u0441\u043e \u0441\u0432\u043e\u0435\u0439 LDAP \u0443\u0447\u0435\u0442\u043a\u043e\u0439, \u043e\u043d, \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u0432\u0448\u0438\u0441\u044c \u043e\u0434\u043d\u0430\u0436\u0434\u044b, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a\u043e \u0432\u0441\u0435\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u043c \u043f\u043e\u0434 \u0441\u0432\u043e\u0438\u043c \u044e\u0437\u0435\u0440\u043e\u043c.<\/p>\n<ul>\n<li>\n<p><em>\u041c\u043d\u043e\u0433\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0438 \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c GreenPlum, ClickHouse \u0438 Postgres. GP\/PG \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438, \u0430 \u0434\u043b\u044f CH \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 requirements-extra.txt:<\/p>\n<p><code>clickhouse-driver&gt;=0.2.0<\/code><\/p>\n<p><code>clickhouse-sqlalchemy&gt;=0.1.6<\/code><\/p>\n<p>\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0432\u043e\u0438 URL \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a CH \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435:<\/p>\n<p><code>clickhouse+native:\/\/&lt;user&gt;:&lt;password&gt;@&lt;host&gt;:&lt;port&gt;\/&lt;database&gt;[?options\u2026]<\/code><\/p>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c, \u043a\u0430\u043a \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c Clickhouse \u043a Supeset \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/preset.io\/blog\/2021-5-26-clickhouse-superset\/\"><u>\u0442\u0443\u0442<\/u><\/a>. \u041d\u043e \u0443 \u043d\u0435\u0433\u043e \u0442\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u044b \u043a Presto, Dremio, Druid, Hive, BigQuery, Vertica, Teradata, Exasol \u0438 <a href=\"https:\/\/superset.apache.org\/docs\/databases\/installing-database-drivers\"><u>\u043f\u0440\u043e\u0447\u0438\u043c<\/u><\/a>.<\/p>\n<ul>\n<li>\n<p><em>\u0423\u0434\u043e\u0431\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 LDAP<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 Superset \u043d\u0430\u043c \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0439, \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0439, \u0445\u043e\u0440\u043e\u0448\u043e \u043b\u043e\u0436\u0438\u0442\u0441\u044f k8s. LDAP \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0432 requirements-extra.txt&nbsp;<\/p>\n<p><code>python-ldap==3.3.1<\/code><\/p>\n<details class=\"spoiler\">\n<summary>\u0438 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433 superset\/config.py:<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>-AUTH_TYPE = AUTH_DB  +AUTH_TYPE = AUTH_LDAP  +  +AUTH_USER_REGISTRATION = True  +AUTH_USER_REGISTRATION_ROLE = \"LDAP_ROLE\"  +  +AUTH_LDAP_SERVER = \"ldaps:\/\/ad.ldap.contoso.com:636\"  +AUTH_LDAP_SEARCH = \"OU=contoso,DC=com\"  +AUTH_LDAP_SEARCH_FILTER = ''  +AUTH_LDAP_BIND_USER = \"CN=account,OU=Accounts,OU=Data_Platform,DC=contoso,DC=com\"  +AUTH_LDAP_BIND_PASSWORD = \"PASSWD\"  +AUTH_LDAP_UID_FIELD = \"sAMAccountName\"  +AUTH_LDAP_USE_TLS = False  +AUTH_LDAP_ALLOW_SELF_SIGNED = False<\/code><\/pre>\n<\/div>\n<\/details>\n<ul>\n<li>\n<p><em>\u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 1.0.0 superset \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u043b \u043d\u0430 <a href=\"https:\/\/echarts.apache.org\/\"><u>Apache Echarts<\/u><\/a> c D3, \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e <a href=\"https:\/\/preset.io\/blog\/2021-6-14-superset-nine-new-charts\/\"><u>\u043d\u043e\u0432\u044b\u0445 <\/u><\/a>\u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439. \u0410 \u043a\u043e\u043c\u0443 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445, \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c <a href=\"https:\/\/preset.io\/blog\/2020-07-02-hello-world\/\"><u>\u0441\u0432\u043e\u0438 Viz \u043f\u043b\u0430\u0433\u0438\u043d\u044b<\/u><\/a>.&nbsp;<\/p>\n<ul>\n<li>\n<p><em>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 DataHub<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0423 <a href=\"https:\/\/datahubproject.io\/\"><u>DataHub<\/u><\/a> \u0435\u0441\u0442\u044c \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0430\u0432\u0442\u043e\u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c\u043e\u0439 \u043c\u0435\u0442\u044b \u0441 \u0441\u0443\u043f\u0435\u0440\u0441\u0435\u0442\u043e\u043c &#8212; \u043e\u043d <a href=\"https:\/\/datahubproject.io\/docs\/metadata-ingestion\/#superset-superset\"><u>\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u0442\u044c<\/u><\/a> \u0441\u043f\u0438\u0441\u043e\u043a \u0447\u0430\u0440\u0442\u043e\u0432 \u0438 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u0432.<\/p>\n<ul>\n<li>\n<p><em>\u0423\u0434\u043e\u0431\u0441\u0442\u0432\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 (SQL Lab) \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 Superset:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/415\/f1d\/ff3\/415f1dff32e14f0ed515965276d1040d.png\" alt=\"\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 SQLlab \" title=\"\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 SQLlab \" width=\"1600\" height=\"1055\"><figcaption>\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 SQLlab <\/figcaption><\/figure>\n<p>\u041e\u043d \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 SQL IDE. \u041d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0434\u043b\u044f \u0448\u0430\u0440\u0438\u043d\u0433\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u0438 \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0438\u043c \u0441 \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c\u0438. \u0422\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0430 \u0432 csv, \u0448\u0435\u0434\u0443\u043b\u043b\u0438\u043d\u0433 \u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u201c\u043f\u043b\u044e\u0448\u0435\u043a\u201d.&nbsp;<\/p>\n<ul>\n<li>\n<p><em>\u0410\u0434\u043c\u0438\u043d\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0442\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u043e\u043a, \u0441\u0430\u043c \u043a\u043e\u0434 \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u2013 \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0438 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3ad\/d68\/0f0\/3add680f0760ad3ee3f97cadaa1d58ac.png\" alt=\"Admin interface\" title=\"Admin interface\" width=\"1431\" height=\"609\"><figcaption>Admin interface<\/figcaption><\/figure>\n<ul>\n<li>\n<p><em>\u0423\u0434\u043e\u0431\u043d\u044b\u0439 API<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u0430\u043a \u0432\u0438\u0448\u0435\u043d\u043a\u0430 \u043d\u0430 \u0442\u043e\u0440\u0442\u0435 \u2013 API \u0443 Superset \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u043a\u0430\u043a \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c CI\/CD \u0434\u043b\u044f \u043f\u0430\u0439\u043f\u043b\u0430\u043d\u0438\u043d\u0433\u0430 \u0432\u044b\u043a\u0430\u0442\u043a\u0438 \u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u043e\u043b\u044f\u043c\u0438, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0438 \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438, \u0447\u0430\u0440\u0442\u0430\u043c\u0438 \u0438 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430\u043c\u0438 \u0438 \u0442.\u0434.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1a9\/e2c\/588\/1a9e2c588ddf63f7e7a6385e5ce5d2de.png\" alt=\"\/swagger\/v1\" title=\"\/swagger\/v1\" width=\"3814\" height=\"1790\"><figcaption>\/swagger\/v1<\/figcaption><\/figure>\n<p>\u041c\u044b \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0432\u0435\u043b\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u0430\u043c\u0438 \u043f\u043e \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u043c \u0434\u043b\u044f \u043d\u0430\u0441 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f\u043c:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p><strong>Criterio<\/strong><\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/github.com\/apache\/superset\"><strong><u>Superset<\/u><\/strong><\/a><\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/github.com\/metabase\/metabase\"><strong><u>Metabase<\/u><\/strong><\/a><\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/github.com\/OmniDB\/OmniDB\"><strong><u>OmniDB<\/u><\/strong><\/a><\/p>\n<\/td>\n<td data-colwidth=\"67\" width=\"67\">\n<p><a href=\"https:\/\/github.com\/apache\/zeppelin\"><strong><u>Zeppellin<\/u><\/strong><\/a><\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/github.com\/getredash\/redash\"><strong><u>Redash<\/u><\/strong><\/a><\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/github.com\/sosedoff\/pgweb\"><strong><u>PgWeb<\/u><\/strong><\/a><\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/github.com\/sqlpad\/sqlpad\"><strong><u>SqlPad<\/u><\/strong><\/a><\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/popsql.com\/\"><strong><u>PopSql<\/u><\/strong><\/a><\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/www.jackdb.com\/\"><strong><u>JackDB<\/u><\/strong><\/a><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong>Freeware<\/strong><\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>Partially<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td data-colwidth=\"67\" width=\"67\">\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>No<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>No<\/p>\n<\/td>\n<td>\n<p>No<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong>Cost<\/strong><\/p>\n<\/td>\n<td>\n<p>&#8212;<\/p>\n<\/td>\n<td>\n<p>High<\/p>\n<\/td>\n<td>\n<p>&#8212;<\/p>\n<\/td>\n<td data-colwidth=\"67\" width=\"67\">\n<p>&#8212;<\/p>\n<\/td>\n<td>\n<p>Low<\/p>\n<\/td>\n<td>\n<p>&#8212;<\/p>\n<\/td>\n<td>\n<p>&#8212;<\/p>\n<\/td>\n<td>\n<p>High<\/p>\n<\/td>\n<td>\n<p>High<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong>Navigation<\/strong><\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td data-colwidth=\"67\" width=\"67\">\n<p>No<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong>Open-Source<\/strong><\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td data-colwidth=\"67\" width=\"67\">\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>No<\/p>\n<\/td>\n<td>\n<p>No<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong>Customization<\/strong><\/p>\n<\/td>\n<td>\n<p>Python<\/p>\n<\/td>\n<td>\n<p>Clojure<\/p>\n<\/td>\n<td>\n<p>Python\/Django <\/p>\n<\/td>\n<td data-colwidth=\"67\" width=\"67\">\n<p>Java <\/p>\n<\/td>\n<td>\n<p>Python<\/p>\n<\/td>\n<td>\n<p>Golang<\/p>\n<\/td>\n<td>\n<p>JS<\/p>\n<\/td>\n<td>\n<p>No<\/p>\n<\/td>\n<td>\n<p>No<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong>Security integration<\/strong><\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>Yes (requires enterprise)<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td data-colwidth=\"67\" width=\"67\">\n<p>So-so<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>So-so (require proxy)<\/p>\n<\/td>\n<td>\n<p>?<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong>Supported datasources<\/strong><\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/superset.incubator.apache.org\/#databases\"><u>Multiple<\/u><\/a> (ODBC)<\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/www.metabase.com\/\"><u>Multiple<\/u><\/a><\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/omnidb.org\/en\/\"><u>Multiple<\/u><\/a> (ODBC)<\/p>\n<\/td>\n<td data-colwidth=\"67\" width=\"67\">\n<p>Multiple (JDBC)<\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/redash.io\/integrations\/\"><u>Multiple<\/u><\/a><\/p>\n<\/td>\n<td>\n<p>PostgreSQL-compatible<\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/rickbergfalk.github.io\/sqlpad\/#\/connections\"><u>Multiple<\/u><\/a><\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/popsql.com\/docs\/connection-guides\"><u>Multiple<\/u><\/a><\/p>\n<\/td>\n<td>\n<p><a href=\"https:\/\/www.jackdb.com\/data-sources\"><u>Multiple<\/u><\/a><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong>Data visualization<\/strong><\/p>\n<\/td>\n<td>\n<p>Yes (rich)<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td data-colwidth=\"67\" width=\"67\">\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>No<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>Yes<\/p>\n<\/td>\n<td>\n<p>?<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong>Cache<\/strong><\/p>\n<\/td>\n<td>\n<p>+<\/p>\n<\/td>\n<td>\n<\/td>\n<td>\n<p>&#8212;<\/p>\n<\/td>\n<td data-colwidth=\"67\" width=\"67\">\n<\/td>\n<td>\n<\/td>\n<td>\n<p>&#8212;<\/p>\n<\/td>\n<td>\n<\/td>\n<td>\n<\/td>\n<td>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong>GP Stability<\/strong><\/p>\n<\/td>\n<td>\n<p>OK<\/p>\n<\/td>\n<td>\n<p>only BI &#8212;<\/p>\n<\/td>\n<td>\n<p>OK<\/p>\n<\/td>\n<td data-colwidth=\"67\" width=\"67\">\n<p>&#8212;<\/p>\n<\/td>\n<td>\n<p>So-So<\/p>\n<\/td>\n<td>\n<p>OK, but very very slow<\/p>\n<\/td>\n<td>\n<p>&#8212;<\/p>\n<\/td>\n<td>\n<p>&#8212;<\/p>\n<\/td>\n<td>\n<p>&#8212;<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong>Github commits\/releases<\/strong><\/p>\n<\/td>\n<td>\n<p>5*<\/p>\n<\/td>\n<td>\n<p>5*<\/p>\n<\/td>\n<td>\n<p>3*, half year last release<\/p>\n<\/td>\n<td data-colwidth=\"67\" width=\"67\">\n<p>4*, half year last release<\/p>\n<\/td>\n<td>\n<p>2*, 2019 last release<\/p>\n<\/td>\n<td>\n<p>4*<\/p>\n<\/td>\n<td>\n<p>4*<\/p>\n<\/td>\n<td>\n<p>?<\/p>\n<\/td>\n<td>\n<p>?<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p><strong>Contributors<\/strong><\/p>\n<\/td>\n<td>\n<p>616<\/p>\n<\/td>\n<td>\n<p>261<\/p>\n<\/td>\n<td>\n<p>2<\/p>\n<\/td>\n<td data-colwidth=\"67\" width=\"67\">\n<p>338<\/p>\n<\/td>\n<td>\n<p>354<\/p>\n<\/td>\n<td>\n<p>44<\/p>\n<\/td>\n<td>\n<p>61<\/p>\n<\/td>\n<td>\n<p>?<\/p>\n<\/td>\n<td>\n<p>?<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0413\u043b\u0430\u0432\u043d\u044b\u043c\u0438 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044f\u043c\u0438 \u0432\u044b\u0431\u043e\u0440\u0430 \u0432 \u043f\u043e\u043b\u044c\u0437\u0443 SS \u0434\u043b\u044f \u043d\u0430\u0441 \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c &#8212; \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430 Python, \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f, \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043c\u043c\u044c\u044e\u043d\u0438\u0442\u0438, \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0435 security \u0444\u0438\u0447\u0438 (\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 LDAP), \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Greenplum.<\/p>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b:&nbsp;<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/33c\/69d\/ef3\/33c69def3f7bd849b905a1bea553ae3a.png\" width=\"1431\" height=\"477\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u2013 Superset (\u0432 k8s), \u0441\u043b\u043e\u0439 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u2013 GreenPlum (\u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043e\u0442\u0447\u0435\u0442\u043d\u043e\u0441\u0442\u0438) \u0438 ClickHouse (\u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439, \u0441 <a href=\"https:\/\/clickhouse.tech\/docs\/ru\/engines\/table-engines\/integrations\/s3\/\"><u>S3 Table Engine<\/u><\/a>). \u0422\u0430\u043a\u0436\u0435 \u043c\u044b \u0432 GreenPlum \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0432\u0438\u0442\u0440\u0438\u043d\u044b, \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0438\u0445 \u0432 Postgres \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e PXF \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u044d\u0442\u0438 \u0432\u0438\u0442\u0440\u0438\u043d\u044b \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u0412 Superset \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0438\u0437 Postgres \u0438 CH \u0438 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u0430 \u0438\u0445 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u044b.<\/p>\n<h3>\u0412\u044b\u0432\u043e\u0434\u044b<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0445\u043e\u0440\u043e\u0448\u0443\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u0438 \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043d\u043e \u0432\u044b \u0435\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442\u0435 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c, \u0435\u0441\u0442\u044c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u0440\u0435\u043c\u044f (\u0433\u043e\u0434-\u0434\u0432\u0430) \u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0447\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e.<\/p>\n<p>\u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0438\u0439 \u0434\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u0443\u044e, \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u0443\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u0430 open source \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u0445 \u0432 \u043e\u0431\u043b\u0430\u043a\u0430\u0445. \u0412 open source \u0435\u0441\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432, \u0438 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u044c \u0443 \u0432\u0435\u043d\u0434\u043e\u0440\u043e\u0432 \u0448\u043a\u0430\u0444\u044b \u0436\u0435\u043b\u0435\u0437\u0430 \u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0434\u0435\u043d\u044c\u0433\u0438.&nbsp;<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043c\u044b\u0441\u043b\u044c \u2013 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0438 \u044d\u0442\u043e \u0441\u0430\u043c\u0430\u044f \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0442\u043e\u0439,&nbsp; \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0445\u043e\u0447\u0435\u0442 \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0435\u0434\u043e\u0432\u043e\u0439 \u0438 \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u0413\u0440\u0430\u043c\u043e\u0442\u043d\u044b\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 RnD \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c MVP \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0437\u0430 \u043f\u0430\u0440\u0443 \u043d\u0435\u0434\u0435\u043b\u044c.<\/p>\n<hr>\n<p>\u0412 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0430\u043d\u043e\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0435 \u0431\u0443\u0434\u0443\u0449\u0435\u0435 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 Greenplum Community Meetup, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u043e\u0439\u0434\u0435\u0442 22 \u0438\u044e\u043b\u044f \u0432 16:00 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u043e\u043d\u043b\u0430\u0439\u043d:<\/p>\n<p><a href=\"https:\/\/cloud.yandex.ru\/events\/409\"><u>https:\/\/cloud.yandex.ru\/events\/409<\/u><\/a><\/p>\n<p>\u041d\u0430 \u043d\u0435\u043c \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u043f\u0440\u043e \u043d\u0430\u0448 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a observability \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0443 Greenplum\u2019\u0430, \u043f\u0440\u043e \u043d\u0430\u0448\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0438 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430. \u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c, \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e!<\/p>\n<p>\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u043c\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c \u043f\u0440\u043e \u043e\u043f\u044b\u0442 company-wide \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 MLFlow, DVC \u0438 KubeFlow \u0438 \u043e\u043f\u044b\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0438\u043c\u0438.<\/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\/leroy_merlin\/blog\/567874\/\"> https:\/\/habr.com\/ru\/company\/leroy_merlin\/blog\/567874\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<p>\u0418\u0442\u0430\u043a, \u0432 2021 \u0433\u043e\u0434 \u043c\u044b \u0432\u0441\u0442\u0443\u043f\u0438\u043b\u0438 \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c DWH, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u043f\u0443\u0442\u044f\u043c\u0438 \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c CDC \u043f\u043e\u0442\u043e\u043a \u0441 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u044b\u0445 \u0447\u0435\u0440\u0435\u0437 Airflow \u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c DDS \u0438 \u0432\u0438\u0442\u0440\u0438\u043d\u044b. \u0422\u0430\u043a\u0436\u0435 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c DataLake \u043d\u0430 S3, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043b\u0435\u0436\u0438\u0442 \u0441\u044b\u0440\u044c\u0451.<\/p>\n<p>\u041c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 CDC \u043d\u0435\u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0431\u0430\u0437, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Mongo (\u0442\u043e\u0436\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Debezium \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u043b\u0438 \u0438\u0445 \u0432 Kafka), \u043d\u0430\u0447\u0430\u043b\u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u2013 \u044d\u0442\u043e, \u043f\u043e \u0441\u0443\u0442\u0438, \u0442\u0430\u043a\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0441\u0442\u0440\u043e\u0433\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u044b\u043c \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0441\u0445\u0435\u043c\u0430\u043c. \u0422\u0430\u043a\u0436\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 event streams, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a clickstreams \u0441 \u043e\u043d\u043b\u0430\u0439\u043d-\u043f\u043b\u043e\u0449\u0430\u0434\u043e\u043a, \u0438\u043b\u0438 \u044d\u0432\u0435\u043d\u0442\u0430\u043c\u0438 CDP (customer data platform). \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0438 \u0438\u0445 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 parquet \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e NiFi \u0438 \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u043b\u0438 \u0432 Yandex Object Storage, \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Spark \u043f\u0430\u0440\u0441\u0438\u043b\u0438 \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u043b\u0438 \u0432 GreenPlum (\u0447\u0435\u0440\u0435\u0437 PXF).&nbsp;<\/p>\n<h3>\u0422\u043e\u0447\u043a\u0438 \u0440\u043e\u0441\u0442\u0430<\/h3>\n<p>\u0414\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u0435\u043c \u043d\u0430\u0448\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430\u0448\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438: \u0434\u0430\u0442\u0430-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b, \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u0438 \u0434\u0430\u0442\u0430-\u0441\u0430\u0439\u0435\u043d\u0442\u0438\u0441\u0442\u044b. \u0411\u0435\u0437 \u043d\u0438\u0445, \u0432\u0441\u044f \u043d\u0430\u0448\u0430 \u043f\u043e\u043b\u044c\u0437\u0430 \u0434\u043b\u044f \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u0438\u043c\u0435\u043b\u0430 \u0431\u044b \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043c\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u043e\u0442 \u043d\u0438\u0445 \u0444\u0438\u0434\u0431\u0435\u043a \u043e \u043d\u0430\u0448\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435.<\/p>\n<p><strong>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442<\/strong><\/p>\n<ul>\n<li>\n<p><em>\u041e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043e\u0442\u0447\u0435\u0442\u044b<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u0430\u043c\u0430\u044f \u0447\u0430\u0441\u0442\u0430\u044f \u043f\u0440\u043e\u0441\u044c\u0431\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u2013 \u0434\u0430\u0442\u044c \u0438\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043e\u0442\u0447\u0435\u0442\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0414\u0430\u043d\u043d\u044b\u0445 \u0437\u0430 \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0438\u0439 \u0434\u0435\u043d\u044c \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e\u0439 \u043e\u0446\u0435\u043d\u043a\u0438 \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432, \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438, \u0431\u043b\u0438\u0437\u043a\u0438\u0435 \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<ul>\n<li>\n<p><em>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0411\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u044b\u043b\u0430 \u0432 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c CDC \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432, \u043f\u0440\u043e\u043b\u0438\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 Kafka, \u043a\u043e\u043c\u043c\u0438\u0442\u0438\u0442\u044c \u0432 CI DDL GreenPlum\u2019\u0430, \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0432 NiFi ETL \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043d\u0435 \u0443\u043c\u0435\u043b\u0438 \u0434\u0430\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 GIT\u2019\u043e\u043c, \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u044f \u0443\u0436\u0435 \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0434\u043e\u043a\u0435\u0440\u0435, \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0442\u0435\u0441\u0442\u043e\u0432 \u0432 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u0430\u0445, DAG\u2019\u0430\u0445 Airflow \u0438 \u043f\u0440\u043e\u0447\u0435\u043c.<\/p>\n<ul>\n<li>\n<p><em>\u0412\u0440\u0435\u043c\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u00ab\u0412\u0447\u0435\u0440\u0430 \u043c\u043e\u0439 SQL \u0437\u0430\u043f\u0440\u043e\u0441 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0441\u044f 30 \u0441\u0435\u043a\u0443\u043d\u0434, \u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0443\u0436\u0435 10 \u043c\u0438\u043d\u0443\u0442\u00bb \u2013 \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u043d\u0430\u0447\u0430\u043b\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438. \u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u0431\u044b\u043b\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u2013 \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e \u0447\u0442\u043e \u0443 GreenPlum \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043f\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u043d\u044b\u043c \u0433\u0440\u0443\u043f\u043f\u0430\u043c \u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u044f\u043c, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u043b\u0438\u0441\u044c \u043f\u043e\u0434 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0442\u044f\u0436\u0435\u043b\u044b\u0435 ETL-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b.<\/p>\n<ul>\n<li>\n<p><em>\u041f\u0440\u044f\u043c\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b (DirectQuery)<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0445\u043e\u0442\u0435\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0441\u0432\u043e\u0438 BI-\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 Direct Query. \u041f\u043e \u0441\u0443\u0442\u0438, \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u043c\u043e\u0436\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445, \u0430 \u043c\u044b \u043d\u0430 GreenPlum \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u043a\u0430\u0436\u0434\u043e\u0439 \u0443\u0447\u0435\u0442\u043a\u0438. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0438\u0445 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0433\u0440\u0443\u0436\u0430\u043b\u0438\u0441\u044c. \u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b GreenPlum, \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u041d\u043e \u043c\u044b \u0441\u0430\u043c\u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u043b\u0438, \u0447\u0442\u043e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435.<\/p>\n<p><strong>\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043e\u043f\u044b\u0442<\/strong><\/p>\n<p><em>\u041d\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b &#8212; \u043d\u0430\u043c \u043a\u0430\u043a \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430\u043c \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0442\u043e\u0436\u0435 \u0431\u044b\u043b\u043e \u0432\u0430\u0436\u043d\u043e \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0441\u0432\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0438 \u0440\u043e\u0441\u0442\u0430 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0443 \u0440\u0430\u0431\u043e\u0442\u0443.<\/em><\/p>\n<ul>\n<li>\n<p><em>\u0420\u0435\u0441\u0443\u0440\u0441\u044b<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0423 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0435\u043c\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u2013 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0443 \u043f\u043e\u0440\u043e\u0439 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043a\u0430 150 \u043c\u043b\u043d CDC-\u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0437\u0430 \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b, \u0430 \u044d\u0442\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u043b\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u0434\u043e 4 \u0447\u0430\u0441\u043e\u0432. \u0412\u0440\u0435\u043c\u044f \u0434\u0435\u0433\u0440\u0430\u0434\u0438\u0440\u043e\u0432\u0430\u043b\u043e \u0438\u0437-\u0437\u0430 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438. \u041f\u0430\u0440\u0442\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u043e\u043c\u043e\u0433\u0430\u043b\u043e \u0434\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u044f\u0436\u0435\u043b\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 \u043d\u0435 \u0441\u0442\u0430\u043b\u043e \u0438\u0441\u0447\u0438\u0441\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0434\u0435\u0441\u044f\u0442\u043a\u0430\u043c\u0438.&nbsp;<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u043b\u0438 \u0445\u043e\u0434\u0438\u0442\u044c \u0432 ODS-\u0441\u043b\u043e\u0438 \u0438 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u043d\u0438\u0445 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u044b, \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u043e\u0441\u043b\u0430. \u0420\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u043c\u043e\u0433\u043b\u043e \u0441\u0442\u0430\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0438\u0442\u0440\u0438\u043d. \u041d\u043e \u043c\u044b \u0437\u0430 \u043f\u043e\u0434\u0445\u043e\u0434 <a href=\"https:\/\/www.youtube.com\/watch?v=WNNZt27sHyY\"><strong><u>Data mesh<\/u><\/strong><\/a> \u0432\u043e \u0432\u0441\u0435\u043c \u0431\u0438\u0437\u043d\u0435\u0441\u0435, \u043c\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u043c \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u0435\u0434\u0438\u043d\u044b\u043c \u0446\u0435\u043d\u0442\u0440\u043e\u043c \u043a\u043e\u043c\u043f\u0435\u0442\u0435\u043d\u0446\u0438\u0439, \u0430 \u0445\u043e\u0442\u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0438 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u043b\u0430\u0441\u044c \u0432 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u041d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u0440\u0443\u043a \u0434\u0430\u0442\u0430-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0432\u043e \u0432\u0441\u0435\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445 (\u0434\u043e\u043c\u0435\u043d\u0430\u0445) \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e.&nbsp;<\/p>\n<ul>\n<li>\n<p><em>\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043d\u0430\u0448\u0438 \u0434\u0440\u0443\u0437\u044c\u044f, \u0438 \u043c\u044b \u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u0438\u043c \u0432\u043e \u0432\u0441\u0435\u043c \u043f\u043e\u043c\u043e\u0433\u0430\u0442\u044c. \u041d\u043e, \u043d\u0435 \u0438\u043c\u0435\u044f \u0434\u043e\u043b\u0436\u043d\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 GreenPlum, \u043d\u0435 \u0437\u043d\u0430\u044f \u0435\u0433\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0438, \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0431\u0435\u0436\u0430\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u0440\u0438\u0432\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u043d\u0430\u043c \u0436\u0435 \u0431\u044b\u043b\u043e \u0442\u044f\u0436\u0435\u043b\u043e \u0438\u0445 \u043e\u0442\u043b\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u043c\u0438\u043d\u0443\u0442\u0443 \u043f\u0440\u043e\u0431\u0435\u0433\u0430\u043b\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 2 \u0442\u044b\u0441\u044f\u0447 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041f\u043b\u044e\u0441 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u043b\u0441\u044f \u0441\u043e \u0441\u0432\u043e\u0435\u0439 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u2013 \u043a\u0442\u043e \u0438\u0437 DBeaver, \u043a\u0442\u043e \u0438\u0437 PGAdmin, \u0430 \u043a\u0442\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u0438\u043c\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438.&nbsp;<\/p>\n<ul>\n<li>\n<p><em>\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0441\u0442\u044c<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e \u043d\u0430\u0448\u0438\u043c \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f\u043c, GreenPlum \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0441\u0442\u0430\u043b \u0441\u0438\u043d\u043e\u043d\u0438\u043c\u043e\u043c \u0434\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b. \u0415\u0441\u043b\u0438 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043e\u043d \u2013 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442: \u043e\u0442\u0447\u0435\u0442\u043d\u043e\u0441\u0442\u044c, \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u044b, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u044b. \u041c\u044b \u043f\u043e\u043d\u044f\u043b\u0438, \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438 \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043d\u0435 \u0437\u0430\u043a\u0443\u043f\u0430\u044f \u043d\u043e\u0432\u043e\u0435 \u0436\u0435\u043b\u0435\u0437\u043e \u043f\u043e\u0434 GreenPlum \u0438\u043b\u0438 \u0437\u0430\u043a\u0430\u0437\u044b\u0432\u0430\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043a\u0438, \u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0443\u043f\u0440\u043e\u0449\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u043d\u0433\u0430 \u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.&nbsp;<\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0441\u0444\u043e\u043a\u0443\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043e\u0442\u0447\u0435\u0442\u043d\u043e\u0441\u0442\u0438 \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435 \u0437\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u042d\u0442\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e 2\u0445 \u043d\u043e\u0432\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b.<\/p>\n<h3>\u0410\u043f\u0434\u0435\u0439\u0442\u044b 2021<\/h3>\n<p><strong>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u043d\u0430 Flink<\/strong><\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u043d\u0430\u0447\u0430\u043b\u0435, \u0447\u0442\u043e\u0431\u044b \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u0438\u0442\u044c \u0441\u0430\u043c\u0443\u044e \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 (\u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445), \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0437\u0432\u0430\u043b\u0438 \u00ab\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430\u00bb. \u041f\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043c\u044b \u0435\u0433\u043e \u043d\u0430 \u0431\u0430\u0437\u0435 Flink (\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445). \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 1.11 \u0441 \u0438\u044e\u043b\u044f 2020 \u0433\u043e\u0434\u0430 \u0432 \u043d\u0435\u043c \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 CDC \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438, \u043a\u0430\u043a-\u0440\u0430\u0437 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0445 Debezium.&nbsp;<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 1.12 \u0443 Flink \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 CDC+Avro \u0438 \u0441\u043e \u0441\u0445\u0435\u043c\u0430\u043c\u0438, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u043c\u0438\u0441\u044f \u0432 Confluent Schema Registry.&nbsp;<\/p>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 \u043f\u043e\u0442\u043e\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0449\u0438\u0435\u0441\u044f counter\u2019\u044b. \u041c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b\u0438 \u044d\u0442\u043e\u0442 \u0444\u043e\u0440\u043c\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b, \u043e\u043d \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b, \u0438 \u0442\u043e, \u0447\u0442\u043e \u043d\u0430 GreenPlum \u0441\u0447\u0438\u0442\u0430\u043b\u043e\u0441\u044c \u0447\u0430\u0441\u0430\u043c\u0438, \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0443\u0436\u0435 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0430 \u043f\u043e\u0442\u043e\u043a\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Flink, \u0435\u0449\u0435 \u0438 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 near-realtime. \u041a\u0435\u0439\u0441 \u044d\u0442\u043e\u0442 \u043e\u0447\u0435\u043d\u044c \u043d\u0443\u0436\u043d\u044b\u0439, \u0442\u0430\u043a \u043a\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u043f\u043e \u0442\u043e\u0432\u0430\u0440\u043e\u043e\u0431\u043e\u0440\u043e\u0442\u0443 \u0431\u0438\u0437\u043d\u0435\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0442 \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439.&nbsp;<\/p>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0432\u0441\u0435 \u0431\u044b\u043b\u043e \u0442\u0430\u043a \u0433\u043b\u0430\u0434\u043a\u043e. \u0421 \u043a\u0430\u043a\u0438\u043c\u0438 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043c\u044b \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 Flink \u0441 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435\u043c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438? \u041c\u0438\u043d\u0443\u0441\u044b \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u043d\u0430 Flink:<\/p>\n<ul>\n<li>\n<p><em>\u041e\u0434\u0438\u043d \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u2013 \u043e\u0434\u0438\u043d \u0442\u043e\u043f\u0438\u043a<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0423 \u043d\u0430\u0441 \u0432 Kafka \u0434\u0430\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: \u043e\u0434\u0438\u043d \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u2013 \u043e\u0434\u0438\u043d \u0442\u043e\u043f\u0438\u043a. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u043c\u0443 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0442\u0430\u0431\u043b\u0438\u0446 \u0432 \u043e\u0434\u043d\u043e\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0442\u043e\u043f\u0438\u043a. \u0418 \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432 Flink \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430, \u043d\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0435\u0441\u044c \u043f\u043e\u0442\u043e\u043a \u043f\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0443.&nbsp;&nbsp;<\/p>\n<ul>\n<li>\n<p><em>\u041d\u0435\u0442 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e Debezium<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043c\u0438\u043d\u0443\u0441\u0430 \u2013 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Flink \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u043f\u043e\u043b\u0435\u0439 Debezium. \u0422\u043e \u0435\u0441\u0442\u044c \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0442\u043e\u0447\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0438\u043c\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0441\u0447\u0438\u0442\u0430\u0432 \u0438\u043c\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438\u0437 Kafka CDC \u043f\u043e\u0442\u043e\u043a\u0430. \u0416\u0434\u0435\u043c <a href=\"https:\/\/issues.apache.org\/jira\/browse\/FLINK-20454\"><u>\u0444\u0438\u043a\u0441<\/u><\/a>.<\/p>\n<ul>\n<li>\n<p><em>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0445\u0435\u043c<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 avro, \u043d\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 schema registry, \u0430 \u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0441\u0445\u0435\u043c\u0443 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439, \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 Flink \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0445\u0435\u043c\u0443 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u2013 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0445\u0435\u043c\u0443 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0437\u0430\u0440\u0430\u043d\u0435\u0435.&nbsp;<\/p>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u044d\u0442\u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438, \u043c\u044b \u0432\u044b\u044f\u0432\u0438\u043b\u0438 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043c\u043d\u043e\u0433\u043e \u043f\u043b\u044e\u0441\u043e\u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u043d\u0430 Flink:<\/p>\n<ul>\n<li>\n<p><em>Near-realtime \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 CDC \u043f\u043e\u0442\u043e\u043a\u0430\u0445<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0430\u0432\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0431\u043b\u0438\u0437\u043a\u043e\u043c\u0443 \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<ul>\n<li>\n<p><em>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 SQL<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043a\u0430\u0443\u043d\u0442\u0435\u0440\u044b, \u043d\u0430\u043f\u0438\u0441\u0430\u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 <a href=\"https:\/\/ci.apache.org\/projects\/flink\/flink-docs-release-1.13\/docs\/dev\/table\/sql\/overview\/\"><u>FlinkSQL<\/u><\/a> \u2013 \u0438\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u043d\u0438 Scala, \u043d\u0438 Java, \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u044f\u0437\u044b\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u0440\u043e\u043c\u0435 SQL.<\/p>\n<ul>\n<li>\n<p><em>\u0421\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/em><\/p>\n<\/li>\n<\/ul>\n<p>Flink \u2013 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0430 \u0440\u044b\u043d\u043a\u0435 \u0434\u0430\u0432\u043d\u043e. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043d\u0430\u043c \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0435 HA-\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 savepoint\u2019\u043e\u0432 \u0438 checkpoint\u2019\u043e\u0432.&nbsp;<\/p>\n<ul>\n<li>\n<p><em>\u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0438 \u043e\u0442 \u0421\u043f\u0430\u0440\u043a\u0430 \u2013 \u0443 \u0444\u043b\u0438\u043a\u0430 \u0442.\u043d. \u201ctrue\u201d-streaming, \u0430 \u043d\u0435 \u043c\u0438\u043a\u0440\u043e \u0431\u0430\u0442\u0447\u0438, \u0447\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0435\u043c\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438 CDC.<\/p>\n<ul>\n<li>\n<p><em>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Avro Confluent schema registry&nbsp;<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0441\u044f \u043a Confluent Schema Registry \u0438 \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u0445\u0435\u043c\u044b \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0438\u0437 \u043d\u0435\u0433\u043e:<\/p>\n<details class=\"spoiler\">\n<summary>FlinkSQL<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"sql\">CREATE TABLE test1(  &nbsp;&nbsp;`event_time` TIMESTAMP(3) METADATA FROM 'timestamp' VIRTUAL,  &nbsp;&nbsp;`lSequenceNumber` INT,  &nbsp;&nbsp;`Date` STRING,  &nbsp;&nbsp;`RequestType` STRING,  &nbsp;&nbsp;`TransactionDate` STRING,  &nbsp;&nbsp;`TransactionTime` STRING,  &nbsp;&nbsp;`Amount` DECIMAL(10, 4)  )  WITH (  &nbsp;&nbsp;'connector' = 'kafka',  &nbsp;&nbsp;'topic' = 'data.init.database.avro.test',  &nbsp;&nbsp;'properties.bootstrap.servers' = kafka0:9092,kafka1:9092,kafka2:9092, kafka3:9092,kafka4:9092',  &nbsp;&nbsp;'properties.group.id' = 'flink-group-test1',  &nbsp;&nbsp;'properties.security.protocol' = 'SASL_SSL',  &nbsp;&nbsp;'properties.sasl.mechanism' = 'SCRAM-SHA-256',  &nbsp;&nbsp;'properties.sasl.jaas.config' = 'org.apache.kafka.common.security.scram.ScramLoginModule required username=\"***\" password=\"***\";',  &nbsp;&nbsp;'properties.ssl.truststore.location' = '\/home\/client.truststore.jks',  &nbsp;&nbsp;'properties.ssl.truststore.password' = '***',  &nbsp;&nbsp;'scan.startup.mode' = 'earliest-offset',  &nbsp;&nbsp;'value.format' = 'debezium-avro-confluent',  &nbsp;&nbsp;'value.debezium-avro-confluent.schema-registry.url' = 'sr0:8081'  &nbsp;);<\/code><\/pre>\n<\/div>\n<\/details>\n<ul>\n<li>\n<p><em>\u0423\u0434\u043e\u0431\u043d\u044b\u0439 \u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u0436\u043e\u0431 \u0444\u043b\u0438\u043d\u043a \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 (\u043a\u043c\u043a \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432 \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u0438, \u0447\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441\u043f\u0430\u0440\u043a\u0430):<\/p>\n<figure class=\"full-width\"><figcaption>UI monitoring<\/figcaption><\/figure>\n<ul>\n<li>\n<p><em>\u0411\u043e\u043b\u044c\u0448\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u043e\u0432.<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0417\u0430 \u0432\u0440\u0435\u043c\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f Flink\u2019\u0430, \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e source \u0438 sink \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440\u043e\u0432, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0432 \u0441\u0432\u043e\u0438\u0445 ETL \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u0445 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u0441\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u041a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440 \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 <a href=\"https:\/\/github.com\/ivi-ru\/flink-clickhouse-sink\"><u>clickhouse-sink<\/u><\/a> \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u043e\u0440, \u043e\u0442 \u043a\u043e\u043b\u043b\u0435\u0433 \u0438\u0437 ivi, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 CH.<\/p>\n<p><em>\u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c Spark \u0441 Flink \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043d\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e, \u0442.\u043a. killer-\u0444\u0438\u0447\u0435\u0439 \u0434\u043b\u044f \u043d\u0430\u0441 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 CDC \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438, \u0447\u0435\u0433\u043e \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043f\u0430\u0440\u043a \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438.<\/em><\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u043b\u044f near-realtime \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>ETL \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u044b \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u043d\u0430 Flink, \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0432 \u0435\u0433\u043e \u0432 Kubernetes, \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0435 \u043c\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0432 Yandex Object Storage \u0441 CH \u043d\u0430\u0434 \u043d\u0438\u043c.<\/p>\n<p><strong>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442 \u043d\u0430 Apache Superset<\/strong><\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041c\u044b \u0432\u043d\u0435\u0434\u0440\u0438\u043b\u0438 Apache Superset \u2013 \u0431\u044b\u0441\u0442\u0440\u044b\u0439, \u043b\u0435\u0433\u043a\u0438\u0439, \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0442\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u043c\u0443 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u0445 \u0438 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430\u0445.<\/p>\n<p><u>\u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u043b\u0438 \u0435\u0433\u043e, \u043c\u044b \u043d\u0430\u0448\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432:<\/u><\/p>\n<ul>\n<li>\n<p><em>\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 UTF-8<\/em><\/p>\n<\/li>\n<\/ul>\n<p>\u0421 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u043e\u0439 UTF-8 \u0440\u0443\u0441\u0441\u043a\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0435 \u0432 CSV, \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0438\u0441\u044c \u0442.\u043d. \u043a\u0440\u0430\u043a\u0430\u0437\u044f\u0431\u0440\u044b. \u0412 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 (1.2.0) \u044d\u0442\u043e \u0443\u0436\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e.<\/p>\n<ul>\n<li>\n<p><em>\u041d<\/em><\/p>\n<\/li>\n<\/ul>\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-326509","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/326509","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=326509"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/326509\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=326509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=326509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=326509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}