강의

멘토링

로드맵

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.

(4.9) 18 đánh giá

181 học viên

  • hyunjinkim
실시간
데이터처리
데이터파이프라인
Kafka
Apache Spark
pyspark
data-lake
kakao-tech

Đánh giá từ những học viên đầu tiên

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

Pipeline dữ liệu thời gian thực, tại sao phải học?


Việc xây dựng pipeline dữ liệu thời gian thực để hỗ trợ phân tích nhanh chóng và ra quyết định không phải là lựa chọn mà là điều bắt buộc.

  • Marketing cá nhân hóa & đề xuất theo thời gian thực

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

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



Đặc biệt trong thời đại ngày nay khi AI đã trở thành nền tảng, tồn tại vô số trường hợp sử dụng AI cho gợi ý thời gian thực, phát hiện, dịch thuật, v.v., và để triển khai những kiến trúc như vậy, ngày càng có nhiều yêu cầu về pipeline dữ liệu thời gian thực.


Vì vậy tôi đã chuẩn bị.

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

Kafka & Spark được chuẩn bị từ cơ bản một cách từng bước, vượt qua việc triển khai pipeline để đến với phương pháp thiết kế từ góc độ kiến trúc.

Đặc điểm của khóa học này

📌 Cấu hình đơn lẻ trên máy cục bộ thì không! Xu hướng chính là cloud. AWS Cloud를 활용합니다.

📌 CI/CD là cơ bản rồi phải không? Chúng ta sẽ cấu hình CI/CD thông qua GitHub Actions và AWS Code Deploy.

📌 Từ cơ bản một cách từ từ, nhưng thông qua thực hành và bài tập để giúp bạn có thể nội hóa nội dung bài giảng.

📌 Máy chủ cấu hình clustertừ việc thiết lập pipeline thời gian thực và kiểm tra tính khả dụngđến cấu hình All in One

👍Tôi khuyến nghị cho những người như thế này

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

Tôi muốn tìm hiểu về DataLake.
Dành cho những ai muốn học cách triển khai DataLake được xây dựng trên Cloud

Tôi muốn phát triển thành một architect.
Dành cho những ai tò mò về việc triển khai kiến trúc vững chắc có khả năng xử lý khối lượng lớn từ thiết kế hạ tầng đến cấp độ code

Sau khi hoàn thành khóa học

  • Hiểu được nguyên lý cơ bản về dịch vụ Kafka Broker, hiểu về đảm bảo tính khả dụng và có thể xử lý dịch vụ Broker dựa trên những kiến thức này.

  • Hiểu được nguyên lý cơ bản và các tùy chọn nâng cao của Kafka Producer/Consumer, đồng thời thông qua việc hiểu Trade-off giữa hiệu suất và tính nhất quán trong môi trường dung lượng lớn, bạn sẽ có thể viết được các Application vững chắc.

  • Bạn sẽ có thể hiểu các điều kiện để Spark phát huy hiệu suất và viết Application dựa trên các kỹ thuật có thể tối ưu hóa hiệu suất.

  • Bạn có thể hiểu được tính đa dạng của pipeline thông qua việc liên kết giữa các dịch vụ như AWS S3, Glue, Athena và dịch vụ Spark.

Vậy, nội dung sẽ đề cập đến những gì?


  1. Bây giờ xu hướng chính là cloud. Chúng ta sẽ sử dụng máy chủ EC2 để cấu hình cluster giống như trong thực tế.

  2. Kafka & Spark sẽ được học từ cơ bản một cách từ từ.

  3. Học các khái niệm cơ bản về Datalake on AWS thông qua các dịch vụ S3, Glue, Athena của AWS.



Pipeline có thể được phân chia từ thu thập đến sử dụng.

Chúng ta cần hiểu rõ ở mỗi bước sử dụng công cụ nào, sử dụng như thế nào và chúng liên kết với nhau ra sao.

Do đó, chúng ta không chỉ dừng lại ở việc học Kafka và Spark một cách đơn thuần.

Cuối cùng, hãy xây dựng pipeline thực tế

Trong quá trình đó, bạn sẽ học các phương pháp như CI/CD, kiểm thử tính khả dụng, giải quyết vấn đề và cải thiện hiệu suất.

Chương trình học

  1. Khái niệm Data Lake


  • Lambda

  • Kappa Architecture

  • Thiết kế pipeline

  1. Kafka cơ bản


  • Broker

  • Kafka Producer

  • Kafka Consumer

  1. Giám sát

  • UI For Apache Kafka

  • Prometheus

  • Grafana

  1. Cơ bản về Apache Spark

  • Spark Cluster

  • Spark SQL

  • Spark Streaming

  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

  • Khắc phục sự cố

  • Spark Monitoring

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

  • Zookeeper Cluster

  • Kafka Broker

  • Spark Cluster


