You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by gi...@apache.org on 2022/02/28 06:21:59 UTC

[dolphinscheduler-website] branch asf-site updated: Automated deployment: 1e63859d1742d15f0a8af6409926bb2004b45136

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 139d12e  Automated deployment: 1e63859d1742d15f0a8af6409926bb2004b45136
139d12e is described below

commit 139d12e828cbdbdd04ccbbf57bb4febcbd23f27b
Author: github-actions[bot] <gi...@users.noreply.github.com>
AuthorDate: Mon Feb 28 06:21:51 2022 +0000

    Automated deployment: 1e63859d1742d15f0a8af6409926bb2004b45136
---
 en-us/docs/release/faq.html | 83 +++++++++++++++++++++++++++++++++++++++++++
 en-us/docs/release/faq.json |  2 +-
 zh-cn/docs/release/faq.html | 85 ++++++++++++++++++++++++++++++++++++++++++++-
 zh-cn/docs/release/faq.json |  2 +-
 4 files changed, 169 insertions(+), 3 deletions(-)

diff --git a/en-us/docs/release/faq.html b/en-us/docs/release/faq.html
index f864f06..bbfb273 100644
--- a/en-us/docs/release/faq.html
+++ b/en-us/docs/release/faq.html
@@ -426,6 +426,89 @@ sed -i &#x27;s/Defaults    requirett/#Defaults    requirett/g&#x27; /etc/sudoers
 </li>
 </ol>
 <hr>
