Using Cloudera Data Platform with Flow Management and Streams on Azure
Tags: 2020, apacheatlas, apachekafka, apachenifi
Published: 2020-07-03 20:43:20

---
title: Using Cloudera Data Platform with Flow Management and Streams on Azure
published: true
date: 2020-07-03 03:18:00 UTC
tags: 2020,apacheatlas,apachekafka,apachenifi
canonical_url: 
---

<font face="verdana" size="6"><b><br>Using Cloudera Data Platform with Flow Management and Streams on Azure</b></font>

<font face="verdana" size="6"><b><br></b></font>

<font face="verdana">Today I am going to be walking you through using Cloudera Data Platform (CDP) with Flow Management and Streams on Azure Cloud.  To see a streaming demo video, please join my webinar (or see it on demand) at <a href="https://event.on24.com/eventRegistration/EventLobbyServlet?target=reg20.jsp&amp;internal_keyplay=ECE&amp;internal_campaign=CDP-Weekly-Demo_ON24-LP&amp;cid=CDP-Weekly-Demo_ON24-LP&amp;internal_link=p07&amp;eventid=2218133&amp;sessionid=1&amp;key=CAD4ADD9164E4F4BD2BB0CBB2BB9D69E&amp;regTag=981741&amp;sourcepage=register">Streaming Data Pipelines with CDF in Azure</a>.  I'll share some additional how-to videos on using Apache NiFi and Apache Kafka in Azure very soon.   </font>

<font face="verdana"><br></font>

