https://sessionize.com/big-data-fest-by-softserve/
The Big Data Fest 2023 is a two-day online event that brings together experts, enthusiasts, and members of the community to discuss the latest developments, trending technologies, and tools, and make an impact on the future of Big Data and Data Engineering.
Attendees will have the opportunity to hear from keynote speakers, attend panel discussions and live Q&As, and participate in hands-on workshops.
The event will also feature a charity component aimed at raising money for Open Eyes Fund to buy ambulances for the hottest spots in Ukraine. We invite everyone to support this event and help make a difference in saving lives.
Participation in the event is free, but we encourage attendees to make donations to support this important initiative.
The conference will include a variety of activities divided into cloud streams, such as:
Keynote speeches from leading experts in the field of Big Data
Live Q&As
Panel discussions on the future of Data Engineering
Hands-on workshops on data management and analytics
Networking opportunities with top professionals and leading experts in the field.
Our main goal is to influence the future shape of Data Engineering and promote the use of Big Data for the greater good.
In my session, I will show you some best practices I have discovered over the last 7 years in building data streaming applications including IoT, CDC, Logs, and more.
In my modern approach, we utilize several open-source frameworks to maximize the best features of all. We often start with Apache NiFi as the orchestrator of streams flowing into Apache Pulsar and/or Apache Kafka. From there we build streaming ETL with Apache Spark and enhance events with serverless functions for ML and enrichment. We build continuous queries against our topics with Flink SQL. We will stream data into Iceberg and other data stores.
We use the best streaming tools for the current applications with FLiPN and FLaNK. https://www.datainmotion.dev/
https://www.youtube.com/watch?v=qW9CP8Xngk4&ab_channel=SoftServeCareer
Apache NiFi
Apache Flink
Apache Kafka
Apache iceberg
Streams Messaging Manager
SQL Stream Builder
Cloudera DataFlow Designer
NiFi Registry
Cloudera Schema Registry
1. Building Modern Data Streaming
Apps
Tim Spann
Principal Developer Advocate
25-May-2023
2.
3.
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
11. 11
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
22. 22
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
26. 26
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
48. 48
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