+<h2>Q:Update process definition error: Duplicate key TaskDefinition</h2>
+<p>A:Before DS 2.0.4, there may be a problem of duplicate keys TaskDefinition due to version switching, which may cause the update workflow to fail; you can refer to the following SQL to delete duplicate data, taking MySQL as an example: (Note: Before operating, be sure to back up the original data, the SQL from pr<a href="https://github.com/apache/dolphinscheduler/pull/8408">#8408</a>)</p>
+<pre><code class="language-SQL"><span class="hljs-keyword">DELETE</span> <span class="hljs-keyword">FROM</span> t_ds_process_task_relation_log <span class="hljs-keyword">WHERE</span> id <span class="hljs-keyword">IN</span>
+(
+ <span class="hljs-keyword">SELECT</span>
+     x.id
+ <span class="hljs-keyword">FROM</span>
+     (
+         <span class="hljs-keyword">SELECT</span>
+             aa.id
+         <span class="hljs-keyword">FROM</span>
+             t_ds_process_task_relation_log aa
+                 <span class="hljs-keyword">JOIN</span>
+             (
+                 <span class="hljs-keyword">SELECT</span>
+                     a.process_definition_code
+                      ,<span class="hljs-built_in">MAX</span>(a.id) <span class="hljs-keyword">as</span> min_id
+                      ,a.pre_task_code
+                      ,a.pre_task_version
+                      ,a.post_task_code
+                      ,a.post_task_version
+                      ,a.process_definition_version
+                      ,<span class="hljs-built_in">COUNT</span>(<span class="hljs-operator">*</span>) cnt
+                 <span class="hljs-keyword">FROM</span>
+                     t_ds_process_task_relation_log a
+                         <span class="hljs-keyword">JOIN</span> (
+                         <span class="hljs-keyword">SELECT</span>
+                             code
+                         <span class="hljs-keyword">FROM</span>
+                             t_ds_process_definition
+                         <span class="hljs-keyword">GROUP</span> <span class="hljs-keyword">BY</span> code
+                     )b <span class="hljs-keyword">ON</span> b.code <span class="hljs-operator">=</span> a.process_definition_code
+                 <span class="hljs-keyword">WHERE</span> <span class="hljs-number">1</span><span class="hljs-operator">=</span><span class="hljs-number">1</span>
+                 <span class="hljs-keyword">GROUP</span> <span class="hljs-keyword">BY</span> a.pre_task_code
+                        ,a.post_task_code
+                        ,a.pre_task_version
+                        ,a.post_task_version
+                        ,a.process_definition_code
+                        ,a.process_definition_version
+                 <span class="hljs-keyword">HAVING</span> <span class="hljs-built_in">COUNT</span>(<span class="hljs-operator">*</span>) <span class="hljs-operator">&gt;</span> <span class="hljs-number">1</span>
+             )bb <span class="hljs-keyword">ON</span> bb.process_definition_code <span class="hljs-operator">=</span> aa.process_definition_code
+                 <span class="hljs-keyword">AND</span> bb.pre_task_code <span class="hljs-operator">=</span> aa.pre_task_code
+                 <span class="hljs-keyword">AND</span> bb.post_task_code <span class="hljs-operator">=</span> aa.post_task_code
+                 <span class="hljs-keyword">AND</span> bb.process_definition_version <span class="hljs-operator">=</span> aa.process_definition_version
+                 <span class="hljs-keyword">AND</span> bb.pre_task_version <span class="hljs-operator">=</span> aa.pre_task_version
+                 <span class="hljs-keyword">AND</span> bb.post_task_version <span class="hljs-operator">=</span> aa.post_task_version
+                 <span class="hljs-keyword">AND</span> bb.min_id <span class="hljs-operator">!=</span> aa.id
+     )x
+)
+;
+
+<span class="hljs-keyword">DELETE</span> <span class="hljs-keyword">FROM</span> t_ds_task_definition_log <span class="hljs-keyword">WHERE</span> id <span class="hljs-keyword">IN</span>
+(
+   <span class="hljs-keyword">SELECT</span>
+       x.id
+   <span class="hljs-keyword">FROM</span>
+       (
+           <span class="hljs-keyword">SELECT</span>
+               a.id
+           <span class="hljs-keyword">FROM</span>
+               t_ds_task_definition_log a
+                   <span class="hljs-keyword">JOIN</span>
+               (
+                   <span class="hljs-keyword">SELECT</span>
+                       code
+                        ,name
+                        ,version
+                        ,<span class="hljs-built_in">MAX</span>(id) <span class="hljs-keyword">AS</span> min_id
+                   <span class="hljs-keyword">FROM</span>
+                       t_ds_task_definition_log
+                   <span class="hljs-keyword">GROUP</span> <span class="hljs-keyword">BY</span> code
+                          ,name
+                          ,version
+                   <span class="hljs-keyword">HAVING</span> <span class="hljs-built_in">COUNT</span>(<span class="hljs-operator">*</span>) <span class="hljs-operator">&gt;</span> <span class="hljs-number">1</span>
+               )b <span class="hljs-keyword">ON</span> b.code <span class="hljs-operator">=</span> a.code
+                   <span class="hljs-keyword">AND</span> b.name <span class="hljs-operator">=</span> a.name
+                   <span class="hljs-keyword">AND</span> b.version <span class="hljs-operator">=</span> a.version
+                   <span class="hljs-keyword">AND</span> b.min_id <span class="hljs-operator">!=</span> a.id
+       )x
+)
+;
+</code></pre>
+<hr>
 <h2>We will collect more FAQ later</h2>
 </div></section><footer class="footer-container"><div class="footer-body"><div><h3>About us</h3><h4>Do you need feedback? Please contact us through the following ways.</h4></div><div class="contact-container"><ul><li><a href="/en-us/community/development/subscribe.html"><img class="img-base" src="/img/emailgray.png"/><img class="img-change" src="/img/emailblue.png"/><p>Email List</p></a></li><li><a href="https://twitter.com/dolphinschedule"><img class="img-base" src="/img/twittergray.png [...]
   <script src="//cdn.jsdelivr.net/npm/react@15.6.2/dist/react-with-addons.min.js"></script>
diff --git a/en-us/docs/release/faq.json b/en-us/docs/release/faq.json
index 6d0e83e..9eca2df 100644
--- a/en-us/docs/release/faq.json
+++ b/en-us/docs/release/faq.json
@@ -1,6 +1,6 @@
 {
   "filename": "faq.md",
-  "__html": "<!-- markdown-link-check-disable -->\n<h2>Q: What's the name of this project?</h2>\n<p>A: DolphinScheduler</p>\n<hr>\n<h2>Q: DolphinScheduler service introduction and recommended running memory</h2>\n<p>A: DolphinScheduler consists of 5 services, MasterServer, WorkerServer, ApiServer, AlertServer, LoggerServer and UI.</p>\n<table>\n<thead>\n<tr>\n<th>Service</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>MasterServer</td>\n<td>Mainly responsible for DAG segm [...]
+  "__html": "<!-- markdown-link-check-disable -->\n<h2>Q: What's the name of this project?</h2>\n<p>A: DolphinScheduler</p>\n<hr>\n<h2>Q: DolphinScheduler service introduction and recommended running memory</h2>\n<p>A: DolphinScheduler consists of 5 services, MasterServer, WorkerServer, ApiServer, AlertServer, LoggerServer and UI.</p>\n<table>\n<thead>\n<tr>\n<th>Service</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>MasterServer</td>\n<td>Mainly responsible for DAG segm [...]
   "link": "/dist/en-us/docs/release/faq.html",
   "meta": {}
 }
\ No newline at end of file
diff --git a/zh-cn/docs/release/faq.html b/zh-cn/docs/release/faq.html
index 85005d7..474c099 100644
--- a/zh-cn/docs/release/faq.html
+++ b/zh-cn/docs/release/faq.html
@@ -189,7 +189,7 @@
 <h2>Q:如何增加一台工作服务器</h2>
 <p>A: 1,参考官网<a href="https://dolphinscheduler.apache.org/zh-cn/docs/laster/user_doc/installation/cluster.html">部署文档</a> 1.3 小节,创建部署用户和 hosts 映射</p>
 <p>​	2,参考官网<a href="https://dolphinscheduler.apache.org/zh-cn/docs/laster/user_doc/installation/cluster.html">部署文档</a> 1.4 小节,配置 hosts 映射和 ssh 打通及修改目录权限.
-1.4 小节的最后一步是在当前新增机器上执行的,即需要给部署目录部署用户的权限</p>
+​          1.4 小节的最后一步是在当前新增机器上执行的,即需要给部署目录部署用户的权限</p>
 <p>​	3,复制正在运行的服务器上的部署目录到新机器的同样的部署目录下</p>
 <p>​	4,到 bin 下,启动 worker server 和 logger server</p>
 <pre><code>        ./dolphinscheduler-daemon.sh start worker-server
@@ -411,6 +411,89 @@ sed -i &#x27;s/Defaults    requirett/#Defaults    requirett/g&#x27; /etc/sudoers
 </li>
 </ol>
 <hr>
+<h2>Q:Update process definition error: Duplicate key TaskDefinition</h2>
+<p>A:在DS 2.0.4之前,可能存在版本切换的重复键问题,导致更新工作流失败;可参考如下SQL进行重复数据的删除,以MySQL为例:(注意:操作前请务必备份原数据,SQL来源于pr <a href="https://github.com/apache/dolphinscheduler/pull/8408">#8408</a>)</p>
+<pre><code class="language-SQL"><span class="hljs-keyword">DELETE</span> <span class="hljs-keyword">FROM</span> t_ds_process_task_relation_log <span class="hljs-keyword">WHERE</span> id <span class="hljs-keyword">IN</span>
+(
+ <span class="hljs-keyword">SELECT</span>
+     x.id
+ <span class="hljs-keyword">FROM</span>
+     (
+         <span class="hljs-keyword">SELECT</span>
+             aa.id
+         <span class="hljs-keyword">FROM</span>
+             t_ds_process_task_relation_log aa
+                 <span class="hljs-keyword">JOIN</span>
+             (
+                 <span class="hljs-keyword">SELECT</span>
+                     a.process_definition_code
+                      ,<span class="hljs-built_in">MAX</span>(a.id) <span class="hljs-keyword">as</span> min_id
+                      ,a.pre_task_code
+                      ,a.pre_task_version
+                      ,a.post_task_code
+                      ,a.post_task_version
+                      ,a.process_definition_version
+                      ,<span class="hljs-built_in">COUNT</span>(<span class="hljs-operator">*</span>) cnt
+                 <span class="hljs-keyword">FROM</span>
+                     t_ds_process_task_relation_log a
+                         <span class="hljs-keyword">JOIN</span> (
+                         <span class="hljs-keyword">SELECT</span>
+                             code
+                         <span class="hljs-keyword">FROM</span>
+                             t_ds_process_definition
+                         <span class="hljs-keyword">GROUP</span> <span class="hljs-keyword">BY</span> code
+                     )b <span class="hljs-keyword">ON</span> b.code <span class="hljs-operator">=</span> a.process_definition_code
+                 <span class="hljs-keyword">WHERE</span> <span class="hljs-number">1</span><span class="hljs-operator">=</span><span class="hljs-number">1</span>
+                 <span class="hljs-keyword">GROUP</span> <span class="hljs-keyword">BY</span> a.pre_task_code
+                        ,a.post_task_code
+                        ,a.pre_task_version
+                        ,a.post_task_version
+                        ,a.process_definition_code
+                        ,a.process_definition_version
+                 <span class="hljs-keyword">HAVING</span> <span class="hljs-built_in">COUNT</span>(<span class="hljs-operator">*</span>) <span class="hljs-operator">&gt;</span> <span class="hljs-number">1</span>
+             )bb <span class="hljs-keyword">ON</span> bb.process_definition_code <span class="hljs-operator">=</span> aa.process_definition_code
+                 <span class="hljs-keyword">AND</span> bb.pre_task_code <span class="hljs-operator">=</span> aa.pre_task_code
+                 <span class="hljs-keyword">AND</span> bb.post_task_code <span class="hljs-operator">=</span> aa.post_task_code
+                 <span class="hljs-keyword">AND</span> bb.process_definition_version <span class="hljs-operator">=</span> aa.process_definition_version
+                 <span class="hljs-keyword">AND</span> bb.pre_task_version <span class="hljs-operator">=</span> aa.pre_task_version
+                 <span class="hljs-keyword">AND</span> bb.post_task_version <span class="hljs-operator">=</span> aa.post_task_version
+                 <span class="hljs-keyword">AND</span> bb.min_id <span class="hljs-operator">!=</span> aa.id
+     )x
+)
+;
+
+<span class="hljs-keyword">DELETE</span> <span class="hljs-keyword">FROM</span> t_ds_task_definition_log <span class="hljs-keyword">WHERE</span> id <span class="hljs-keyword">IN</span>
+(
+   <span class="hljs-keyword">SELECT</span>
+       x.id
+   <span class="hljs-keyword">FROM</span>
+       (
+           <span class="hljs-keyword">SELECT</span>
+               a.id
+           <span class="hljs-keyword">FROM</span>
+               t_ds_task_definition_log a
+                   <span class="hljs-keyword">JOIN</span>
+               (
+                   <span class="hljs-keyword">SELECT</span>
+                       code
+                        ,name
+                        ,version
+                        ,<span class="hljs-built_in">MAX</span>(id) <span class="hljs-keyword">AS</span> min_id
+                   <span class="hljs-keyword">FROM</span>
+                       t_ds_task_definition_log
+                   <span class="hljs-keyword">GROUP</span> <span class="hljs-keyword">BY</span> code
+                          ,name
+                          ,version
+                   <span class="hljs-keyword">HAVING</span> <span class="hljs-built_in">COUNT</span>(<span class="hljs-operator">*</span>) <span class="hljs-operator">&gt;</span> <span class="hljs-number">1</span>
+               )b <span class="hljs-keyword">ON</span> b.code <span class="hljs-operator">=</span> a.code
+                   <span class="hljs-keyword">AND</span> b.name <span class="hljs-operator">=</span> a.name
+                   <span class="hljs-keyword">AND</span> b.version <span class="hljs-operator">=</span> a.version
+                   <span class="hljs-keyword">AND</span> b.min_id <span class="hljs-operator">!=</span> a.id
+       )x
+)
+;
+</code></pre>
+<hr>
 <p>我们会持续收集更多的 FAQ。</p>
 </div></section><footer class="footer-container"><div class="footer-body"><div><h3>联系我们</h3><h4>有问题需要反馈?请通过以下方式联系我们。</h4></div><div class="contact-container"><ul><li><a href="/zh-cn/community/development/subscribe.html"><img class="img-base" src="/img/emailgray.png"/><img class="img-change" src="/img/emailblue.png"/><p>邮件列表</p></a></li><li><a href="https://twitter.com/dolphinschedule"><img class="img-base" src="/img/twittergray.png"/><img class="img-change" src="/img/twitterblue.png"/><p [...]
   <script src="//cdn.jsdelivr.net/npm/react@15.6.2/dist/react-with-addons.min.js"></script>
diff --git a/zh-cn/docs/release/faq.json b/zh-cn/docs/release/faq.json
index 6621dab..ff66ad8 100644
--- a/zh-cn/docs/release/faq.json
+++ b/zh-cn/docs/release/faq.json
@@ -1,6 +1,6 @@
 {
   "filename": "faq.md",
-  "__html": "<!-- markdown-link-check-disable -->\n<h2>Q:项目的名称是?</h2>\n<p>A:DolphinScheduler</p>\n<hr>\n<h2>Q:DolphinScheduler 服务介绍及建议运行内存</h2>\n<p>A:DolphinScheduler 由 5 个服务组成,MasterServer、WorkerServer、ApiServer、AlertServer、LoggerServer 和 UI。</p>\n<table>\n<thead>\n<tr>\n<th>服务</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>MasterServer</td>\n<td>主要负责 <strong>DAG</strong> 的切分和任务状态的监控</td>\n</tr>\n<tr>\n<td>WorkerServer/LoggerServer</td>\n<td>主要负责任务的提交、执行和任务状态的更新。LoggerServer 用于  [...]
+  "__html": "<!-- markdown-link-check-disable -->\n<h2>Q:项目的名称是?</h2>\n<p>A:DolphinScheduler</p>\n<hr>\n<h2>Q:DolphinScheduler 服务介绍及建议运行内存</h2>\n<p>A:DolphinScheduler 由 5 个服务组成,MasterServer、WorkerServer、ApiServer、AlertServer、LoggerServer 和 UI。</p>\n<table>\n<thead>\n<tr>\n<th>服务</th>\n<th>说明</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>MasterServer</td>\n<td>主要负责 <strong>DAG</strong> 的切分和任务状态的监控</td>\n</tr>\n<tr>\n<td>WorkerServer/LoggerServer</td>\n<td>主要负责任务的提交、执行和任务状态的更新。LoggerServer 用于  [...]
   "link": "/dist/zh-cn/docs/release/faq.html",
   "meta": {}
 }
\ No newline at end of file