SlideShare a Scribd company logo
Building Modern Data Streaming
Apps
Tim Spann
Principal Developer Advocate
25-May-2023
BigDataFest  Building Modern Data Streaming Apps
BigDataFest  Building Modern Data Streaming Apps
4
FLaNK Stack
Tim Spann
@PaasDev // Blog: www.datainmotion.dev
Principal Developer Advocate.
Princeton Future of Data Meetup.
ex-Pivotal, ex-Hortonworks, ex-StreamNative, ex-PwC
https://github.com/tspannhw/EverythingApacheNiFi
https://medium.com/@tspann
Apache NiFi x Apache Kafka x Apache Flink x Java
5
FLaNK Stack Weekly
This week in Apache NiFi, Apache Flink, Apache
Pulsar, Apache Spark, Apache Iceberg, Python,
Java and Open Source friends.
https://bit.ly/32dAJft
© 2023 Cloudera, Inc. All rights reserved. 6
Future of Data - Princeton + Virtual
@PaasDev
https://www.meetup.com/futureofdata-princeton
From Big Data to AI to Streaming to Containers to
Cloud to Analytics to Cloud Storage to Fast Data
to Machine Learning to Microservices to ...
https://openeyes.org.ua/en/donate
STREAMING
9
What is Real-Time?
10
Streaming From … To …
Data distribution as a first class citizen
IOT
Devices
LOG DATA
SOURCES
ON-PREM
DATA SOURCES
BIG DATA CLOUD
SERVICES
CLOUD BUSINESS
PROCESS SERVICES *
CLOUD DATA*
ANALYTICS /SERVICE
(Cloudera DW)
App
Logs
Laptops
/Servers Mobile
Apps
Security
Agents
CLOUD
WAREHOUSE
UNIVERSAL
DATA DISTRIBUTION
(Ingest, Transform, Deliver)
Ingest
Processors
Ingest
Gateway
Router, Filter &
Transform
Processors
Destination
Processors
© 2023 Cloudera, Inc. All rights reserved. 11
BUILDING REAL-TIME REQUIRES A TEAM
APACHE KAFKA
© 2023 Cloudera, Inc. All rights reserved. 13
What is Apache Kafka?
Distributed: horizontally scalable
Partitioned: the data is split-up and distributed across the brokers
Replicated: allows for automatic failover
Unique: Kafka does not track the consumption of messages (the consumers do)
Fast: designed from the ground up with a focus on performance and throughput
Kafka was built at Linkedin in 2011
Open sourced as an Apache project
© 2023 Cloudera, Inc. All rights reserved. 14
Yes, Franz, It’s Kafka
Let’s do a metamorphosis on your data. Don’t fear changing data.
You don’t need to be a brilliant writer to stream
data.
Franz Kafka was a German-speaking
Bohemian novelist and short-story
writer, widely regarded as one of the
major figures of 20th-century
literature. His work fuses elements
of realism and the fantastic.
Wikipedia
© 2023 Cloudera, Inc. All rights reserved. 15
What is Can You Do With Apache Kafka?
Web site activity: track page views, searches, etc. in real time
Events & log aggregation: particularly in distributed systems where messages
come from multiple sources
Monitoring and metrics: aggregate statistics from distributed applications and
build a dashboard application
Stream processing: process raw data, clean it up, and forward it on to another
topic or messaging system
Real-time data ingestion: fast processing of a very large volume of messages
© 2023 Cloudera, Inc. All rights reserved. 16
Kafka Terms
● Kafka is a publish/subscribe messaging system comprised of the following
components:
○ Topic: a message feed
○ Producer: a process that publishes messages to a topic
○ Consumer: a process that subscribes to a topic and processes its
messages
○ Broker: a server in a Kafka cluster
© 2023 Cloudera, Inc. All rights reserved. 17
• Highly reliable distributed
messaging system
• Decouple applications,
enables many-to-many
patterns
• Publish-Subscribe
semantics
• Horizontal scalability
• Efficient implementation
to operate at speed with
big data volumes
• Organized by topic to
support several use cases
Source
System
Source
System
Source
System
Kafka
Fraud
Detection
Security
Systems
Real-Time
Monitoring
Many-To-Many
Publish-Subscribe
EVENTS
APACHE FLINK
© 2023 Cloudera, Inc. All rights reserved. 19
Flink SQL
https://www.datainmotion.dev/2021/04/cloudera-sql-stream-builder-ssb-updated.html
● Streaming Analytics
● Continuous SQL
● Continuous ETL
● Complex Event Processing
● Standard SQL Powered by Apache
Calcite
20
Flink SQL
-- specify Kafka partition key on output
SELECT foo AS _eventKey FROM sensors
-- use event time timestamp from kafka
-- exactly once compatible
SELECT eventTimestamp FROM sensors
-- nested structures access
SELECT foo.’bar’ FROM table; -- must quote nested
column
-- timestamps
SELECT * FROM payments
WHERE eventTimestamp > CURRENT_TIMESTAMP-interval
'10' second;
-- unnest
SELECT b.*, u.*
FROM bgp_avro b,
UNNEST(b.path) AS u(pathitem)
-- aggregations and windows
SELECT card,
MAX(amount) as theamount,
TUMBLE_END(eventTimestamp, interval '5' minute) as
ts
FROM payments
WHERE lat IS NOT NULL
AND lon IS NOT NULL
GROUP BY card,
TUMBLE(eventTimestamp, interval '5' minute)
HAVING COUNT(*) > 4 -- >4==fraud
-- try to do this ksql!
SELECT us_west.user_score+ap_south.user_score
FROM kafka_in_zone_us_west us_west
FULL OUTER JOIN kafka_in_zone_ap_south ap_south
ON us_west.user_id = ap_south.user_id;
Key Takeaway: Rich SQL grammar with advanced time and aggregation tools
DATAFLOW
APACHE NIFI
© 2023 Cloudera, Inc. All rights reserved. 22
Apache NiFi
Enable easy ingestion, routing, management and delivery of any data anywhere (Edge, cloud, data
center) to any downstream system with built in end-to-end security and provenance
ACQUIRE PROCESS DELIVER
• Over 300 Prebuilt Processors
• Easy to build your own
• Parse, Enrich & Apply Schema
• Filter, Split, Merger & Route
• Throttle & Backpressure
• Guaranteed Delivery
• Full data provenance from acquisition to
delivery
• Diverse, Non-Traditional Sources
• Eco-system integration
Advanced tooling to industrialize flow development
(Flow Development Life Cycle)
FTP
SFTP
HL7
UDP
XML
HTTP
EMAIL
HTML
IMAGE
SYSLO
G
FTP
SFTP
HL7
UDP
XML
HTTP
EMAIL
HTML
IMAGE
SYSLO
G
HASH
MERGE
EXTRACT
DUPLICATE
SPLIT
ROUTE TEXT
ROUTE CONTENT
ROUTE CONTEXT
CONTROL RATE
DISTRIBUTE LOAD
GEOENRICH
SCAN
REPLACE
TRANSLATE
CONVERT
ENCRYPT
TALL
EVALUATE
EXECUTE
© 2023 Cloudera, Inc. All rights reserved. 23
Provenance
24
Extensibility
● Built from the ground up with extensions in mind
● Service-loader pattern for…
○ Processors
○ Controller Services
○ Reporting Tasks
○ Prioritizers
● Extensions packaged as NiFi Archives (NARs)
○ Deploy NiFi lib directory and restart
○ Same model as standard components
25
Custom Processors
https://github.com/tspannhw/nifi-extracttext-processor
https://github.com/tspannhw/nifi-tensorflow-processor
https://github.com/tspannhw/nifi-nlp-processor
https://github.com/tspannhw/nifi-convertjsontoddl-processor
https://github.com/tspannhw/nifi-corenlp-processor
https://github.com/tspannhw/nifi-imageextractor-processor
https://github.com/tspannhw/nifi-attributecleaner-processor
https://github.com/tspannhw/linkextractorprocessor
https://github.com/tspannhw/GetWebCamera
https://github.com/tspannhw/nifi-langdetect-processor
https://github.com/tspannhw/nifi-postimage-processor
© 2023 Cloudera, Inc. All rights reserved. 26
Parquet
Reader/
Writers
● Native Record
Processors for Apache
Parquet Files!
● CSV <-> Parquet
● XML <-> Parquet
● AVRO <-> Parquet
● JSON <-> Parquet
● More...
© 2023 Cloudera, Inc. All rights reserved. 27
NiFi Load Balancing
• Improve NiFi cluster throughput
• Defined at connection level
• Configurable balancing strategies
• Critical for scale up paradigm in
Kubernetes
© 2023 Cloudera, Inc. All rights reserved. 28
ReadyFlow
Gallery
• Cloudera provided
flow definitions
• Cover most common
data flow use cases
• Optimized to work
with CDP
sources/destinations
• Can be deployed and
adjusted as needed
© 2023 Cloudera, Inc. All rights reserved. 29
Flow
Catalog
• Central repository for
flow definitions
• Import existing NiFi
flows
• Manage flow
definitions
• Initiate flow
deployments
Apache NiFi with Python Custom Processors
Python as a 1st class citizen
© 2023 Cloudera, Inc. All rights reserved. 31
Processing millions of events with NiFi
DEMO AND CODE
https://github.com/tspannhw/FLaNK-TravelAdvisory
BigDataFest  Building Modern Data Streaming Apps
CREATE TABLE `sr1`.`default_database`.`traveladvisory` (
`title` VARCHAR(2147483647),
`pubdate` VARCHAR(2147483647),
`link` VARCHAR(2147483647),
`guid` VARCHAR(2147483647),
`advisoryId` VARCHAR(2147483647),
`domain` VARCHAR(2147483647),
`category` VARCHAR(2147483647),
`description` VARCHAR(2147483647),
`uuid` VARCHAR(2147483647),
`ts` BIGINT NOT NULL
) COMMENT 'traveladvisory'
WITH (
'properties.bootstrap.servers' = 'kafka:9092',
'avro-cloudera.properties.schema.registry.url' = 'http://schema-registry:7788/api/v1',
'connector' = 'kafka',
'avro-cloudera.schema-name' = 'traveladvisory',
'format' = 'avro-cloudera',
'topic' = 'traveladvisory',
'scan.startup.mode' = 'latest-offset'
)
BigDataFest  Building Modern Data Streaming Apps
BigDataFest  Building Modern Data Streaming Apps
BigDataFest  Building Modern Data Streaming Apps
BigDataFest  Building Modern Data Streaming Apps
https://github.com/tspannhw/FLaNK-MTA
https://medium.com/@tspann/finding-the-best-way-around-7491c76ca4cb
RESOURCES AND WRAP-UP
42
Streaming Tech Debt Tips
● Version Control All Assets
● Operationalize with K8
● Use DevOps and APIs
● Latest Java and Python
● Stream Sizing (NiFi, Kafka, Flink)
● Unit and Integration Test
● Backup everything
● Scale in 3s
43
Streaming Resources
● https://dzone.com/articles/real-time-stream-processing-with-hazelcast-and-
streamnative
● https://flipstackweekly.com/
● https://www.datainmotion.dev/
● https://www.flankstack.dev/
● https://github.com/tspannhw
● https://medium.com/@tspann
● https://medium.com/@tspann/predictions-for-streaming-in-2023-ad4d7395
d714
● https://www.apachecon.com/acna2022/slides/04_Spann_Tim_Citizen_Stre
aming_Engineer.pdf
44
Resources
© 2023 Cloudera, Inc. All rights reserved. 45
46
TH N Y U

