Inflearn brand logo image
Inflearn brand logo image
Data Science

/

Data Engineering

Kafka & Spark được sử dụng cho Realtime Datalake

Khóa học nhập môn Pipeline thời gian thực Kafka & Spark dành cho người mới bắt đầu. Khóa học trọn gói để nắm vững từ khái niệm cốt lõi đến kiến trúc.

(5.0) 8 đánh giá

125 học viên

Kafka
Apache Spark
pyspark
data-lake

Dịch cái này sang tiếng Việt

  • Github, Actions và AWS Code Deploy để triển khai CI/CD

  • Kafka Broker, Confluent Producer & Consumer

  • Prometheus & Grafana: Giám sát Kafka Dashboard

  • Quản lý Catalog cho Spark & Hive Metastore

  • Thực hiện dự án thực tế dùng Spark Streaming

  • Kiểm tra tính sẵn sàng của Kafka & Spark, Zookeeper & Yarn

Đường ống dữ liệu thời gian thực, tại sao bạn nên học?


Việc hỗ trợ phân tích và ra quyết định nhanh chóng thông qua việc cấu hình đường ống dữ liệu thời gian thực không chỉ là một lựa chọn mà là điều cần thiết.

  • Tiếp thị và khuyến nghị được cá nhân hóa theo thời gian thực

  • Phân tích xu hướng thời gian thực

  • Phát hiện và phản hồi mối đe dọa bảo mật theo thời gian thực



Đặc biệt là ngày nay khi AI đã trở thành chuẩn mực, có vô số trường hợp đề xuất, phát hiện và dịch thuật theo thời gian thực bằng AI, và các đường ống dữ liệu thời gian thực ngày càng được yêu cầu để triển khai các kiến ​​trúc như vậy.


Vì thế tôi đã chuẩn bị.

Đường ống thời gian thực dựa trên Kafka + Spark, một trong những sự kết hợp xử lý phát trực tuyến phổ biến nhất

Kafka & Spark được chuẩn bị từ những điều cơ bản, từng bước một, vượt ra ngoài việc triển khai đường ống và thậm chí từ góc độ kiến ​​trúc.

Các tính năng của khóa học này

📌 Không cần cấu hình đơn lẻ trên máy cục bộ! Xu hướng là đám mây. Sử dụng AWS Cloud .

📌 CI/CD là cơ bản, phải không? Cấu hình CI/CD thông qua GitHub Actions và AWS Code Deploy.

📌 Chúng tôi sẽ bắt đầu từ những điều cơ bản và chậm rãi, nhưng chúng tôi sẽ giúp bạn ghi nhớ nội dung bài giảng thông qua thực hành và bài tập .

📌 Cấu hình tất cả trong một từ cấu hình cụm máy chủ đến cấu hình đường ống thời gian thực và kiểm tra tính khả dụng

👍 Tôi giới thiệu điều này cho những người này

Tôi muốn tìm hiểu về đường ống dữ liệu thời gian thực.
Những người quan tâm đến đường ống dữ liệu nhưng không có kinh nghiệm xử lý thời gian thực

Tôi muốn biết về DataLake.
Bất kỳ ai quan tâm đến việc tìm hiểu cách DataLake được xây dựng trên nền tảng Đám mây được triển khai

Tôi muốn phát triển sự nghiệp với tư cách là một kiến ​​trúc sư.
Bất kỳ ai tò mò về việc triển khai một kiến ​​trúc mạnh mẽ có thể xử lý khối lượng lớn dữ liệu từ thiết kế cơ sở hạ tầng đến cấp độ mã

Sau giờ học

  • Bạn sẽ hiểu được các nguyên tắc cơ bản của dịch vụ Kafka Broker, hiểu được các đảm bảo về tính khả dụng và có thể xử lý dịch vụ Broker dựa trên điều này.

  • Bạn sẽ hiểu được các nguyên tắc cơ bản và tùy chọn nâng cao của Kafka Producer/Consumer và có thể xây dựng các ứng dụng mạnh mẽ bằng cách hiểu được sự đánh đổi giữa hiệu suất và tính nhất quán trong môi trường quy mô lớn.

  • Bạn sẽ có thể hiểu được các điều kiện mà Spark có thể hoạt động tốt và viết các ứng dụng dựa trên các kỹ thuật để tối ưu hóa hiệu suất.

  • Bạn có thể hiểu được tính đa dạng của quy trình thông qua việc tích hợp với nhiều dịch vụ khác nhau như AWS S3, Glue, Athena và dịch vụ Spark.