Bạn sẽ học những nội dung như thế này.

Thiết kế pipeline

Các kết hợp công cụ có thể lựa chọn để xây dựng pipeline dữ liệu thời gian thực.

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

CI/CD: Github Actions + Code Deploy

CI/CD là cơ bản trong số những điều cơ bản.

Kết nối git local → Github Repository và sử dụng kết hợp Actions + Code Deploy để có thể triển khai tự động.

Kafka Web UI

Học cách quản lý Kafka dễ dàng thông qua UI For Apache Kafka.

Prometheus + Grafana

Xu hướng pipeline giám sát.

Học cách giám sát Kafka thông qua kết hợp Prometheus + Grafana và tiến xa hơn là phương pháp giám sát LAG của Spark Streaming.

Kafka Source + Spark Streaming

Triển khai pipeline thực tế thông qua kết hợp Kafka + Spark Streaming và dựa trên đó để trực quan hóa Dashboard.

AWS Athena

AWS Athena là một dịch vụ truy vấn serverless. Chúng ta sẽ sử dụng dịch vụ này để trực tiếp kiểm tra kết quả xử lý của Spark Streaming.

Python Dashboard

Sử dụng pipeline dữ liệu thời gian thực đã triển khai để trực quan hóa bằng Dashboard và hiểu luồng hoạt động của pipeline.

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

Triển khai kiến trúc vững chắc thông qua việc thực hiện kiến trúc giống thực tế nhất có thể và tiến hành kiểm tra tính khả dụng. Hiểu và xác nhận tính khả dụng của Kafka, Spark, Yarn Cluster.

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

Bạn có nghĩ rằng có quá nhiều việc phải làm để tạo ra tất cả những thứ này không?

Đúng vậy. 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 phải cấu hình. Nếu có một thứ gì đó không khớp thì sẽ báo lỗi 🤬

Nhưng các bạn chỉ cần chú ý đến nội dung quan trọng là triển khai pipeline thời gian thực.

Việc cấu hình Infra và các thiết lập khác nhau sẽ được tự động hóa thông qua Ansible Script đã được chuẩn bị sẵn.

Ansible Script có thể xem trước tại địa chỉ github dưới đây.

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


Các bạn sẽ clone nội dung của github repository ở trên để dễ dàng tiến hành quá trình thiết lập.

🚨Vui lòng tham khảo trước khi thực hành!

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


Python Kafka Library có nhiều loại khác nhau nhưng trong số đó chúng ta sẽ sử dụng Confluent Kafka Library có hiệu suất tốt nhất. Confluent Kafka là công cụ đảm bảo hiệu suất cao không kém gì Java, chúng ta sẽ học cách viết Producer/Consumer thông qua Python.


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


Khi viết Spark Application, ngôn ngữ có hiệu suất tốt nhất là Scala. Tuy nhiên, việc học riêng ngôn ngữ Scala cho Spark chắc chắn là một gánh nặng. Nó có nhược điểm là không phổ biến bằng ngôn ngữ Python và các thư viện liên quan đến deep learning/AI cũng tương đối ít hơn. Vì vậy trong thực tế, nhiều trường hợp sử dụng Python để phát triển chương trình Spark. Đặc biệt nếu xem xét việc tích hợp deep learning/AI, việc viết bằng ngôn ngữ Python có thể là một giải pháp thay thế tuyệt vời.

🚨Chi phí thực hành AWS dự kiến

Thực hành được tiến hành trên AWS Cloud và sẽ phát sinh chi phí thực hành riêng biệt.


✔ Trong một tháng sử dụng khoảng 40 giờ thì chi phí AWS phát sinh khoảng 40.000 won. (Tỷ giá 1.430 làm chuẩn)

Chi phí thực hành chủ yếu phát sinh từ EC2 (dịch vụ điện toán) nên sau khi thực hành & làm bài tập, bạn nhất định phải dừng server instance. Tuy nhiên, các chi phí khác (volume (EBS) và EIP được kết nối với server instance) vẫn phát sinh chi phí ngay cả khi bạn dừng server instance. Do đó, càng hoàn thành khóa học nhanh thì chi phí thực hành AWS càng giảm.


✔ Ngay cả khi tắt tất cả các máy chủ, chi phí cho volume máy chủ vẫn phát sinh khoảng 30,000 won mỗi tháng.

Do đó, ngay cả khi sử dụng cùng 40 giờ nhưng nếu bạn sử dụng trong hai tháng thay vì một tháng thì sẽ phát sinh thêm 30,000 won, tổng cộng khoảng 70,000 won phí AWS. Vì vậy, chúng tôi khuyến nghị bạn nên hoàn thành khóa học càng sớm càng tốt.

