<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>question Re: Serial Execution of flows in Support Questions</title>
    <link>https://community.cloudera.com/t5/Support-Questions/Serial-Execution-of-flows/m-p/385519#M245729</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/35454"&gt;@MattWho&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;GenerateTableFetch is a good option, but the issue is that it doesn't support custom queries&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I believe additional settings are required for calling the next processor via REST API, correct? Is there an alternative method to achieve this?&lt;/P&gt;&lt;P&gt;For example, in a finance data mart, there will be 15-20 groups of flows will be executing after each other. Maintaining or calling them via API would entail additional work.&lt;/P&gt;</description>
    <pubDate>Mon, 25 Mar 2024 17:29:20 GMT</pubDate>
    <dc:creator>saquibsk</dc:creator>
    <dc:date>2024-03-25T17:29:20Z</dc:date>
    <item>
      <title>Serial Execution of flows</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Serial-Execution-of-flows/m-p/385505#M245720</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;"I have a QueryDatabaseTable processor where I've written custom SQL code and max value property ti pick only latest data from source. Suppose I'm creating the Dim1 flow. I want to ensure that once Dim1 is finished, Dim2 should start. However, QueryDatabaseTable does not accept input. How can I enable this solution?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="saquibsk_1-1711368052227.png" style="width: 753px;"&gt;&lt;img src="https://community.cloudera.com/t5/image/serverpage/image-id/40141iE3520365AE7043E8/image-dimensions/753x463?v=v2" width="753" height="463" role="button" title="saquibsk_1-1711368052227.png" alt="saquibsk_1-1711368052227.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Mar 2024 12:08:02 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Serial-Execution-of-flows/m-p/385505#M245720</guid>
      <dc:creator>saquibsk</dc:creator>
      <dc:date>2024-03-25T12:08:02Z</dc:date>
    </item>
    <item>
      <title>Re: Serial Execution of flows</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Serial-Execution-of-flows/m-p/385514#M245725</link>
      <description>&lt;P&gt;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/104295"&gt;@saquibsk&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;A couple thoughts come to mind here...&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Have you looked at maybe using a &lt;A href="https://nifi.apache.org/documentation/nifi-2.0.0-M1/components/org.apache.nifi/nifi-standard-nar/2.0.0-M1/org.apache.nifi.processors.standard.GenerateTableFetch/index.html" target="_blank"&gt;GenerateTableFetc&lt;/A&gt;h processor in "Dim 2" which can be triggered by an incoming FlowFile.&amp;nbsp; This processor will take an optional inbound connection as a trigger.&lt;/LI&gt;&lt;LI&gt;Other option might be to use an invokeHTTP processor after your PutDatabaseRecord processor to start the the "Dim 2" QueryDatabaseTable processor via the NiFi rest-api (&lt;A class="document-link rest-api" href="https://nifi.apache.org/documentation/nifi-2.0.0-M1/rest-api/index.html" target="component-usage"&gt;REST API&lt;/A&gt;).&amp;nbsp; You could then do similar after DiM 2 QueryDatabaseTable processor to stop the processor again.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;If you found any of the suggestions/solutions provided helped you with your issue, please take a moment to login and click "&lt;SPAN&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;FONT color="#FF0000"&gt;Accept as Solution&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/EM&gt;" on one or more of them that helped.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thank you,&lt;BR /&gt;Matt&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Mar 2024 13:47:48 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Serial-Execution-of-flows/m-p/385514#M245725</guid>
      <dc:creator>MattWho</dc:creator>
      <dc:date>2024-03-25T13:47:48Z</dc:date>
    </item>
    <item>
      <title>Re: Serial Execution of flows</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Serial-Execution-of-flows/m-p/385519#M245729</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/35454"&gt;@MattWho&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;GenerateTableFetch is a good option, but the issue is that it doesn't support custom queries&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I believe additional settings are required for calling the next processor via REST API, correct? Is there an alternative method to achieve this?&lt;/P&gt;&lt;P&gt;For example, in a finance data mart, there will be 15-20 groups of flows will be executing after each other. Maintaining or calling them via API would entail additional work.&lt;/P&gt;</description>
      <pubDate>Mon, 25 Mar 2024 17:29:20 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Serial-Execution-of-flows/m-p/385519#M245729</guid>
      <dc:creator>saquibsk</dc:creator>
      <dc:date>2024-03-25T17:29:20Z</dc:date>
    </item>
    <item>
      <title>Re: Serial Execution of flows</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Serial-Execution-of-flows/m-p/385525#M245733</link>
      <description>&lt;P&gt;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/104295"&gt;@saquibsk&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Additional settings?&lt;BR /&gt;&lt;BR /&gt;With a Secured NiFi (which you should always be using) there is authentication and authorization involved with any rest-api request.&amp;nbsp; The simplest approach is to generate a clientAuth certificate that is trusted via the truststore your secured NiFi is configured to use in nifi.properties file.&amp;nbsp; &amp;nbsp;Then that certificate is added to a keystore.&amp;nbsp; The invokeHTTP processor can be configured to use a&amp;nbsp;&lt;A href="https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-ssl-context-service-nar/1.25.0/org.apache.nifi.ssl.StandardRestrictedSSLContextService/index.html" target="_blank"&gt;StandardRestrictedSSLContextService&lt;/A&gt;&amp;nbsp;that you configure with the keystore you created and the truststore that NiFi already uses that can trust that certificate.&lt;BR /&gt;&lt;BR /&gt;On NiFi side, you would need to add that client as a user entity so you can assign authorization policies to.&amp;nbsp; You can then authorize that client/user identity to the policies needed to start and stop specific processor components.&amp;nbsp; That policy would be the "operate the component" policy that you can set just on the QueryDatabaseTable processor or any other specific processor you want to automate.&lt;BR /&gt;&lt;A href="https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html#component-level-access-policies" target="_self"&gt;component-level-access-policies&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Yes, there are some initial steps to setup the keystore and truststores needed, but then those can be used over and over for all automation within NiFi you want to achieve.&lt;BR /&gt;&lt;BR /&gt;NiFi processors execute based on the individual processor's configured scheduling. There is no other option to stop or start individual processors except manually through the UI by an authorized user of via the rest api.&lt;BR /&gt;&lt;BR /&gt;NiFi was designed with an always running type architecture in mind.&amp;nbsp; Stepping our of that architecture would require extra steps or redesigning your dataflows to operate within that architecture style.&lt;/P&gt;&lt;P&gt;If your executions always happen at set times you could use cron scheduling, but that is not going to be an optimal design for performance.&lt;/P&gt;&lt;P&gt;If you found any of the suggestions/solutions provided helped you with your issue, please take a moment to login and click "&lt;SPAN&gt;&lt;EM&gt;&lt;STRONG&gt;&lt;FONT color="#FF0000"&gt;Accept as Solution&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/EM&gt;" on one or more of them that helped.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thank you,&lt;BR /&gt;Matt&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Mar 2024 19:55:09 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Serial-Execution-of-flows/m-p/385525#M245733</guid>
      <dc:creator>MattWho</dc:creator>
      <dc:date>2024-03-25T19:55:09Z</dc:date>
    </item>
    <item>
      <title>Re: Serial Execution of flows</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Serial-Execution-of-flows/m-p/385758#M245816</link>
      <description>&lt;P&gt;&amp;nbsp;I have try something like below which worked.&lt;/P&gt;&lt;P&gt;Once Dim1 is completed&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dim2:-&lt;/P&gt;&lt;P&gt;1: Attribute to capture StartDate - UpdateAttribute&lt;/P&gt;&lt;P&gt;2: Create Log table in database which will maintain the LastRunTime&lt;/P&gt;&lt;P&gt;3: Custom SQL where updateddate&amp;gt;=$LastRunTime using&amp;nbsp; &amp;nbsp;ExecuteSQL&lt;/P&gt;&lt;P&gt;4: Insert the records in database&lt;/P&gt;&lt;P&gt;5: Update the log file with StartTime attribute from step one1&lt;/P&gt;</description>
      <pubDate>Sat, 30 Mar 2024 10:33:28 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Serial-Execution-of-flows/m-p/385758#M245816</guid>
      <dc:creator>saquibsk</dc:creator>
      <dc:date>2024-03-30T10:33:28Z</dc:date>
    </item>
  </channel>
</rss>