Vậy nó bao gồm những gì?


  1. Xu hướng hiện nay là đám mây. Hãy cấu hình một cụm như trong đời thực bằng cách sử dụng máy chủ EC2.

  2. Học Kafka & Spark từ những điều cơ bản một cách chậm rãi.

  3. Tìm hiểu các khái niệm cơ bản về Datalake trên AWS thông qua các dịch vụ S3, Glue và Athena của AWS.



Đường ống có thể được chia thành nhiều loại từ thu gom đến sử dụng.

Bạn cần biết rõ nên sử dụng công cụ nào và cách liên kết chúng ở từng bước.

Vì vậy, vấn đề không chỉ là học Kafka và Spark.

Cuối cùng, hãy xây dựng một đường ống thực tế

Trong quá trình này, bạn sẽ học các phương pháp như CI/CD, kiểm tra tính khả dụng, khắc phục sự cố và cải thiện hiệu suất.

Chương trình giảng dạy

  1. Khái niệm Data Lake


  • Lambda

  • Kiến trúc Kappa

  • Thiết kế đường ống

  1. Cơ bản về Kafka


  • Người môi giới

  • Nhà sản xuất Kafka

  • Người tiêu dùng Kafka

  1. Giám sát

  • Giao diện người dùng cho Apache Kafka

  • Prometheus

  • Đồ họa

  1. Cơ bản về Apache Spark

  • Cụm tia lửa

  • Tia lửa SQL

  • Spark phát trực tuyến

  1. Mẹo cải thiện hiệu suất

  • Danh sách kiểm tra cải thiện hiệu suất

  • Xử lý sự cố

  • Giám sát tia lửa

  1. Kiểm tra tính khả dụng

  • Cụm người trông coi sở thú

  • Nhà môi giới Kafka

  • Cụm tia lửa


Bạn sẽ học về những điều sau:

Thiết kế đường ống

Sự kết hợp của nhiều công cụ để lựa chọn nhằm xây dựng đường ống dữ liệu thời gian thực.

Để thực hành, chúng ta sẽ hiểu và triển khai luồng dữ liệu của Kafka & Spark.

CI/CD: Hành động Github + Triển khai mã

CI/CD là nền tảng cơ bản nhất.

Chúng tôi sử dụng kết hợp Actions + Code Deploy để kích hoạt triển khai tự động sau khi liên kết git cục bộ → Github Repository.

Giao diện người dùng web Kafka

Tìm hiểu cách quản lý Kafka dễ dàng bằng UI dành cho Apache Kafka.

Prometheus + Grafana

Giám sát đường ống đang là xu hướng.

Tìm hiểu cách giám sát Kafka bằng Prometheus + Grafana và cách giám sát LAG trong Spark Streaming.

Nguồn Kafka + Spark Streaming

Chúng tôi sẽ triển khai một đường ống thực tế bằng cách kết hợp Kafka + Spark Streaming và trực quan hóa bảng điều khiển dựa trên đường ống đó.

AWS Athena

Dịch vụ AWS Athena là dịch vụ truy vấn không cần máy chủ. Hãy sử dụng dịch vụ này để trực tiếp kiểm tra kết quả xử lý của Spark Streaming.

Bảng điều khiển Python

Sử dụng đường ống dữ liệu thời gian thực được triển khai để trực quan hóa nó bằng bảng thông tin và hiểu được luồng dữ liệu.

Kiểm tra tính khả dụng

Chúng tôi sẽ triển khai một kiến ​​trúc mạnh mẽ và thực hiện các bài kiểm tra tính khả dụng bằng cách triển khai một kiến ​​trúc thực tế nhất có thể. Hiểu và xác minh tính khả dụng của Kafka, Spark và Yarn Clusters.

Tự động hóa thiết lập Infra bằng Ansible

Chẳng phải có rất nhiều việc phải làm để làm được tất cả những điều này sao?

