Xử lý dữ liệu trong thời gian thực với Apache Kafka

Поделиться
HTML-код
  • Опубликовано: 24 янв 2025

Комментарии • 14

  • @taitrinhnguyen339
    @taitrinhnguyen339 10 дней назад

    Em vô tình xem được clip này của anh, phải nói là quá hay, không chỉ giúp em có cái nhìn tổng quan về kafka mà còn biết thêm nhiều khái niệm khác, cảm ơn anh!

    • @nhamhung
      @nhamhung  10 дней назад

      @@taitrinhnguyen339 cảm ơn em nhiều nha! Hi vọng sắp tới có thể làm thêm nhiều video có ích cho mn tương tự 🙆🏻‍♂️

  • @giabinhhoang2351
    @giabinhhoang2351 6 месяцев назад

    kafka có dành cho transform data và chuyển dữ liệu từ db này sang db khác ko a. Em mới tìm hiểu nên chưa rõ lắm. Nhưng e nghĩ nó ko phải là công cụ dành cho việc xây data pipelines

    • @nhamhung
      @nhamhung  6 месяцев назад +2

      Bản thân Kafka thường sẽ là Message Broker để Decouple các ứng dụng khác nhau nếu mình dùng kiến trúc Microservices, hoặc là trong công ty nếu các phòng ban khác nhau muốn lấy dữ liệu từ nhau một cách flexible thay vì trực tiếp gọi API của nhau chẳng hạn. Ngoài ra nếu em cần các pipeline để xử lý dữ liệu đến từ các nguồn real-time chẳng hạn như là sensors, logs, events, ... thì có thể set up Kafka để chứa dữ liệu được stream vào từ các nguồn Producers kia và sau đó viết các ứng dụng Consumers xử lý data này dùng Kafka Streams/Spark Streaming/Flink để transform và chứa vào Data Warehouse. Kafka cũng có thể dùng để Replicate Database bằng Change Data Capture (CDC). Cụ thể là tất cả những events như là Insert/Update/Delete từ source DB sẽ được stream để target DB xử lý tương ứng -> đảm bảo 2 DB có trạng thái giống nhau in real-time

    • @minhnhatle5234
      @minhnhatle5234 Месяц назад

      @@nhamhung Em chào anh, việc theo dõi dữ liệu CDC với Debezium trên kafka connect có giúp ích nhiều k anh, nó hay được sử dụng trong những dự án nào ạ

    • @nhamhung
      @nhamhung  Месяц назад

      @@minhnhatle5234 ầu anh nghĩ 1 ví dụ có thể là khi mình muốn giữ 2 cái Database A và B khác nhau in sync (kiểu A có dữ liệu gì thì mình muốn B cũng như vậy). Nếu không có CDC thì một cách đơn giản không quá hiệu quả là cứ mỗi interval chúng ta lại dùng 1 batch để export dữ liệu từ A -> import dữ liệu vào B. Hạn chế của cách trên là quá tốn kém khi size dữ liệu lớn và interval quá lâu. Thay vì thế, Debezium sẽ support CDC và export tất cả các insert/update/delete event lên database A vào Kafka chẳng hạn và các ứng dụng có thể consume event từ Kafka để chỉ update các phần dữ liệu bị ảnh hưởng trong database B. Cách này vừa real-time mà lại tốn ít tài nguyên hơn

  • @hieuqp
    @hieuqp 4 месяца назад

    kafka, rabbitmq, anh giải thích hai thằng này rõ hơn được không?
    Kafka là một data streaming hay một Message broker anh nhỉ?

    • @nhamhung
      @nhamhung  2 месяца назад +1

      Sorry anh miss cmt của em, rabbitmq thì anh chưa dùng nhưng Kafka là một message broker em ạ, nó sẽ cho producer gửi message vào một topic, lưu trữ lượng message đó trong 1 khoảng thời gian (7 ngày chẳng hạn) và nhiều consumer có thể cùng đọc dữ liệu ở topic đó miễn sao 2 bên cùng sử dụng một dạng data giống nhau (JSON chẳng hạn). Cái này sẽ decouple producer và consumer vì chúng nó có thể dùng ngôn ngữ gì cũng được chứ k communicate thẳng với nhau. Ngoài ra mỗi topic cũng chia partitions để em có thể scale consumer đọc dữ liệu in parallel cho nhanh hơn

  • @quyetleduy6440
    @quyetleduy6440 8 месяцев назад

    a ơi, a cho em xin file .md kia với ạ, em cảm ơn a

  • @vierriven1811
    @vierriven1811 Год назад

    anh có social media nào không ạ?

    • @nhamhung
      @nhamhung  Год назад +1

      FB của anh đây nha: facebook.com/nhamhhung/

    • @vierriven1811
      @vierriven1811 Год назад +1

      Anh accept em với nha em mới gửi request đó ạ

  • @GodX36999
    @GodX36999 6 месяцев назад

    Nếu thế doanh nghiệp có bị Kafka ăn cắp dữ liệu không

    • @nhamhung
      @nhamhung  6 месяцев назад

      Mình không quá rành về bảo mật để trả lời hoàn toàn nhưng thông thường, Kafka và Zookeeper là các phần mềm open-source mà doanh nghiệp sử dụng để quản lý một cụm máy tính của chính họ và cung cấp các tính năng streaming -> dữ liệu vẫn được kiểm soát bởi doanh nghiệp chứ không phải qua một bên thứ ba