Nội dung dưới đây sẽ không được học.


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

  2. Kafka Connect (Dự kiến Season2)

  3. Schema Registry (Dự kiến Season2)

  4. Kafka Streams

  5. KSQL



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

  2. Open Table Format (ví dụ: iceberg) (Dự kiến Season2)

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

Giao tiếp

Do đặc thù của khóa học có nhiều tác vụ liên kết với nhiều công cụ khác nhau, trong trường hợp có nội dung thắc mắc hoặc phát sinh lỗi không mong muốn thì việc giao tiếp chỉ thông qua bảng Q&A có thể gặp khó khăn.

(Theo kinh nghiệm, sau khi đăng câu hỏi, tôi sẽ trả lời và việc xác nhận lại mất khoảng 3~4 ngày)


Để giảm bớt những bất tiện trong giao tiếp này và cung cấp dịch vụ chất lượng cao đến cuối khóa học cho các bạn đã đăng ký, chúng tôi muốn vận hành kênh Discord.

https://discord.gg/eTcYzMBxZm


Nội dung về bài giảng cũng được, không phải cũng không sao. Nói chuyện những điều nhỏ nhặt cũng được.

Đây là nơi để giao tiếp thuận lợi nên hãy thoải mái tham gia nhé

Những lưu ý trước khi học

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

  • [OS] Hầu hết các bài thực hành sẽ được thực hiện trên AWS. Do đó, bạn có thể học khóa học này bất kể sử dụng Window/MacOS.

  • [Hiệu năng]Không yêu cầu thông số CPU/Memory cao. Laptop/desktop thông thường là đủ để có thể học tập.

  • [Khác] Có thể học tập bất cứ đâu miễn là có kết nối internet. Và cần có thẻ tín dụng để có thể thanh toán chi phí AWS Cloud.

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

  • Được cung cấp trong bài giảng 1-2.


Kiến thức cần thiết phải biết trước

  1. Kiến thức cơ bản về Python


    Cấu trúc dữ liệu cơ bản và cú pháp cơ bản như if/for/while. Và trình độ có thể viết được các hàm

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


    Hầu hết các công việc Infra được thực hiện thông qua công cụ tự động hóa Ansible. Tuy nhiên, bạn cần biết các lệnh cơ bản của Linux mới có thể 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


    Kiến thức SQL cơ bản (SELECT, WHERE, JOIN, GROUP BY, ORDER BY, v.v.) sẽ giúp bạn theo dõi dễ dàng hơn rất nhiều.
    (Không có SQL khó)

Kiến thức nền tảng được khuyến nghị

  1. Container Docker
    Thiết lập các công cụ giám sát bằng cách sử dụng container. Sẽ hữu ích nếu bạn hiểu nguyên lý hoạt động của container.

  2. git
    Để thực hiện CI/CD, chúng ta sẽ sử dụng git để tiến hành triển khai code trực tiếp. Tôi sẽ giải thích từng bước cách sử dụng một cách chi tiết, nhưng nếu bạn đã biết trước thì sẽ càng tốt hơn.

  3. Hiểu về Class trong 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 Class. Do đó, nếu có hiểu biết về Class và lập trình hướng đối tượng thì sẽ dễ dàng hơn khi thực hành
    (Không biết cũng không sao. Tôi sẽ giải thích tất cả)

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à

1,100

Học viên

66

Đánh giá

198

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ả

18 đánh giá

4.9