Có, có rất nhiều.

Có rất nhiều thư viện cần cài đặt và rất nhiều thứ cần cấu hình. Nếu một thứ không phù hợp, lỗi sẽ xảy ra 🤬

Nhưng bạn chỉ cần tập trung vào phần quan trọng: triển khai đường ống thời gian thực.

Cấu hình cơ sở hạ tầng và nhiều thiết lập khác nhau được tự động hóa thông qua các tập lệnh Ansible được chuẩn bị sẵn.

Bạn có thể xem trước Ansible Script tại địa chỉ github bên dưới.

https://github.com/hjkim-sun/datalake-ansible-playbook-season1


Bạn có thể dễ dàng tiến hành quá trình thiết lập bằng cách sao chép nội dung của kho lưu trữ github ở trên.

🚨 Hãy lưu ý trước khi thực hành!

Kafka Client (Producer/Consumer) được viết bằng Python .


Có một số loại Thư viện Python Kafka, nhưng chúng ta sẽ sử dụng Thư viện Confluent Kafka, có hiệu suất tốt nhất. Confluent Kafka là một công cụ đảm bảo hiệu suất cao, giống như Java, và bạn sẽ học cách viết Producer/Consumer bằng Python.


Ngôn ngữ Spark cũng được viết bằng Python .


Khi viết các ứng dụng Spark, ngôn ngữ có hiệu suất cao nhất là Scala. Tuy nhiên, chắc chắn là rất khó khăn khi phải học riêng ngôn ngữ Scala cho Spark. Ngôn ngữ này không phổ biến bằng ngôn ngữ Python và có tương đối ít thư viện liên quan đến học sâu/AI. Do đó , trong lĩnh vực này, các chương trình Spark thường được phát triển bằng Python. Đặc biệt khi cân nhắc tích hợp học sâu/AI, viết bằng Python có thể là một giải pháp thay thế tuyệt vời.

🚨 Chi phí đào tạo ước tính của AWS

Khóa đào tạo sẽ được tiến hành trên AWS Cloud và chi phí đào tạo sẽ được tính riêng.


Khi sử dụng khoảng 40 giờ một tháng, AWS có giá khoảng 40.000 won. (Dựa trên tỷ giá hối đoái 1.430)

Vì hầu hết chi phí phòng thí nghiệm đến từ EC2 (dịch vụ điện toán), bạn phải dừng phiên bản máy chủ sau khi phòng thí nghiệm & bài tập. Tuy nhiên, các chi phí khác (khối lượng (EBS) và EIP) được gắn vào phiên bản máy chủ sẽ phát sinh chi phí ngay cả khi phiên bản máy chủ bị dừng. Do đó, bạn hoàn thành khóa học càng nhanh thì chi phí phòng thí nghiệm AWS của bạn sẽ càng thấp.


Ngay cả khi tất cả máy chủ ngừng hoạt động, vẫn phát sinh chi phí dung lượng máy chủ khoảng 30.000 won mỗi tháng.

Do đó, ngay cả khi bạn sử dụng trong cùng 40 giờ, nếu bạn sử dụng trong hai tháng thay vì một tháng, bạn sẽ phải trả thêm 30.000 won, nâng tổng phí AWS lên khoảng 70.000 won. Do đó, chúng tôi khuyên bạn nên hoàn thành khóa đào tạo càng sớm càng tốt.

Bạn sẽ không học được những điều sau:


  1. Phát triển Producer/Consumer dựa trên Java

  2. Kafka Connect (Dự kiến ​​là Phần 2)

  3. Schema Registry (Đã lên kế hoạch cho Phần 2)

  4. Luồng Kafka

  5. KSQL



  1. Học máy và học sâu

  2. Định dạng bảng mở (ví dụ: tảng băng trôi) (Đã lên kế hoạch cho Phần 2)

  3. Ứng dụng dựa trên Scala (chỉ được viết bằng pyspark)

Giao tiếp

Do bản chất của khóa học bao gồm nhiều công cụ nên việc trao đổi thông tin qua bảng Hỏi & Đáp có thể gặp khó khăn khi bạn có thắc mắc hoặc xảy ra lỗi không mong muốn.

