A Hands-On Guide for Building Mission-Critical Streaming Applications
Scott Haines

#Data_Engineering
#Apache_Spark
#Spark
#Kubernetes
#Docker
#Airflow
#SQL
🚀 از Apache Spark در یک اکوسیستم مدرن مهندسی داده استفاده کن. این راهنمای کاملاً عملی بهت یاد میده چطور اپلیکیشنهای کاملاً کاربردی بنویسی، بهترین الگوهای صنعتی رو رعایت کنی و دلیل پشت این تصمیمها رو هم درک کنی.
⚙️ با محوریت Apache Spark، یک مسیر مرحلهبهمرحله رو طی میکنی که از مبانی Data Ingestion، پردازش و تبدیل داده شروع میشه و در نهایت به ساخت یک پلتفرم دادهی محلی کامل میرسه که شامل Apache Spark، Apache Zeppelin، Apache Kafka، Redis، MySQL، Minio (S3) و Apache Airflow هست.
📊 تواناییهای Apache Spark در مسائل داده
🔥 اپلیکیشنهای Spark طیف وسیعی از مسائل داده رو حل میکنن؛ از بارگذاری و پردازش سنتی داده گرفته تا تحلیلهای پیچیده مبتنی بر SQL، و حتی پردازشهای Streaming نزدیک به Real-time.
🧠 Spark بهعنوان یک هسته مرکزی برای اکثر ورکلودهای مهندسی داده خیلی خوب عمل میکنه. این کتاب بهت یاد میده چطور اپلیکیشنهای تعاملی Spark رو با استفاده از Apache Zeppelin Notebook بنویسی، اپلیکیشنها و ماژولهای قابل استفاده مجدد طراحی و کامپایل کنی، و هم Batch و هم Streaming رو بهصورت کامل تست کنی.
🐳 همچنین یاد میگیری چطور اپلیکیشنهات رو با Docker کانتینرایز کنی و با ابزارهایی مثل Apache Airflow، Docker و Kubernetes اونها رو اجرا و Deploy کنی.
🚀 هدف کتاب
📦 با خوندن این کتاب میتونی از Apache Spark برای بهینهسازی Pipelineهای داده استفاده کنی و اپلیکیشنهای ماژولار و قابل تست بسازی.
⚡ همچنین اپلیکیشنهای Streaming حیاتی رو در یک محیط کمریسک توسعه و Deploy میکنی؛ محیطی که مسیر ورودت به Production واقعی رو هموار میکنه.
🧠 آنچه یاد میگیری
👨💻 مخاطب این کتاب
🧑💻 این کتاب برای مهندسهای نرمافزار حرفهایه که میخوان مهارتهای فعلی خودشون رو وارد دنیای داده کنن و فرصتهای جدیدی رو تجربه کنن.
📊 همچنین برای Data Engineerهایی مناسبه که دنبال یک مسیر راهنما هستن تا از Batch به Streaming مهاجرت کنن و با چالشهای این مسیر بهتر کنار بیان.
🏗️ برای Data Architectها هم مناسبه که میخوان یک چارچوب واضح و دقیق برای استفاده از Apache Spark در سازمان ارائه بدن.
🌍 و در نهایت برای هر کسی که میخواد وارد دنیای مدرن و سریع مهندسی داده بشه.
👨🏫 درباره نویسنده
⚙️ اسکات هینز یک Full Stack Engineer هست که تمرکز فعلیش روی سیستمهای تحلیل Real-time، Highly Available و قابل اعتماد قرار داره.
🏢 او در شرکت Twilio بهعنوان Principal Software Engineer در تیم Voice Insights کار میکنه؛ جایی که روی توسعه Spark، معماری Pipelineهای Streaming و ساخت پلتفرمهای پردازش Batch و Stream در مقیاس بالا فعالیت داره.
📡 قبل از Twilio، روی APIهای بکاند Java برای Yahoo Games کار میکرد و همچنین موتور Real-time رتبهبندی و پیشنهاددهی (بر پایه Storm) رو توسعه داد.
📱 در ادامه مسیرش در Yahoo، در Flurry Analytics روی سیستم هشدار و نوتیفیکیشن برای دستگاههای موبایل کار کرد.
📚 بخش اول: مبانی مهندسی داده با Spark
۱ مقدمهای بر مهندسی داده مدرن
۲ شروع کار با Apache Spark
۳ کار با دادهها
۴ تبدیل داده با Spark SQL و DataFrame API
۵ اتصال Spark SQL با JDBC
۶ کشف داده و Spark SQL Catalog
۷ Pipelineهای داده و اپلیکیشنهای ساختیافته Spark
🌊 بخش دوم: اکوسیستم پردازش Streaming
۸ ارکستریشن Workflow با Apache Airflow
۹ مقدمهای ساده بر Stream Processing
۱۰ الگوهای نوشتن اپلیکیشنهای Structured Streaming
۱۱ Apache Kafka و Structured Streaming در Spark
۱۲ پردازش تحلیلی و استخراج Insight
⚡ بخش سوم: تکنیکهای پیشرفته
۱۳ تحلیل پیشرفته با Stateful Structured Streaming در Spark
۱۴ Deploy اپلیکیشنهای حیاتی Spark روی Spark Standalone
۱۵ Deploy اپلیکیشنهای حیاتی Spark روی Kubernetes
👨🏫 درباره نویسنده
⚙️ اسکات هینز یک مهندس فولاستک هست که تمرکزش روی سیستمهای تحلیل Real-time و قابل اعتماد قرار داره.
Leverage Apache Spark within a modern data engineering ecosystem. This hands-on guide will teach you how to write fully functional applications, follow industry best practices, and learn the rationale behind these decisions. With Apache Spark as the foundation, you will follow a step-by-step journey beginning with the basics of data ingestion, processing, and transformation, and ending up with an entire local data platform running Apache Spark, Apache Zeppelin, Apache Kafka, Redis, MySQL, Minio (S3), and Apache Airflow.
Apache Spark applications solve a wide range of data problems from traditional data loading and processing to rich SQL-based analysis as well as complex machine learning workloads and even near real-time processing of streaming data. Spark fits well as a central foundation for any data engineering workload. This book will teach you to write interactive Spark applications using Apache Zeppelin notebooks, write and compilereusable applications and modules, and fully test both batch and streaming. You will also learn to containerize your applications using Docker and run and deploy your Spark applications using a variety of tools such as Apache Airflow, Docker and Kubernetes.
Reading this book will empower you to take advantage of Apache Spark to optimize your data pipelines and teach you to craft modular and testable Spark applications. You will create and deploy mission-critical streaming spark applications in a low-stress environment that paves the way for your own path to production.
What You Will Learn
Who This Book Is For
Professional software engineers who want to take their current skills and apply them to new and exciting opportunities within the data ecosystem, practicing data engineers who are looking for a guiding light while traversing the many challenges of moving from batch to streaming modes, data architects who wish to provide clear and concise direction for how best to harness anduse Apache Spark within their organization, and those interested in the ins and outs of becoming a modern data engineer in today's fast-paced and data-hungry world
About the Author
Part I: The Fundamentals of Data Engineering with Spark
Chapter 1: Introduction to Modern Data Engineering
Chapter 2: Getting Started with Apache Spark
Chapter 3: Working with Data
Chapter 4: Transforming Data with Spark SQL and the DataFrame API
Chapter 5: Bridging Spark SQL with JDBC
Chapter 6: Data Discovery and the Spark SQL Catalog
Chapter 7: Data Pipelines and Structured Spark Applications
Part II: The Streaming Pipeline Ecosystem
Chapter 8: Workflow Orchestration with Apache Airflow
Chapter 9: A Gentle Introduction to Stream Processing
Chapter 10: Patterns for Writing Structured Streaming Applications
Chapter 11: Apache Kafka and Spark Structured Streaming
Chapter 12: Analytical Processing and Insights
Part III: Advanced Techniques
Chapter 13: Advanced Analytics with Spark Stateful Structured Streaming
Chapter 14: Deploying Mission-Critical Spark Applications on Spark Standalone
Chapter 15: Deploying Mission-Critical Spark Applications on Kubernetes
About the Author
Scott Haines is a full stack engineer with a current focus on real-time, highly available, trustworthy analytics systems. He works at Twilio as a Principal Software Engineer on the Voice Insights team, where he helps drive Spark adoption, creates streaming pipeline architectures, and helps to architect and build out a massive stream and batch processing platform.
Prior to Twilio, Scott worked writing the backend Java APIs for Yahoo Games as well as the real-time game ranking and ratings engine (built on Storm) to provide personalized recommendations and page views for 10 million customers. He finished his tenure at Yahoo working for Flurry Analytics where he wrote the alerts and notifications system for mobile devices.