18 đánh giá

  • jusungpark님의 프로필 이미지
    jusungpark

    Đánh giá 17

    Đánh giá trung bình 4.9

    5

    100% đã tham gia

    Tôi đã học được rất nhiều từ chương trình giảng dạy và nội dung được tổ chức tốt hơn cả mong đợi. Tôi cảm nhận được rằng bạn đã rất tỉ mỉ trong việc tạo ra khóa học này Tôi sẽ chờ đợi các khóa học tiếp theo Cảm ơn bạn

    • hyunjinkim
      Giảng viên

      Cảm ơn bạn 램쥐뱅 về đánh giá khóa học. Khi tôi tạo ra chương trình học này, tôi cũng đã suy nghĩ rất nhiều về cách có thể dạy từ cơ bản một cách vững chắc và kết nối từ Kafka đến spark. Nhờ vậy mà từ việc lên kế hoạch đến hoàn thành khóa học đã mất 1 năm, nhưng khi thấy bạn hiểu và đánh giá cao như vậy thì tôi cảm thấy rất tự hào ^^ Cảm ơn bạn. Khóa học tiếp theo mà tôi đang chuẩn bị không phải là season2 nhưng tôi sẽ cấu trúc với nội dung chất lượng để bạn không phải hối tiếc 😀

  • ㅈ님의 프로필 이미지

    Đánh giá 1

    Đánh giá trung bình 5.0

    Đã chỉnh sửa

    5

    10% đã tham gia

    Thầy Hyunjin đáng tin cậy. Rất khuyến khích. Tôi biết đến thầy từ khóa học airflow và có nhiều điểm khác biệt so với các khóa học khác. Từ khái niệm đến thiết kế kiến trúc, việc thầy giải thích lý do sử dụng và nguyên lý rất hay. Thực hành cũng rất thoải mái. Thầy luôn trả lời các câu hỏi một cách Kind. Mặc dù mới bắt đầu học nhưng tôi sẽ hoàn thành khóa học~ Thời tiết nóng, thầy chăm sóc sức khỏe nhé.

    • hyunjinkim
      Giảng viên

      Xin chào anh/chị 역시자네야! Cảm ơn anh/chị rất nhiều vì đã tiếp tục theo dõi sau khóa học airflow! Khi tôi tự học một thứ gì đó, nếu chỉ học cách sử dụng một cách hời hợt mà không nắm được nguyên lý thì tôi sẽ nhanh chóng quên và không hiểu được. Tôi nghĩ các bạn khác cũng vậy nên để truyền đạt nguyên lý mà tôi đã hiểu được, tôi thường dành nhiều thời gian cho việc giảng dạy. Vì vậy tôi phải làm ppt và cũng đang làm bài tập nên hơi vất vả nhưng cảm ơn vì anh/chị đã ghi nhận 😊 Tôi sẽ chuẩn bị tốt cho bài giảng tiếp theo 💪

  • pcy78054921님의 프로필 이미지
    pcy78054921

    Đánh giá 1

    Đánh giá trung bình 5.0

    Đã chỉnh sửa

    5

    100% đã tham gia

    Đây là một khóa học có chất lượng hoàn thiện rất cao.. Thật sự rất cảm động. Thường khi nghe giảng, không ít lần gặp tình huống 'tại sao làm theo y hệt mà lại không được?', nhưng tôi đã hoàn thành khóa học một cách suôn sẻ mà không gặp phải điều đó. Khi chọn khóa học, tôi xem giáo trình đầu tiên, rồi so sánh giá cả và thời lượng khóa học. Trong thời gian qua, có quá nhiều khóa học chỉ như cưỡi ngựa xem hoa so với giá, nhưng nếu nghe khóa học kafka&spark của Hyun-jin, tôi dám chắc có thể tạo ra kết quả có tính hoàn thiện cao ngay cả trong các dự án sau này! Tôi đã học được rất nhiều, cảm ơn! (Mùa 2 bao giờ sẽ ra mắt nhỉ..?)

    • hyunjinkim
      Giảng viên

      Xin chào Chan-yeong nim! Cảm ơn bạn rất nhiều vì lời đánh giá đầy xúc động. Bạn đã hoàn thành khóa học nên chắc chắn hiểu rõ, nhưng nội dung khóa học bao gồm nhiều kiến thức đa dạng từ cấu hình hạ tầng, cấu hình Nginx, cài đặt Docker, đến kiểm thử tính sẵn sàng, thay vì chỉ đơn thuần hướng dẫn các chức năng cơ bản, nên tôi đã rất lo lắng rằng nó sẽ không dễ dàng. Vì vậy, tôi đã chuẩn hóa hết mức có thể bằng ansible-playbook và ngay cả sau khi hoàn thành việc quay bài giảng, tôi cũng đã tự tay thực hành theo bài giảng để kiểm tra xem có chỗ nào không chạy đúng hay không. Và để đề phòng cho những ai gặp khó khăn, tôi còn chuẩn bị cả phòng Discord để tiện giao tiếp. Cuối cùng, dù mất khá nhiều thời gian để đăng tải khóa học, nhưng tôi đã nỗ lực để tạo ra một khóa học hoàn chỉnh nhất có thể. Cảm giác như những khó khăn trước đây đã tan biến khi Chan-yeong nim đã nhận ra công sức đó ^-^ Tôi còn phải cảm ơn bạn nhiều hơn.. Và về Season 2, có lẽ sẽ hơi muộn hơn một chút vì tôi đang chuẩn bị một khóa học liên quan đến AI tạo sinh trước khi bắt đầu. Dù vậy, tôi sẽ cố gắng hết sức để chuẩn bị !

  • hbin0529님의 프로필 이미지
    hbin0529

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    30% đã tham gia

    • seungilpark5471님의 프로필 이미지
      seungilpark5471

      Đánh giá 4

      Đánh giá trung bình 5.0

      5

      60% đã tham gia

      2.784.587 ₫

      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!