More Related Content

PDF
BigDataFest_ Building Modern Data Streaming Apps
PDF
big data fest building modern data streaming apps
PDF
Budapest Data/ML - Building Modern Data Streaming Apps with NiFi, Flink and K...
PDF
OSSNA Building Modern Data Streaming Apps
PDF
Real-time Streaming Pipelines with FLaNK
PDF
Building Real-Time Travel Alerts
PDF
CoC23_Utilizing Real-Time Transit Data for Travel Optimization
PDF
Meetup: Streaming Data Pipeline Development
BigDataFest_ Building Modern Data Streaming Apps
big data fest building modern data streaming apps
Budapest Data/ML - Building Modern Data Streaming Apps with NiFi, Flink and K...
OSSNA Building Modern Data Streaming Apps
Real-time Streaming Pipelines with FLaNK
Building Real-Time Travel Alerts
CoC23_Utilizing Real-Time Transit Data for Travel Optimization
Meetup: Streaming Data Pipeline Development

Similar to BigDataFest Building Modern Data Streaming Apps (20)

PDF
GSJUG: Mastering Data Streaming Pipelines 09May2023
PDF
Meetup - Brasil - Data In Motion - 2023 September 19
PDF
Meetup - Brasil - Data In Motion - 2023 September 19
PDF
ITPC Building Modern Data Streaming Apps
PDF
RTAS 2023: Building a Real-Time IoT Application
PDF
WarsawITDays_ ApacheNiFi202
PDF
AIDEVDAY_ Data-in-Motion to Supercharge AI
PDF
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
PDF
Building Real-time Pipelines with FLaNK_ A Case Study with Transit Data
PDF
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
PDF
NY Open Source Data Meetup Feb 8 2024 Building Real-time Pipelines with FLaNK...
PDF
OSACon 2023_ Unlocking Financial Data with Real-Time Pipelines
PPTX
Big Data Analytics_basic introduction of Kafka.pptx
PDF
Flink sql for continuous sql etl apps & Apache NiFi devops
PDF
JConWorld_ Continuous SQL with Kafka and Flink
PDF
Conf42Python -Using Apache NiFi, Apache Kafka, RisingWave, and Apache Iceberg...
PDF
OSSFinance_UnlockingFinancialDatawithReal-TimePipelines.pdf
PDF
2024 XTREMEJ_ Building Real-time Pipelines with FLaNK_ A Case Study with Tra...
PDF
The Never Landing Stream with HTAP and Streaming
PDF
Self-Service Data Ingestion Using NiFi, StreamSets & Kafka
GSJUG: Mastering Data Streaming Pipelines 09May2023
Meetup - Brasil - Data In Motion - 2023 September 19
Meetup - Brasil - Data In Motion - 2023 September 19
ITPC Building Modern Data Streaming Apps
RTAS 2023: Building a Real-Time IoT Application
WarsawITDays_ ApacheNiFi202
AIDEVDAY_ Data-in-Motion to Supercharge AI
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
Building Real-time Pipelines with FLaNK_ A Case Study with Transit Data
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
NY Open Source Data Meetup Feb 8 2024 Building Real-time Pipelines with FLaNK...
OSACon 2023_ Unlocking Financial Data with Real-Time Pipelines
Big Data Analytics_basic introduction of Kafka.pptx
Flink sql for continuous sql etl apps & Apache NiFi devops
JConWorld_ Continuous SQL with Kafka and Flink
Conf42Python -Using Apache NiFi, Apache Kafka, RisingWave, and Apache Iceberg...
OSSFinance_UnlockingFinancialDatawithReal-TimePipelines.pdf
2024 XTREMEJ_ Building Real-time Pipelines with FLaNK_ A Case Study with Tra...
The Never Landing Stream with HTAP and Streaming
Self-Service Data Ingestion Using NiFi, StreamSets & Kafka
Ad