(Dựa trên kinh nghiệm của tôi, sau khi một câu hỏi được đăng ký, có vẻ như phải mất khoảng 3-4 ngày để tôi trả lời và xác nhận lại)


Để giảm sự bất tiện trong giao tiếp này và cung cấp dịch vụ chất lượng cao cho sinh viên cho đến cuối khóa học, chúng tôi đang vận hành kênh Discord.

https://discord.gg/dfF2TmxD


Có thể là về bài giảng hoặc không. Có thể là về những điều tầm thường.

Đây là nơi giao tiếp thuận tiện nên hãy thoải mái bước vào.

Những điều cần lưu ý trước khi tham gia lớp học

Môi trường thực hành

  • [OS] Hầu hết các khóa đào tạo thực hành đều được thực hiện trên AWS. Do đó, bạn có thể tham gia khóa học bất kể bạn sử dụng Windows hay MacOS .

  • [Hiệu suất] Không yêu cầu thông số kỹ thuật CPU/Bộ nhớ cao. Bạn có thể học khóa học bằng máy tính xách tay/máy tính để bàn thông dụng.

  • [Khác] Bạn có thể tham gia khóa học ở bất kỳ nơi nào có kết nối internet. Bạn cũng sẽ cần một thẻ tín dụng có thể thanh toán chi phí AWS Cloud.

Tài liệu học tập

  • Nội dung này được trình bày trong bài giảng 1-2.


Điều kiện tiên quyết bắt buộc

  1. Python cơ bản


    Cấu trúc dữ liệu cơ bản và ngữ pháp cơ bản như if/for/while. Và khả năng viết hàm.

  2. Các lệnh cơ bản của Linux


    Hầu hết các tác vụ Infra được thực hiện thông qua công cụ tự động hóa Ansible. Tuy nhiên, bạn phải biết các lệnh Linux cơ bản để tham gia khóa học. (trình soạn thảo vi, các lệnh cơ bản như cd/mv/rm)

  3. SQL


    Sẽ dễ dàng hơn nhiều nếu bạn biết kiến ​​thức SQL cơ bản (SELECT, WHERE, JOIN, GROUP BY, ORDER BY, v.v.).
    (Không có SQL khó)

Kiến thức trước được khuyến nghị

  1. thùng chứa Docker
    Thiết lập công cụ giám sát bằng cách sử dụng container. Biết cách container hoạt động sẽ giúp ích.

  2. git
    Chúng ta sẽ sử dụng git cho CI/CD và triển khai trực tiếp code. Tôi sẽ giải thích từng bước sử dụng, nhưng sẽ tốt hơn nếu bạn biết.

  3. Hiểu về các lớp Python
    Hầu hết các chương trình Python được thực hành đều được cấu trúc thông qua cấu trúc lớp. Do đó, sẽ dễ thực hành nếu bạn hiểu về lớp và hướng đối tượng.
    (Bạn không biết cũng không sao. Tôi sẽ giải thích mọi thứ.)

Khuyến nghị cho
những người này!

Khóa học này dành cho ai?

  • Ai muốn học Kafka & Spark

  • Người muốn học triển khai pipeline thời gian thực

  • Người cần phát triển nhiều kiến thức và kỹ năng của một Kỹ sư dữ liệu.

Cần biết trước khi bắt đầu?

  • Khái niệm cơ bản về Python

  • Kiến thức cơ bản về SQL (mức độ Filter, GroupBy, OrderBy)

  • Sử dụng lệnh Linux cơ bản được

Xin chào
Đây là

977

Học viên

44

Đánh giá

170

Trả lời

4.9

Xếp hạng

2

Các khóa học

안녕하세요.

데이터 & AI 분야에서 일하고 있는 15년차 현직자입니다.

정보관리기술사를 취득한 이후 지금까지 얻은 지식을 많은 사람들에게 공유하고자 컨텐츠 제작하고 있습니다.

반갑습니다. :)

Contact: hjkim_sun@naver.com

Chương trình giảng dạy

Tất cả

