강의

멘토링

커뮤니티

BEST
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) 19 đánh giá

234 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

Bạn sẽ nhận được điều này sau khi học.

  • 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,230

Học viên

78

Đánh giá

217

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ả

19 đánh giá

4.9

19 đánh giá

  • 램쥐뱅님의 프로필 이미지
    램쥐뱅

    Đánh giá 19

    Đánh giá trung bình 4.7

    5

    100% đã tham gia

    기대 이상으로 잘 정리된 커리큘럼과 내용에 많은 것을 배우고 갑니다. 꼼꼼하게 강의를 만들어 주셨다는 느낌을 많이 받았습니다 후속 강의가 기다리고 있겠습니다 감사합니다

    • 김현진
      Giảng viên

      램쥐뱅님 수강평 감사합니다. 저도 커리큘럼을 만들면서 어떻게 하면 기초부터 탄탄히 알려드리면서 Kafka 부터 spark 까지 연결할 수 있을지 고민이 많았어요. 덕분에 강의 기획부터 완성까지 1년이 걸렸지만 이렇게 알아봐주셔서 뿌듯합니다 ^^ 감사합니다. 지금 준비하는 후속 강의는 season2는 아니지만 알찬 내용으로 구성해서 후회하지 않게 진행해보겠습니다 😀

  • 역시자네야님의 프로필 이미지
    역시자네야

    Đánh giá 1

    Đánh giá trung bình 5.0

    Đã chỉnh sửa

    5

    10% đã tham gia

    믿고 보는 현진 선생님. 강추합니다. airflow 강의로부터 알게 되었는데 다른 강의들과는 다른 차별점이 많습니다. 개념부터 아키 설계까지, 사용 이유와 원리를 설명해주시는게 좋았어요. 실습도 편-안 그자체입니다. 답변까지 항상 친절하게 달아주십니다 아직 수강 초기이지만 완강해보겠습니다~ 날씨가 더운데, 건강 잘 챙기세요.

    • 김현진
      Giảng viên

      안녕하세요 역시자네야님 airflow에 이어서 찾아주셔서 너무 감사드려요! 저는 스스로 뭔가를 배울 때 피상적으로 사용법만 익히고 원리를 파악하지 않으면 금방 까먹고 이해가 가질 않더라구요. 다른 분들도 그럴거라 생각해서 내가 이해한 원리를 전달하기 위해 강의 시간을 많이 할애하는 편입니다. 그래서 ppt도 만들어야 하고 과제도 만들고 있어서 좀 힘들지만 덕분에 알아봐주셔서 감사드려요 :) 다음 강의도 잘 준비해볼께요 💪

  • :찬영님의 프로필 이미지
    :찬영

    Đánh giá 1

    Đánh giá trung bình 5.0

    Đã chỉnh sửa

    5

    100% đã tham gia

    굉장히 완성도 높은 강의였습니다.. 감동 그 자체 보통 강의듣다 보면 똑같이 따라 했는데 왜 안돼? 이런 상황 적지 않을텐데, 그런 거 없이 스무스하게 완강했습니다. 전 강의 선택함에 있어 제일 먼저 커리큘럼을 보고, 가격과 강의시간을 비교해봅니다. 그동안 가격에 비해 너무 수박 겉핥기 식의 강의들이 많았는데, 현진님의 kafka&spark 강의를 듣는다면,, 추후 프로젝트에서도 충분히 완성도 높은 결과물 뽑을 수 있다고 장담합니다! 많이 배웠습니다 감사합니다! (시즌 2는 언제쯤 나올라나요..?)

    • 김현진
      Giảng viên

      안녕하세요 찬영님! 감동스러운 수강평 감사드립니다. 완강하셔서 잘 아시겠지만 내용이 아무래도 단순 기능을 알려주기보다 인프라 구성부터 nginx 구성, docker 셋팅, 가용성테스트까지 다양한 내용을 포함하다보니 쉽게 진행이 되지 않을까 염려를 많이 했습니다. 그래서 ansible-playbook으로 최대한 표준화하고 강의 촬영을 마친 이후에도 직접 강의를 따라 해보면서 혹시 잘 되지 않는 부분이 있지 않은지 직접 확인도 했습니다. 그리고 혹시나 안되시는 분들을 위해 원활한 의사소통 대비 디스코드 방까지 준비했습니다. 결국 강의를 올리기까지 꽤 많은 시간이 걸렸지만 최대한 완성도 있는 강의를 만들고자 노력했습니다. 찬영님이 알아봐주신 것 같아 그간의 고생이 씻겨내려가는 것 같습니다 ^-^ 제가 더 감사드립니다.. 그리고 시즌 2는 시작하기 전에 생성형 AI 관련하여 강의를 먼저 하나 준비하고 있어서 조금 더 늦을 수도 있을 것 같습니다. 그래도 힘내서 준비해볼께요 !

  • 황준하님의 프로필 이미지
    황준하

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    60% đã tham gia

    • 형빈님의 프로필 이미지
      형빈

      Đánh giá 1

      Đánh giá trung bình 5.0

      5

      30% đã tham gia

      2.777.527 ₫

      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!