{"id":680,"date":"2026-01-30T12:27:29","date_gmt":"2026-01-30T12:27:29","guid":{"rendered":"https:\/\/new.ssi-bg.com\/?page_id=680"},"modified":"2026-10-28T09:20:55","modified_gmt":"2026-10-28T09:20:55","slug":"ml-hadoop","status":"publish","type":"page","link":"https:\/\/ssi-bg.com\/en\/ml-hadoop\/","title":{"rendered":"ML Hadoop"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"680\" class=\"elementor elementor-680\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b87832b e-flex e-con-boxed e-con e-parent\" data-id=\"b87832b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-27e2193 elementor-widget elementor-widget-html\" data-id=\"27e2193\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n.ssi-page{--pg-green:#19573B;--pg-accent:#3ED692;--pg-text:#1F1F1F;--pg-card:#ffffff;\r\n  font-family:\"Roboto\",Sans-serif;color:var(--pg-text);line-height:1.65;font-size:16px;max-width:1140px;margin:0 auto}\r\n.ssi-page *{box-sizing:border-box}\r\n.ssi-page h1,.ssi-page h2,.ssi-page h3,.ssi-page h4{font-family:\"Roboto\",Sans-serif;font-weight:600;color:var(--pg-green);line-height:1.25;margin:0 0 14px}\r\n.ssi-page h1{font-size:34px}\r\n.ssi-page h2{font-size:28px}\r\n.ssi-page h3{font-size:22px}\r\n.ssi-page h4{font-size:17px;margin-top:18px}\r\n.ssi-page p{margin:0 0 14px}\r\n.ssi-page ul{margin:0 0 14px;padding-left:22px}\r\n.ssi-page li{margin-bottom:8px}\r\n.ssi-page li ul{margin:8px 0 0}\r\n.ssi-page strong{font-weight:600}\r\n.ssi-page a{color:var(--pg-green)}\r\n.ssi-page img{max-width:100%;height:auto}\r\n\r\n\/* \u0433\u043e\u0440\u043d\u0430 \u0447\u0430\u0441\u0442 *\/\r\n.ssi-page .pg-hero{display:flex;flex-wrap:wrap;align-items:center;gap:30px;padding:10px 0 20px}\r\n.ssi-page .pg-intro{flex:1 1 380px}\r\n.ssi-page .pg-intro .pg-logo{max-width:260px;max-height:90px;width:auto;display:block;margin-bottom:18px}\r\n.ssi-page .pg-lead{font-size:18px}\r\n.ssi-page .pg-hero .pg-video{flex:1 1 480px}\r\n\r\n\/* \u0432\u0438\u0434\u0435\u043e 16:9 *\/\r\n.ssi-page .pg-video{position:relative;width:100%;aspect-ratio:16\/9;border-radius:4px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.08);background:#000}\r\n.ssi-page .pg-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}\r\n\r\n\/* \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u0438 *\/\r\n.ssi-page .pg-divider{border:0;border-top:1px solid #000;margin:15px 0}\r\n.ssi-page .pg-divider.short{width:77%;margin:15px auto}\r\n\r\n\/* \u043a\u043b\u044e\u0447\u043e\u0432\u0438 \u0447\u0438\u0441\u043b\u0430 *\/\r\n.ssi-page .pg-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin:18px 0 22px}\r\n.ssi-page .pg-stat{text-align:center;background:var(--pg-card);border-top:4px solid var(--pg-accent);border-radius:4px;padding:16px 10px;box-shadow:0 2px 10px rgba(0,0,0,.05)}\r\n.ssi-page .pg-stat b{display:block;font-size:30px;color:var(--pg-green);line-height:1.1}\r\n.ssi-page .pg-stat span{font-size:14px}\r\n\r\n\/* \u0431\u0435\u043b\u0435\u0436\u043a\u0430 *\/\r\n.ssi-page .pg-note{background:#e8f3ee;border-radius:4px;padding:18px 22px;margin-bottom:24px}\r\n.ssi-page .pg-note p:last-child,.ssi-page .pg-note ul:last-child{margin-bottom:0}\r\n\r\n\/* \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u0438 \u043a\u0430\u0440\u0442\u0438 *\/\r\n.ssi-page .pg-product{background:var(--pg-card);border-left:4px solid var(--pg-green);border-radius:4px;padding:26px 28px;margin-bottom:28px;box-shadow:0 2px 10px rgba(0,0,0,.05)}\r\n.ssi-page .pg-product-body{display:flex;flex-wrap:wrap;gap:0 36px}\r\n.ssi-page .pg-media{flex:1 1 380px;min-width:0}\r\n.ssi-page .pg-media > *{margin-bottom:18px}\r\n.ssi-page .pg-media img{display:block;border-radius:4px}\r\n.ssi-page .pg-text{flex:1.3 1 420px;min-width:0}\r\n.ssi-page .pg-text > :last-child{margin-bottom:0}\r\n.ssi-page .pg-sub{font-weight:500;color:#54595F;margin-top:-6px}\r\n.ssi-page .pg-why-box{background:#f3f8fe;border-radius:4px;padding:14px 18px;margin-top:6px}\r\n.ssi-page .pg-why-box h4{margin-top:0}\r\n.ssi-page .pg-why-box ul,.ssi-page .pg-why-box p{margin-bottom:0}\r\n.ssi-page .pg-more{display:inline-block;margin-top:8px;font-weight:600;text-decoration:none}\r\n.ssi-page .pg-more:hover{text-decoration:underline}\r\n\r\n\/* \u043a\u0430\u0440\u0442\u0438 \u0441 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \/ \"\u0417\u0430\u0449\u043e\" *\/\r\n.ssi-page .pg-center{text-align:center}\r\n.ssi-page .pg-grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin:20px 0 24px}\r\n.ssi-page .pg-grid li{background:var(--pg-card);border-radius:4px;padding:20px;margin:0;border-top:4px solid var(--pg-accent);box-shadow:0 2px 10px rgba(0,0,0,.05)}\r\n.ssi-page .pg-grid strong{display:block;color:var(--pg-green);font-size:17px;margin-bottom:6px}\r\n.ssi-page .pg-grid li.wide{grid-column:1\/-1}\r\n\r\n\/* \u0431\u0443\u0442\u043e\u043d\u0438 \u0438 \u043f\u0440\u0438\u0437\u0438\u0432 \u0437\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 *\/\r\n.ssi-page .pg-btn{display:inline-block;background:var(--pg-accent);color:#0f2e20 !important;font-weight:600;text-decoration:none !important;padding:12px 30px;border-radius:4px;margin:6px 8px 0 0;transition:background .2s}\r\n.ssi-page .pg-btn:hover{background:#19573B;color:#fff !important}\r\n.ssi-page .pg-btn.ghost{background:transparent;border:2px solid var(--pg-green);color:var(--pg-green) !important;padding:10px 26px}\r\n.ssi-page .pg-btn.ghost:hover{background:var(--pg-green);color:#fff !important}\r\n.ssi-page .pg-cta{background:var(--pg-green);color:#fff;text-align:center;border-radius:4px;padding:36px 24px;margin:36px 0 10px}\r\n.ssi-page .pg-cta h2{color:#fff}\r\n.ssi-page .pg-cta p{color:#e8f3ee}\r\n.ssi-page .pg-cta .pg-btn:hover{background:#fff;color:#0f2e20 !important}\r\n\r\n\/* \u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u2013 \u0438\u0437\u0442\u0440\u0438\u0439\u0442\u0435 \u043c\u0430\u0440\u043a\u0435\u0440\u0430, \u0441\u043b\u0435\u0434 \u043a\u0430\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u0435 \u0442\u0435\u043a\u0441\u0442\u0430 *\/\r\n.ssi-page .todo{background:#fff3a3;padding:0 4px;border-radius:3px}\r\n\r\n@media(max-width:767px){\r\n  .ssi-page h1{font-size:27px}\r\n  .ssi-page h2{font-size:23px}\r\n  .ssi-page h3{font-size:20px}\r\n  .ssi-page .pg-product{padding:20px}\r\n  .ssi-page .pg-divider.short{width:100%}\r\n}\r\n@media(min-width:900px){\r\n  .ssi-page .pg-media{align-self:flex-start;position:sticky;top:100px}\r\n}\r\n<\/style>\r\n<style>\r\n.ssi-page .pg-badge{display:inline-block;background:#e8f3ee;color:var(--pg-green);font-weight:600;font-size:14px;border-radius:20px;padding:5px 14px;margin-bottom:14px}\r\n.ssi-page .pg-lic-hero{padding:10px 0 20px;max-width:900px}\r\n.ssi-page .pg-checks{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px 24px;margin:0 0 6px}\r\n.ssi-page .pg-checks li{position:relative;padding:10px 14px 10px 46px;margin:0;background:var(--pg-card);border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.05)}\r\n.ssi-page .pg-checks li::before{content:\"\\2713\";position:absolute;left:12px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;background:var(--pg-accent);color:#0f2e20;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center}\r\n.ssi-page .pg-steps{list-style:none;padding:0;margin:0 0 6px;counter-reset:st}\r\n.ssi-page .pg-steps > li{counter-increment:st;position:relative;padding:14px 16px 14px 60px;margin:0 0 12px;background:var(--pg-card);border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.05)}\r\n.ssi-page .pg-steps > li::before{content:counter(st);position:absolute;left:14px;top:14px;width:32px;height:32px;border-radius:50%;background:var(--pg-green);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center}\r\n.ssi-page .pg-steps > li > :last-child{margin-bottom:0}\r\n.ssi-page ol.pg-alpha{list-style:lower-latin;padding-left:22px;margin:10px 0 0}\r\n.ssi-page .pg-mono{font-family:Consolas,Menlo,monospace;background:#f3f8fe;border-radius:3px;padding:0 5px;font-size:.92em}\r\n<\/style>\r\n\r\n<div class=\"ssi-page\">\r\n\r\n  <!-- ===== \u0412\u044a\u0432\u0435\u0434\u0435\u043d\u0438\u0435 ===== -->\r\n  <div class=\"pg-lic-hero\">\r\n    <h1>Python-Based Machine Learning (ML) Hadoop System<\/h1>\r\n    <p class=\"pg-lead\">Licensed software, source code (C#, Python) and configuration files, serving as a foundation for the further development of a Machine Learning (ML) Hadoop system.<\/p>\r\n    <a class=\"pg-btn\" href=\"https:\/\/ssi-bg.com\/en\/contacts\/\">License Inquiry<\/a>\r\n  <\/div>\r\n\r\n  <hr class=\"pg-divider\">\r\n\r\n  <h2>What the License Includes<\/h2>\r\n<ul class=\"pg-grid\"><li><strong>What the License Includes<\/strong>A ready-to-use system for working with data triggers in Hadoop, with ML-based control.<\/li><li><strong>Source Code<\/strong>C# and Python source code.<\/li><li><strong>Configuration Files<\/strong>Including the \u201cIn-Memory OLTP\u201d configuration.<\/li><\/ul>\r\n  <hr class=\"pg-divider\">\r\n\r\n  <h2>Procedure for Working with a Set of Data Triggers in Hadoop<\/h2>\r\n  <p>The procedure runs at a defined time period (DTP), for example, initially 1 second. The ML system can periodically adjust the DTP based on the nature of the data (e.g., the running average).<\/p>\r\n  <ol class=\"pg-steps\">\r\n    <li><strong>Creating an external table<\/strong> from the Hadoop data on which the triggers are based. One external table contains 1 to n triggers, i.e., it represents a set of triggers. There may be groups of such external tables, created from different data sets. Each data set consists of Hadoop data with a single \u201cdate-timestamp\u201d parameter, which serves as the Primary Key of the external table.<\/li>\r\n    <li><strong>Adding a new row<\/strong> to a table with the same structure, but in-memory. This creates a multi-row table with the \u201cdate-timestamp\u201d parameter as its Primary Key.<\/li>\r\n    <li><strong>Comparing<\/strong> the most recently added row with the previous one. The result of the comparison is <span class=\"pg-mono\">equal<\/span> or <span class=\"pg-mono\">different<\/span>.<\/li>\r\n    <li><strong>On <span class=\"pg-mono\">different<\/span><\/strong> , the assigned Stored Procedure is executed for the corresponding trigger (the name of the Stored Procedure to run when the content changes is specified when the trigger is defined). The difference between the \u201cdate-timestamp\u201d values of the two rows (PM2P) is passed to the ML system.<\/li>\r\n  <\/ol>\r\n\r\n  <hr class=\"pg-divider\">\r\n\r\n  <div class=\"pg-product-body\">\r\n    <div class=\"pg-text\">\r\n      <h2>ML System<\/h2>\r\n      <p>The ML system consists of an interface to the trigger procedure (written in Python, described above), which connects through Python control code to a Python library such as Scikit-learn or TensorFlow:<\/p>\r\n      <ol class=\"pg-steps\">\r\n        <li>New PM2P (received from the procedure)<\/li>\r\n        <li>Trained PM2P (received from the Python library)<\/li>\r\n        <li>DTP = { mean value | (trained PM2P) \/ 4 | \u2026 }<\/li>\r\n        <li>The new DTP is passed to the procedure<\/li>\r\n      <\/ol>\r\n    <\/div>\r\n    <div class=\"pg-text\">\r\n      <h2>In-Memory OLTP Configuration<\/h2>\r\n      <p>Configuration steps:<\/p>\r\n      <ol class=\"pg-steps\">\r\n        <li>Identifying the in-memory table<\/li>\r\n        <li>Creating Columnstore indexes for each trigger<\/li>\r\n        <li>Connecting SQL Server 2017 Analysis Services to the in-memory table<\/li>\r\n      <\/ol>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- ===== \u041f\u0440\u0438\u0437\u0438\u0432 \u0437\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 ===== -->\r\n  <div class=\"pg-cta\">\r\n    <h2>Interested in an ML Hadoop License?<\/h2>\r\n    <p>Contact us to discuss the license terms and deployment in your environment.<\/p>\r\n    <a class=\"pg-btn\" href=\"https:\/\/ssi-bg.com\/en\/contacts\/\">Contact us<\/a>\r\n  <\/div>\r\n\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Machine Learning (ML) Hadoop \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u0431\u0430\u0437\u0438\u0440\u0430\u043d\u0430 \u043d\u0430 Python \u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u0430\u043d \u0441\u043e\u0444\u0442\u0443\u0435\u0440, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0435\u043d \u043a\u043e\u0434 \u0432 \u043f\u044a\u0440\u0432\u0438\u0447\u0435\u043d \u0432\u0438\u0434 (C#, Python) \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u0435, \u0441\u043b\u0443\u0436\u0435\u0449\u0438 \u043a\u0430\u0442\u043e \u0431\u0430\u0437\u0430 \u0437\u0430 \u0431\u044a\u0434\u0435\u0449\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043d\u0430 Machine Learning (ML) Hadoop \u0441\u0438\u0441\u0442\u0435\u043c\u0430. \u0417\u0430\u043f\u0438\u0442\u0432\u0430\u043d\u0435 \u0437\u0430 \u043b\u0438\u0446\u0435\u043d\u0437 \u041a\u0430\u043a\u0432\u043e \u0432\u043a\u043b\u044e\u0447\u0432\u0430 \u043b\u0438\u0446\u0435\u043d\u0437\u044a\u0442 \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u0430\u043d \u0441\u043e\u0444\u0442\u0443\u0435\u0440\u0413\u043e\u0442\u043e\u0432\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0437\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0442\u0440\u0438\u0433\u0435\u0440\u0438 \u043f\u043e \u0434\u0430\u043d\u043d\u0438 \u0432 Hadoop \u0438 ML \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435. \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u0435\u043d [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-680","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ssi-bg.com\/en\/wp-json\/wp\/v2\/pages\/680","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ssi-bg.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ssi-bg.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ssi-bg.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ssi-bg.com\/en\/wp-json\/wp\/v2\/comments?post=680"}],"version-history":[{"count":7,"href":"https:\/\/ssi-bg.com\/en\/wp-json\/wp\/v2\/pages\/680\/revisions"}],"predecessor-version":[{"id":1080,"href":"https:\/\/ssi-bg.com\/en\/wp-json\/wp\/v2\/pages\/680\/revisions\/1080"}],"wp:attachment":[{"href":"https:\/\/ssi-bg.com\/en\/wp-json\/wp\/v2\/media?parent=680"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}