113 bài giảng ∙ (28giờ 23phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

8 đánh giá

5.0

8 đánh giá

  • pcy78054921님의 프로필 이미지
    pcy78054921

    Đánh giá 1

    Đánh giá trung bình 5.0

    Đã chỉnh sửa

    5

    100% đã tham gia

    It was a remarkably high-quality lecture.. Simply moving. Usually when taking lectures, you often face situations like 'Why isn't it working when I followed exactly?', and there would be quite a few such cases, but I completed this smoothly without any of that. When choosing a lecture, I first look at the curriculum and compare the price and duration. Until now, there have been many lectures that were too superficial compared to the price, But I guarantee that if you take Hyunjin's kafka&spark lecture, you can produce sufficiently high-quality results in future projects as well! I learned a lot. Thank you! (When do you think Season 2 will be released..?)

    • hyunjinkim
      Giảng viên

      Hello, Chan-young! Thank you for your touching review. As you know well after completing the course, I was quite concerned that it might not be easy to follow along, as the content includes a variety of topics from infrastructure setup and nginx configuration to docker setup and availability testing, rather than simply explaining functions. That's why I standardized as much as possible using ansible-playbook, and even after finishing the lecture recording, I followed the lecture myself to check if there were any parts that weren't working correctly. And in case someone had trouble, I even prepared a Discord room for smooth communication. In the end, it took quite a long time to release the lecture, but I tried my best to create a lecture with high completeness. Knowing that Chan-young recognized my efforts makes all the hard work feel like it's washed away ^-^ I am even more grateful.. Also, before starting Season 2, I'm preparing a lecture related to generative AI first, so it might be a bit later. Still, I'll do my best to prepare it!

  • boin님의 프로필 이미지
    boin

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    12% đã tham gia

    I haven't finished watching all the lectures yet, but just from the AWS environment configuration section, I can already guess the quality of the entire course.. Personally, even if you're not in the data field, this is a lecture that would be quite helpful for those working in architecture as well. I'll work hard to complete the entire course!!

    • spakid4235님의 프로필 이미지
      spakid4235

      Đánh giá 1

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      It was incredibly helpful, and I dare say it's a perfect lecture!! Even though I have experience building with Kafka and Spark, there were quite a few parts I didn't understand during the build. You scratched all the itchy parts, just like a public bath scrubber. Your pronunciation was excellent, and the explanations you gave, pinpointing only the key points, were very easy to understand. Unlike lectures that are only theory, you made it possible to follow along with the practical exercises, and you told us in advance about potential problem areas, so I was able to do the exercises very comfortably. It's incomparable to other lectures without practical exercises; I understood many more parts by doing it myself, and I gained confidence that I could do it too. The quality of the lecture was excellent, to the extent that it can be used immediately in actual projects👍 I hope a follow-up lecture comes out soon, and I also plan to listen to the Airflow lecture filmed by 현진님! Thank you for the good material. You worked hard.

      • hyunjinkim
        Giảng viên

        Hello Hyun-jun! Thank you for the inspiring course review. I'm very gratified that I was able to help you so much, even though you already have experience with kafka & spark. There's a significant difference between experiencing Kafka and Spark on a single node versus in a cluster environment. Therefore, thinking that teaching on a single node would only scratch the surface, I boldly configured a cluster to ensure high availability for the practice environment. As a result, the configuration complexity increases a bit, but I put a lot of effort into ensuring that students could set up the same environment as seamlessly as possible using ansible. In particular, I included a lot of know-how for solving problems often encountered in actual projects, so I believe it was very helpful for you as well, Hyun-jun. Anyway, thank you for leaving such a great review :) 👍

    • jongphago님의 프로필 이미지
      jongphago

      Đánh giá 3

      Đánh giá trung bình 4.7

      5

      100% đã tham gia

      It's a perfect, excellent lecture. I'll also check Airflow when I have time! Also awaiting next lectures!

      • hyunjinkim
        Giảng viên

        jongphago-nim! You finished 100%! Thank you for your kind course review :) I wonder if the questions you posted were well resolved. Anyway, I hope it was very helpful 👍

    • choiiljoo4342님의 프로필 이미지
      choiiljoo4342

      Đánh giá 10

      Đánh giá trung bình 4.9

      5

      30% đã tham gia

      Khóa học khác của hyunjinkim

      Hãy khám phá các khóa học khác của giảng viên!

      Khóa học tương tự

      Khám phá các khóa học khác trong cùng lĩnh vực!