Recently uploaded (20)

PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
System and Network Administration Chapter 2
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
Introduction to Artificial Intelligence
PPTX
history of c programming in notes for students .pptx
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
medical staffing services at VALiNTRY
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
ai tools demonstartion for schools and inter college
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
PTS Company Brochure 2025 (1).pdf.......
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Which alternative to Crystal Reports is best for small or large businesses.pdf
System and Network Administration Chapter 2
Operating system designcfffgfgggggggvggggggggg
Softaken Excel to vCard Converter Software.pdf
Design an Analysis of Algorithms I-SECS-1021-03
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Introduction to Artificial Intelligence
history of c programming in notes for students .pptx
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
medical staffing services at VALiNTRY
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
ai tools demonstartion for schools and inter college
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
How to Choose the Right IT Partner for Your Business in Malaysia
PTS Company Brochure 2025 (1).pdf.......
Ad

BigDataFest Building Modern Data Streaming Apps

  • 1. Building Modern Data Streaming Apps Tim Spann Principal Developer Advocate 25-May-2023
  • 4. 4 FLaNK Stack Tim Spann @PaasDev // Blog: www.datainmotion.dev Principal Developer Advocate. Princeton Future of Data Meetup. ex-Pivotal, ex-Hortonworks, ex-StreamNative, ex-PwC https://github.com/tspannhw/EverythingApacheNiFi https://medium.com/@tspann Apache NiFi x Apache Kafka x Apache Flink x Java
  • 5. 5 FLaNK Stack Weekly This week in Apache NiFi, Apache Flink, Apache Pulsar, Apache Spark, Apache Iceberg, Python, Java and Open Source friends. https://bit.ly/32dAJft
  • 6. © 2023 Cloudera, Inc. All rights reserved. 6 Future of Data - Princeton + Virtual @PaasDev https://www.meetup.com/futureofdata-princeton From Big Data to AI to Streaming to Containers to Cloud to Analytics to Cloud Storage to Fast Data to Machine Learning to Microservices to ...
  • 10. 10 Streaming From … To … Data distribution as a first class citizen IOT Devices LOG DATA SOURCES ON-PREM DATA SOURCES BIG DATA CLOUD SERVICES CLOUD BUSINESS PROCESS SERVICES * CLOUD DATA* ANALYTICS /SERVICE (Cloudera DW) App Logs Laptops /Servers Mobile Apps Security Agents CLOUD WAREHOUSE UNIVERSAL DATA DISTRIBUTION (Ingest, Transform, Deliver) Ingest Processors Ingest Gateway Router, Filter & Transform Processors Destination Processors
  • 11. © 2023 Cloudera, Inc. All rights reserved. 11 BUILDING REAL-TIME REQUIRES A TEAM
  • 13. © 2023 Cloudera, Inc. All rights reserved. 13 What is Apache Kafka? Distributed: horizontally scalable Partitioned: the data is split-up and distributed across the brokers Replicated: allows for automatic failover Unique: Kafka does not track the consumption of messages (the consumers do) Fast: designed from the ground up with a focus on performance and throughput Kafka was built at Linkedin in 2011 Open sourced as an Apache project
  • 14. © 2023 Cloudera, Inc. All rights reserved. 14 Yes, Franz, It’s Kafka Let’s do a metamorphosis on your data. Don’t fear changing data. You don’t need to be a brilliant writer to stream data. Franz Kafka was a German-speaking Bohemian novelist and short-story writer, widely regarded as one of the major figures of 20th-century literature. His work fuses elements of realism and the fantastic. Wikipedia
  • 15. © 2023 Cloudera, Inc. All rights reserved. 15 What is Can You Do With Apache Kafka? Web site activity: track page views, searches, etc. in real time Events & log aggregation: particularly in distributed systems where messages come from multiple sources Monitoring and metrics: aggregate statistics from distributed applications and build a dashboard application Stream processing: process raw data, clean it up, and forward it on to another topic or messaging system Real-time data ingestion: fast processing of a very large volume of messages
  • 16. © 2023 Cloudera, Inc. All rights reserved. 16 Kafka Terms ● Kafka is a publish/subscribe messaging system comprised of the following components: ○ Topic: a message feed ○ Producer: a process that publishes messages to a topic ○ Consumer: a process that subscribes to a topic and processes its messages ○ Broker: a server in a Kafka cluster
  • 17. © 2023 Cloudera, Inc. All rights reserved. 17 • Highly reliable distributed messaging system • Decouple applications, enables many-to-many patterns • Publish-Subscribe semantics • Horizontal scalability • Efficient implementation to operate at speed with big data volumes • Organized by topic to support several use cases Source System Source System Source System Kafka Fraud Detection Security Systems Real-Time Monitoring Many-To-Many Publish-Subscribe EVENTS
  • 19. © 2023 Cloudera, Inc. All rights reserved. 19 Flink SQL https://www.datainmotion.dev/2021/04/cloudera-sql-stream-builder-ssb-updated.html ● Streaming Analytics ● Continuous SQL ● Continuous ETL ● Complex Event Processing ● Standard SQL Powered by Apache Calcite
  • 20. 20 Flink SQL -- specify Kafka partition key on output SELECT foo AS _eventKey FROM sensors -- use event time timestamp from kafka -- exactly once compatible SELECT eventTimestamp FROM sensors -- nested structures access SELECT foo.’bar’ FROM table; -- must quote nested column -- timestamps SELECT * FROM payments WHERE eventTimestamp > CURRENT_TIMESTAMP-interval '10' second; -- unnest SELECT b.*, u.* FROM bgp_avro b, UNNEST(b.path) AS u(pathitem) -- aggregations and windows SELECT card, MAX(amount) as theamount, TUMBLE_END(eventTimestamp, interval '5' minute) as ts FROM payments WHERE lat IS NOT NULL AND lon IS NOT NULL GROUP BY card, TUMBLE(eventTimestamp, interval '5' minute) HAVING COUNT(*) > 4 -- >4==fraud -- try to do this ksql! SELECT us_west.user_score+ap_south.user_score FROM kafka_in_zone_us_west us_west FULL OUTER JOIN kafka_in_zone_ap_south ap_south ON us_west.user_id = ap_south.user_id; Key Takeaway: Rich SQL grammar with advanced time and aggregation tools
  • 22. © 2023 Cloudera, Inc. All rights reserved. 22 Apache NiFi Enable easy ingestion, routing, management and delivery of any data anywhere (Edge, cloud, data center) to any downstream system with built in end-to-end security and provenance ACQUIRE PROCESS DELIVER • Over 300 Prebuilt Processors • Easy to build your own • Parse, Enrich & Apply Schema • Filter, Split, Merger & Route • Throttle & Backpressure • Guaranteed Delivery • Full data provenance from acquisition to delivery • Diverse, Non-Traditional Sources • Eco-system integration Advanced tooling to industrialize flow development (Flow Development Life Cycle) FTP SFTP HL7 UDP XML HTTP EMAIL HTML IMAGE SYSLO G FTP SFTP HL7 UDP XML HTTP EMAIL HTML IMAGE SYSLO G HASH MERGE EXTRACT DUPLICATE SPLIT ROUTE TEXT ROUTE CONTENT ROUTE CONTEXT CONTROL RATE DISTRIBUTE LOAD GEOENRICH SCAN REPLACE TRANSLATE CONVERT ENCRYPT TALL EVALUATE EXECUTE
  • 23. © 2023 Cloudera, Inc. All rights reserved. 23 Provenance
  • 24. 24 Extensibility ● Built from the ground up with extensions in mind ● Service-loader pattern for… ○ Processors ○ Controller Services ○ Reporting Tasks ○ Prioritizers ● Extensions packaged as NiFi Archives (NARs) ○ Deploy NiFi lib directory and restart ○ Same model as standard components
  • 26. © 2023 Cloudera, Inc. All rights reserved. 26 Parquet Reader/ Writers ● Native Record Processors for Apache Parquet Files! ● CSV <-> Parquet ● XML <-> Parquet ● AVRO <-> Parquet ● JSON <-> Parquet ● More...
  • 27. © 2023 Cloudera, Inc. All rights reserved. 27 NiFi Load Balancing • Improve NiFi cluster throughput • Defined at connection level • Configurable balancing strategies • Critical for scale up paradigm in Kubernetes
  • 28. © 2023 Cloudera, Inc. All rights reserved. 28 ReadyFlow Gallery • Cloudera provided flow definitions • Cover most common data flow use cases • Optimized to work with CDP sources/destinations • Can be deployed and adjusted as needed
  • 29. © 2023 Cloudera, Inc. All rights reserved. 29 Flow Catalog • Central repository for flow definitions • Import existing NiFi flows • Manage flow definitions • Initiate flow deployments
  • 30. Apache NiFi with Python Custom Processors Python as a 1st class citizen
  • 31. © 2023 Cloudera, Inc. All rights reserved. 31 Processing millions of events with NiFi
  • 35. CREATE TABLE `sr1`.`default_database`.`traveladvisory` ( `title` VARCHAR(2147483647), `pubdate` VARCHAR(2147483647), `link` VARCHAR(2147483647), `guid` VARCHAR(2147483647), `advisoryId` VARCHAR(2147483647), `domain` VARCHAR(2147483647), `category` VARCHAR(2147483647), `description` VARCHAR(2147483647), `uuid` VARCHAR(2147483647), `ts` BIGINT NOT NULL ) COMMENT 'traveladvisory' WITH ( 'properties.bootstrap.servers' = 'kafka:9092', 'avro-cloudera.properties.schema.registry.url' = 'http://schema-registry:7788/api/v1', 'connector' = 'kafka', 'avro-cloudera.schema-name' = 'traveladvisory', 'format' = 'avro-cloudera', 'topic' = 'traveladvisory', 'scan.startup.mode' = 'latest-offset' )
  • 42. 42 Streaming Tech Debt Tips ● Version Control All Assets ● Operationalize with K8 ● Use DevOps and APIs ● Latest Java and Python ● Stream Sizing (NiFi, Kafka, Flink) ● Unit and Integration Test ● Backup everything ● Scale in 3s
  • 43. 43 Streaming Resources ● https://dzone.com/articles/real-time-stream-processing-with-hazelcast-and- streamnative ● https://flipstackweekly.com/ ● https://www.datainmotion.dev/ ● https://www.flankstack.dev/ ● https://github.com/tspannhw ● https://medium.com/@tspann ● https://medium.com/@tspann/predictions-for-streaming-in-2023-ad4d7395 d714 ● https://www.apachecon.com/acna2022/slides/04_Spann_Tim_Citizen_Stre aming_Engineer.pdf
  • 45. © 2023 Cloudera, Inc. All rights reserved. 45