[![](https://1.bp.blogspot.com/-_Y2GrnoblH8/Xv55QE17OBI/AAAAAAAAbDI/zoFJHhBpDTwBL1jBPY7ER6wot4HlHKTGACK4BGAsYHg/w781-h380/regionalNiFiSensorsIngest.png)](https://1.bp.blogspot.com/-_Y2GrnoblH8/Xv55QE17OBI/AAAAAAAAbDI/zoFJHhBpDTwBL1jBPY7ER6wot4HlHKTGACK4BGAsYHg/s2557/regionalNiFiSensorsIngest.png)

  

[![](https://1.bp.blogspot.com/-VpHnKtv4WXg/Xv55IHumw_I/AAAAAAAAbCA/FSGQq-j7BmYHmblR7ouW_Mvid1C-57mGwCK4BGAsYHg/w781-h398/nififlow3.png)](https://1.bp.blogspot.com/-VpHnKtv4WXg/Xv55IHumw_I/AAAAAAAAbCA/FSGQq-j7BmYHmblR7ouW_Mvid1C-57mGwCK4BGAsYHg/s2183/nififlow3.png)

  

[![](https://1.bp.blogspot.com/-3kzhQB97lRM/XvunYYeG2fI/AAAAAAAAa6E/ircQhWs2rVEiynoZJ6JqNJNIIPhOoi70wCK4BGAsYHg/w781-h408/nififlow2.png)](https://1.bp.blogspot.com/-3kzhQB97lRM/XvunYYeG2fI/AAAAAAAAa6E/ircQhWs2rVEiynoZJ6JqNJNIIPhOoi70wCK4BGAsYHg/s2554/nififlow2.png)

| [![](https://1.bp.blogspot.com/-V2L0uvIQKb0/Xv55DE9AP4I/AAAAAAAAbBU/7-vDaUHtgW8L3LnLJc3dT8FTX_nXYsCZgCK4BGAsYHg/w781-h413/nififlow1.png)](https://1.bp.blogspot.com/-V2L0uvIQKb0/Xv55DE9AP4I/AAAAAAAAbBU/7-vDaUHtgW8L3LnLJc3dT8FTX_nXYsCZgCK4BGAsYHg/s2531/nififlow1.png) |
| **Apache NiFi on Azure CDP Data Hub**  
 |

| [![](https://1.bp.blogspot.com/-8MtmAC63D_8/XvunYIRrKWI/AAAAAAAAa6A/GAq-uMLzR9Mo_9WpNNIAzAIjZyqLZdz7ACK4BGAsYHg/w781-h481/sensorsflow.png)](https://1.bp.blogspot.com/-8MtmAC63D_8/XvunYIRrKWI/AAAAAAAAa6A/GAq-uMLzR9Mo_9WpNNIAzAIjZyqLZdz7ACK4BGAsYHg/s1490/sensorsflow.png) |
| Sensors to ADLS/HDFS and Kafka  
  
[![](https://1.bp.blogspot.com/-yb0brEbVOKQ/XvunY2TLkQI/AAAAAAAAa6I/nLG0aBtVJII7OX9KmBwR5k90QZRU9yCwQCK4BGAsYHg/w781-h413/nififlow1.png)](https://1.bp.blogspot.com/-yb0brEbVOKQ/XvunY2TLkQI/AAAAAAAAa6I/nLG0aBtVJII7OX9KmBwR5k90QZRU9yCwQCK4BGAsYHg/s2531/nififlow1.png) |

<font face="verdana"><br></font>

<font face="verdana"><br></font>

[![](https://1.bp.blogspot.com/-i0scI-q4IQA/Xv55Qpjyu4I/AAAAAAAAbDM/PZ9zJ9zKby092sSl4Zck6pfmVmdSMMR_QCK4BGAsYHg/w693-h781/weatherAlerts.png)](https://1.bp.blogspot.com/-i0scI-q4IQA/Xv55Qpjyu4I/AAAAAAAAbDM/PZ9zJ9zKby092sSl4Zck6pfmVmdSMMR_QCK4BGAsYHg/s920/weatherAlerts.png)

  

<font face="verdana">In the above process group we are using QueryRecord to segment JSON records and only pick ones where the Temperature in Fahrenheit is over 80 degrees then we pick out a few attributes to display from the record and send them to a slack channel.</font>

<font face="verdana"><br></font>

<font face="verdana">To become a Kafka Producer you set a Record Reader for the type coming in, this is JSON in my case and then set a Record Writer for the type to send to the <b>sensors</b> topic.    In this case we kept it as JSON, but we could convert to AVRO.   I usually do that if I am going to be reading it with Cloudera Kafka Connect.</font>

<font face="verdana"><br></font>

<font face="verdana"><br></font>

[![](https://1.bp.blogspot.com/-XX2GrOtM6R0/Xv55J6V3WRI/AAAAAAAAbCQ/jJouMUsyT8YcvCX0tUdiEBe99RhMrCdyQCK4BGAsYHg/w625-h320/nifipublishToKafkaSensors.png)](https://1.bp.blogspot.com/-XX2GrOtM6R0/Xv55J6V3WRI/AAAAAAAAbCQ/jJouMUsyT8YcvCX0tUdiEBe99RhMrCdyQCK4BGAsYHg/s706/nifipublishToKafkaSensors.png)

  

Our security is automagic and requires little for you to do in NiFi.   I put in my username and password from CDP.   The SSL context is setup for my when I create my datahub.

  

[![](https://1.bp.blogspot.com/-plnzCDAPNso/Xv55JW4C8RI/AAAAAAAAbCM/D7bBT4AIILYLv6RjCOvwqXXDrxSwRzKoACK4BGAsYHg/w625-h343/nifipublishToKafkaSensors2.png)](https://1.bp.blogspot.com/-plnzCDAPNso/Xv55JW4C8RI/AAAAAAAAbCM/D7bBT4AIILYLv6RjCOvwqXXDrxSwRzKoACK4BGAsYHg/s545/nifipublishToKafkaSensors2.png)

  

When I am writing to our Real-Time Data Mart (Apache Kudu), I enter my Kudu servers that I copied from the Kudu Data Mart Hardware page, put in my table name and your login info.   I recommend  **UPSERT**  and use your Record Reader JSON.

  

[![](https://1.bp.blogspot.com/-1dh-IV27r_U/Xv55HpX94hI/AAAAAAAAbB8/W5sb_l3bLJ4UFyKbVsUT9qGPtQs7Js3VQCK4BGAsYHg/w625-h463/putKuduSettings.png)](https://1.bp.blogspot.com/-1dh-IV27r_U/Xv55HpX94hI/AAAAAAAAbB8/W5sb_l3bLJ4UFyKbVsUT9qGPtQs7Js3VQCK4BGAsYHg/s443/putKuduSettings.png)

<font face="verdana"><br></font>

<font face="verdana">For real use cases, you will need to spin up:</font>

<font face="verdana"><br></font>

<font face="verdana"><b>Public Cloud Data Hubs:</b></font>

- Streams Messaging Heavy Duty for AWS
- Streams Messaging Heavy Duty for Azure
- Flow Management Heavy Duty for AWS
- Flow Management Heavy Duty for Azure

<font face="verdana"><b>Software</b>:</font>

- <font face="verdana">Apache Kafka 2.4.1</font>
- Cloudera Schema Registry 0.8.1
- <font face="verdana">Cloudera Streams Messaging Manager 2.1.0</font>
<font face="verdana"><li>Apache NiFi 1.11.4</li></font>- Apache NiFi Registry 0.5.0

<font face="verdana"><b>Demo Source Code:</b></font>

<font face="verdana"><b><br></b></font>

- <font face="verdana"><a href="https://github.com/tspannhw/cdp-datahub-azure-nifikafka%C2%A0">https://github.com/tspannhw/cdp-datahub-azure-nifikafka </a></font>

<font face="verdana"><br></font>

<font face="verdana">Let's configure out Data Hubs in CDP in an Azure Environment.   It is a few clicks and some naming and then it builds.</font>

<font face="verdana"><br></font>

[![](https://1.bp.blogspot.com/-CTH1E4eQ3AM/Xv55MKi5CGI/AAAAAAAAbCk/OUEGFNOcDV00eDdD1SEqr22d6CpEtNnSQCK4BGAsYHg/w781-h411/azuredatalakesdx.png)](https://1.bp.blogspot.com/-CTH1E4eQ3AM/Xv55MKi5CGI/AAAAAAAAbCk/OUEGFNOcDV00eDdD1SEqr22d6CpEtNnSQCK4BGAsYHg/s3342/azuredatalakesdx.png)
  

[![](https://1.bp.blogspot.com/-21KfOdIlSGM/Xv55Lt6Lf8I/AAAAAAAAbCg/fLJX-kp-rdIYKuMBz1OfaRdIQEv5XBS2gCK4BGAsYHg/w781-h291/allthedatahubs2.png)](https://1.bp.blogspot.com/-21KfOdIlSGM/Xv55Lt6Lf8I/AAAAAAAAbCg/fLJX-kp-rdIYKuMBz1OfaRdIQEv5XBS2gCK4BGAsYHg/s3347/allthedatahubs2.png)

  

[![](https://1.bp.blogspot.com/-DoeH0fDxXLw/Xv55HO_9dgI/AAAAAAAAbB4/hKNvtmCoJDE3AkUW5DsY4PBAqPGVRyzGQCK4BGAsYHg/w781-h380/datahubkuduhardware.png)](https://1.bp.blogspot.com/-DoeH0fDxXLw/Xv55HO_9dgI/AAAAAAAAbB4/hKNvtmCoJDE3AkUW5DsY4PBAqPGVRyzGQCK4BGAsYHg/s2524/datahubkuduhardware.png)
  

[![](https://1.bp.blogspot.com/--Mm-9IKojJE/Xv55GrIoUjI/AAAAAAAAbB0/hLUEn5xvua4WEPayir2XB321WKATfhksgCK4BGAsYHg/w781-h179/azureenvdatahubs.png)](https://1.bp.blogspot.com/--Mm-9IKojJE/Xv55GrIoUjI/AAAAAAAAbB0/hLUEn5xvua4WEPayir2XB321WKATfhksgCK4BGAsYHg/s2525/azureenvdatahubs.png)
  

[![](https://1.bp.blogspot.com/-1tUDf68DmFc/Xv55GMlvsAI/AAAAAAAAbBw/FydXvfj1NasxY-vD5Cy0sNRYWFh00b3CQCK4BGAsYHg/w781-h374/envazuredatalake.png)](https://1.bp.blogspot.com/-1tUDf68DmFc/Xv55GMlvsAI/AAAAAAAAbBw/FydXvfj1NasxY-vD5Cy0sNRYWFh00b3CQCK4BGAsYHg/s2533/envazuredatalake.png)

  

[![](https://1.bp.blogspot.com/-UrLBhGz3F6Y/Xv55E3X9XXI/AAAAAAAAbBk/UBRIBtbNWbYcRNzbsg8c61dscBvofFcSACK4BGAsYHg/w781-h329/datahubsnifi.png)](https://1.bp.blogspot.com/-UrLBhGz3F6Y/Xv55E3X9XXI/AAAAAAAAbBk/UBRIBtbNWbYcRNzbsg8c61dscBvofFcSACK4BGAsYHg/s2535/datahubsnifi.png)

[  
 ![](https://1.bp.blogspot.com/-MX8RxUz_WkY/Xv55UQxi20I/AAAAAAAAbDw/uHBMH79236QQccLgjbij4NsuPaBEUCCOgCK4BGAsYHg/w781-h330/nifidatahub.png)](https://1.bp.blogspot.com/-MX8RxUz_WkY/Xv55UQxi20I/AAAAAAAAbDw/uHBMH79236QQccLgjbij4NsuPaBEUCCOgCK4BGAsYHg/s2550/nifidatahub.png)
  

[![](https://1.bp.blogspot.com/-V3jqR_tV2sM/Xv55TznUiFI/AAAAAAAAbDs/Wd7WetfZ05knyd0dwdqtXTiVVPFUzktWwCK4BGAsYHg/w976-h470/cdponazure1.png)](https://1.bp.blogspot.com/-V3jqR_tV2sM/Xv55TznUiFI/AAAAAAAAbDs/Wd7WetfZ05knyd0dwdqtXTiVVPFUzktWwCK4BGAsYHg/s2545/cdponazure1.png)
  

[![](https://1.bp.blogspot.com/-TNxe4mxZ7Ts/Xv55R3OgqdI/AAAAAAAAbDY/eyXUY0y7-EsY7sEzTGdUTT9h5Mo6UP2HwCK4BGAsYHg/w781-h333/kafkaDataHub.png)](https://1.bp.blogspot.com/-TNxe4mxZ7Ts/Xv55R3OgqdI/AAAAAAAAbDY/eyXUY0y7-EsY7sEzTGdUTT9h5Mo6UP2HwCK4BGAsYHg/s2551/kafkaDataHub.png)
  

[![](https://1.bp.blogspot.com/-7nz8-ymRZiQ/Xv55RG54ldI/AAAAAAAAbDU/F_q6ir9Wi8gWBd1ztXr_nK1M5JPAD4E3gCK4BGAsYHg/w781-h211/allthedatahubs.png)](https://1.bp.blogspot.com/-7nz8-ymRZiQ/Xv55RG54ldI/AAAAAAAAbDU/F_q6ir9Wi8gWBd1ztXr_nK1M5JPAD4E3gCK4BGAsYHg/s2556/allthedatahubs.png)

  

<font face="verdana"><br></font>

<font face="verdana" size="6"><b>Under the Azure Portal</b></font>

  
  

In Azure, we can examine the files we uploaded to the Azure object store.
  

[![](https://1.bp.blogspot.com/-35Gj7XwJic0/Xv55Kvep7cI/AAAAAAAAbCY/JltGxMwVnQI_cxvKgWfRStjW3hrKMtiwwCK4BGAsYHg/w781-h149/dataloadedToAzureStorage.png)](https://1.bp.blogspot.com/-35Gj7XwJic0/Xv55Kvep7cI/AAAAAAAAbCY/JltGxMwVnQI_cxvKgWfRStjW3hrKMtiwwCK4BGAsYHg/s2548/dataloadedToAzureStorage.png)
  

[![](https://1.bp.blogspot.com/-iNNVkJyc6w0/Xv55KIr0bdI/AAAAAAAAbCU/DFnN8JNmnV8BeW3f8gO2eYnmZL2p6cOUACK4BGAsYHg/w781-h564/azurecontainerdirectories.png)](https://1.bp.blogspot.com/-iNNVkJyc6w0/Xv55KIr0bdI/AAAAAAAAbCU/DFnN8JNmnV8BeW3f8gO2eYnmZL2p6cOUACK4BGAsYHg/s533/azurecontainerdirectories.png)
  

  

  

<font face="verdana" size="6"><b>Under the Data Lake SDX</b></font>

  
  
NiFi and Kafka are autoconfigured to work with Apache Atlas under our environments Data Lake SDX.  We can browse through the lineage for all the Kafka topics we use.

  

[![](https://1.bp.blogspot.com/-8EY7-axXE38/Xv55ORxPoHI/AAAAAAAAbC4/kGyzCj_S1kgRfZHkRLEVDaIszW53UfYywCK4BGAsYHg/w781-h299/atlaskafkasensors.png)](https://1.bp.blogspot.com/-8EY7-axXE38/Xv55ORxPoHI/AAAAAAAAbC4/kGyzCj_S1kgRfZHkRLEVDaIszW53UfYywCK4BGAsYHg/s1814/atlaskafkasensors.png)
  

[![](https://1.bp.blogspot.com/-Wr44jGTIRw0/Xv55N2y1y5I/AAAAAAAAbC0/jRCu1TevWrspg1Di72CUkF9aucHIjJGTgCK4BGAsYHg/w781-h313/atlaskafkatwitter.png)](https://1.bp.blogspot.com/-Wr44jGTIRw0/Xv55N2y1y5I/AAAAAAAAbC0/jRCu1TevWrspg1Di72CUkF9aucHIjJGTgCK4BGAsYHg/s1731/atlaskafkatwitter.png)
  

[![](https://1.bp.blogspot.com/-yVtaaZk0BEc/Xv55Nf7ufTI/AAAAAAAAbCw/vBXGu0FnQb8KhvOPs3ctaIeUI-4OItb3gCK4BGAsYHg/w781-h349/atlaskafkaweather.png)](https://1.bp.blogspot.com/-yVtaaZk0BEc/Xv55Nf7ufTI/AAAAAAAAbCw/vBXGu0FnQb8KhvOPs3ctaIeUI-4OItb3gCK4BGAsYHg/s1674/atlaskafkaweather.png)
  

[![](https://1.bp.blogspot.com/-QzWIz3j4reU/Xv55M73toHI/AAAAAAAAbCs/w2Qnxtn3je0cuFOzn5hNlhT1CIa3YPOlQCK4BGAsYHg/w781-h149/atlasKafkaTopicSearch.png)](https://1.bp.blogspot.com/-QzWIz3j4reU/Xv55M73toHI/AAAAAAAAbCs/w2Qnxtn3je0cuFOzn5hNlhT1CIa3YPOlQCK4BGAsYHg/s2553/atlasKafkaTopicSearch.png)
  

[![](https://1.bp.blogspot.com/-yhKbJkbeMoE/Xv55MTJtcQI/AAAAAAAAbCo/YhFfiUP_cv4tCFmzoSkyFoCJfSS4Pf7IwCK4BGAsYHg/w781-h398/atlasnifisentiment.png)](https://1.bp.blogspot.com/-yhKbJkbeMoE/Xv55MTJtcQI/AAAAAAAAbCo/YhFfiUP_cv4tCFmzoSkyFoCJfSS4Pf7IwCK4BGAsYHg/s2159/atlasnifisentiment.png)
  

We can also see the flow for NiFi, HDFS and Kudu.
  

<font face="verdana" size="6"><b>SMM</b></font>

<font face="verdana" size="6"><b><br></b></font>

<font face="verdana">We can examine all of our Kafka infrastructure from Kafka Brokers, Topics, Consumers, Producers, Latency and Messages.  We can also create and update topics.</font>

<font face="verdana"><br></font>

[![](https://1.bp.blogspot.com/-G_rk0t2hacE/Xv55VLB5ojI/AAAAAAAAbD4/2YQLFnFlW4wtKAKPaEc5MSeCp2gIaAQsgCK4BGAsYHg/w781-h499/smm1.png)](https://1.bp.blogspot.com/-G_rk0t2hacE/Xv55VLB5ojI/AAAAAAAAbD4/2YQLFnFlW4wtKAKPaEc5MSeCp2gIaAQsgCK4BGAsYHg/s2092/smm1.png)

[![](https://1.bp.blogspot.com/-EmAxOGO6vr4/Xv55O5mF9LI/AAAAAAAAbC8/lj-IZmRa3f8TKyqrGpJQhH1atAaHMhLoQCK4BGAsYHg/w781-h145/smmOverview.png)](https://1.bp.blogspot.com/-EmAxOGO6vr4/Xv55O5mF9LI/AAAAAAAAbC8/lj-IZmRa3f8TKyqrGpJQhH1atAaHMhLoQCK4BGAsYHg/s2542/smmOverview.png)

  

[![](https://1.bp.blogspot.com/-jbIUBNFTo8I/Xv55LBu5ZvI/AAAAAAAAbCc/nSRvnDBkjBII5pqo5bwuMkaUkIWqZT-XACK4BGAsYHg/w781-h251/smmtopicsweatherdata.png)](https://1.bp.blogspot.com/-jbIUBNFTo8I/Xv55LBu5ZvI/AAAAAAAAbCc/nSRvnDBkjBII5pqo5bwuMkaUkIWqZT-XACK4BGAsYHg/s2539/smmtopicsweatherdata.png)

  

  

<font face="verdana" size="6"><b>Cloudera Manager</b></font>

<font face="verdana"><br></font>

<font face="verdana">We still have access to all of our traditional items like Cloudera Manager to manage configuration of servers.</font>

<font face="verdana"><br></font>

[![](https://1.bp.blogspot.com/-_uWeTSwWHtk/Xv55F-Zm0PI/AAAAAAAAbBs/2sNv6rsZWPw2VaMr_85A8dwOHOi6-94YQCK4BGAsYHg/w781-h280/clouderamanager.png)](https://1.bp.blogspot.com/-_uWeTSwWHtk/Xv55F-Zm0PI/AAAAAAAAbBs/2sNv6rsZWPw2VaMr_85A8dwOHOi6-94YQCK4BGAsYHg/s2500/clouderamanager.png)
  

[![](https://1.bp.blogspot.com/-LNkazOgW-z8/Xv55FfM-7qI/AAAAAAAAbBo/2jZuhQy6r38mIGWtnOH8wIeqT5EVGOAQgCK4BGAsYHg/w781-h255/cpucores.png)](https://1.bp.blogspot.com/-LNkazOgW-z8/Xv55FfM-7qI/AAAAAAAAbBo/2jZuhQy6r38mIGWtnOH8wIeqT5EVGOAQgCK4BGAsYHg/s1830/cpucores.png)

<font face="verdana"><br></font>

**<font face="verdana" size="6">Under Real-Time Data Mart</font>**

**<font face="verdana" size="6"><br></font>**

<font face="verdana">We can view tables, create tables and query our table.   Apache Hue is a great tool for accessing data in my Real-Time Data Mart in a datahub.</font>

<font face="verdana"><br></font>

[![](https://1.bp.blogspot.com/-AAJd0BRl124/Xv55Pa-NiDI/AAAAAAAAbDA/0GA1ir2I8bYyAp1aIh8zxk8TbH-wzNnbwCK4BGAsYHg/w781-h388/kuduhivequery.png)](https://1.bp.blogspot.com/-AAJd0BRl124/Xv55Pa-NiDI/AAAAAAAAbDA/0GA1ir2I8bYyAp1aIh8zxk8TbH-wzNnbwCK4BGAsYHg/s2556/kuduhivequery.png)

  

  

We can also look at table details in the Impala UI.

  

[![](https://1.bp.blogspot.com/-wUGrpeT1Qis/Xv55IWC5xKI/AAAAAAAAbCE/RIKHcRqlYbA-FmpPpPzag1mAn9HxDJbaACK4BGAsYHg/w781-h664/impalatable.png)](https://1.bp.blogspot.com/-wUGrpeT1Qis/Xv55IWC5xKI/AAAAAAAAbCE/RIKHcRqlYbA-FmpPpPzag1mAn9HxDJbaACK4BGAsYHg/s1471/impalatable.png)

**<font face="verdana" size="6"><br></font>**

**<font face="verdana" size="6">References</font>**

- [https://www.cloudera.com/about/enterprise-data-cloud.html](https://www.cloudera.com/about/enterprise-data-cloud.html)
- 

[https://docs.cloudera.com/cdf-datahub/7.1.0/nifi-azure-ingest/topics/cdf-datahub-fm-adls-ingest-overview.html](https://docs.cloudera.com/cdf-datahub/7.1.0/nifi-azure-ingest/topics/cdf-datahub-fm-adls-ingest-overview.html)

- 

[https://docs.cloudera.com/cdf-datahub/7.1.0/nifi-kafka-ingest/topics/cdf-datahub-fm-kafka-ingest-buildflow.html](https://docs.cloudera.com/cdf-datahub/7.1.0/nifi-kafka-ingest/topics/cdf-datahub-fm-kafka-ingest-buildflow.html)

- 

[https://docs.cloudera.com/cdf-datahub/7.1.0/nifi-kudu-ingest/topics/cdf-datahub-nifi-kudu-ingest.html](https://docs.cloudera.com/cdf-datahub/7.1.0/nifi-kudu-ingest/topics/cdf-datahub-nifi-kudu-ingest.html)

- [https://docs.cloudera.com/cdf-datahub/7.2.0/index.html](https://docs.cloudera.com/cdf-datahub/7.2.0/index.html)

- [https://docs.cloudera.com/cdf-datahub/7.2.0/release-notes/topics/cdf-datahub-whats-new.html](https://docs.cloudera.com/cdf-datahub/7.2.0/release-notes/topics/cdf-datahub-whats-new.html)

- [https://dzone.com/articles/lets-build-a-simple-ingest-to-cloud-data-warehouse](https://dzone.com/articles/lets-build-a-simple-ingest-to-cloud-data-warehouse)

- [https://www.datainmotion.dev/2020/06/no-more-spaghetti-flows.html](https://dev.to/tspannhw/no-more-spaghetti-flows-2emd)

©2020  **Timothy Spann**