Apache Flink là công cụ phân tán nguồn mở để xử lý theo trạng thái trên các tập dữ liệu không giới hạn (luồng) và tập dữ liệu có giới hạn (lô). Các ứng dụng xử lý luồng được thiết kế để chạy liên tục, với thời gian ngừng hoạt động tối thiểu và xử lý dữ liệu khi dữ liệu được nhập vào. Apache Flink được thiết kế để xử lý với độ trễ thấp, thực hiện tính toán trong bộ nhớ, nhằm mang đến độ sẵn sàng cao, loại bỏ các điểm lỗi chí mạng đơn lẻ và điều chỉnh quy mô theo chiều ngang.

Các tính năng của Apache Flink bao gồm quản lý trạng thái nâng cao với khả năng đảm bảo tính nhất quán chính xác một lần, ngữ nghĩa xử lý thời gian sự kiện kèm theo tính năng xử lý dữ liệu không theo thứ tự và dữ liệu trễ phức tạp. Apache Flink đã được phát triển để phát trực tuyến trước tiên và cung cấp giao diện lập trình thống nhất cho cả xử lý luồng và xử lý hàng loạt.

Apache Flink được sử dụng để xây dựng nhiều loại ứng dụng xử lý truyền liên tục và ứng dụng xử lý hàng loạt khác nhau, nhờ sở hữu nhiều đặc trưng đa dạng.
Một số loại ứng dụng phổ biến được cung cấp bởi Apache Flink là:

  • Các ứng dụng định hướng theo sự kiện, tải nhập các sự kiện từ một hoặc nhiều luồng sự kiện và thực hiện điện toán, cập nhật trạng thái hoặc thao tác bên ngoài. Xử lý trạng thái cho phép triển khai logic ngoài Chuyển đổi thông điệp đơn, trong đó kết quả phụ thuộc vào lịch sử của các sự kiện được tải nhập.
  • Ứng dụng Phân tích dữ liệu, trích xuất thông tin và thông tin chuyên sâu từ dữ liệu. Theo truyền thống, việc phân tích được thực hiện bằng cách truy vấn các tập dữ liệu hữu hạn và chạy lại các truy vấn hoặc sửa đổi kết quả để kết hợp dữ liệu mới. Với Apache Flink, việc phân tích có thể được thực hiện bằng cách liên tục cập nhật , truyền truy vấn hoặc xử lý các sự kiện được tải nhập theo thời gian thực, liên tục tạo và cập nhật kết quả.
  • Ứng dụng quy trình dữ liệu, chuyển đổi và làm phong phú dữ liệu để di chuyển từ kho lưu trữ dữ liệu này sang kho lưu trữ dữ liệu khác. Thông thường, trích xuất, chuyển đổi và tải (ETL) được thực hiện định kỳ theo lô. Với Apache Flink, quá trình có thể vận hành liên tục, di chuyển dữ liệu đến đích với độ trễ thấp.

Flink là một công cụ xử lý luồng thông lượng cao, độ trễ thấp. Ứng dụng Flink bao gồm một đồ thị luồng dữ liệu phi chu trình phức tạp tùy ý, bao gồm các luồng và hoạt động chuyển đổi. Dữ liệu được tải nhập từ một hoặc nhiều nguồn dữ liệu và được gửi đến một hoặc nhiều đích đến. Hệ thống nguồn và đích đến có thể là luồng, hàng đợi thông điệp hoặc kho chứa dữ liệu và bao gồm các tệp, cơ sở dữ liệu và công cụ tìm kiếm phổ biến. Chuyển đổi có thể có trạng thái, như tổng hợp theo khoảng thời gian hoặc phát hiện mô hình phức tạp. 

Khả năng chịu lỗi có được nhờ hai cơ chế riêng biệt: kiểm tra theo điểm một cách tự động và định kỳ để kiểm tra trạng thái ứng dụng, được sao chép vào bộ nhớ liên tục, cho phép phục hồi tự động trong trường hợp bị lỗi; các điểm lưu theo yêu cầu, lưu hình ảnh nhất quán của trạng thái thực thi, cho phép dừng và tiếp tục, cập nhật hoặc phân nhánh công việc Flink của bạn, giữ nguyên trạng thái ứng dụng trong các hoạt động dừng và khởi động lại. Cơ chế điểm kiểm tra và điểm lưu không đồng bộ với nhau, tạo ảnh chụp nhanh có tính nhất quán về trạng thái mà không khiến “thế giới ngừng lại”, trong khi ứng dụng vẫn tiếp tục xử lý các sự kiện.

Xử lý cả tập dữ liệu không giới hạn (luồng) và tập dữ liệu có giới hạn (lô)

Apache Flink có thể xử lý cả tập dữ liệu không giới hạn và tập dữ liệu có giới hạn, tức là các luồng và lô dữ liệu. Các luồng không giới hạn có điểm khởi đầu nhưng gần như vô hạn và không bao giờ kết thúc. Về mặt lý thuyết, quá trình xử lý không bao giờ có thể dừng lại.

Tương tự như bảng, dữ liệu có giới hạn là hữu hạn và có thể được xử lý từ đầu đến cuối trong một thời gian hữu hạn.
Apache Flink cung cấp các thuật toán và cấu trúc dữ liệu để hỗ trợ cả xử lý có giới hạn và xử lý không giới hạn thông qua cùng một giao diện lập trình. Các ứng dụng xử lý dữ liệu không giới hạn chạy liên tục. Các ứng dụng xử lý dữ liệu có giới hạn sẽ kết thúc quá trình thực thi khi đến tập dữ liệu đầu vào.

Chạy ứng dụng ở quy mô lớn

Apache Flink được thiết kế để chạy các ứng dụng có trạng thái ở hầu hết mọi quy mô. Quá trình xử lý diễn ra song song với hàng ngàn tác vụ và đồng thời được phân phối trên nhiều máy.

Trạng thái cũng được phân vùng và phân phối theo chiều ngang, cho phép duy trì nhiều terabyte trên nhiều máy. Trạng thái được kiểm tra theo điểm đến kho lưu trữ lâu dài theo mức tăng dần.

Hiệu năng trong bộ nhớ

Dữ liệu truyền qua ứng dụng và trạng thái được phân vùng trên nhiều máy. Do đó, điện toán có thể được hoàn thành bằng cách truy cập dữ liệu cục bộ, thường là trong bộ nhớ.

Tính nhất quán của trạng thái đúng một lần

Các ứng dụng nằm ngoài phạm vi chuyển đổi thông điệp đơn đều có trạng thái. Logic kinh doanh cần ghi nhớ các sự kiện hoặc kết quả trung gian. Apache Flink đảm bảo tính nhất quán của trạng thái nội bộ, ngay cả trong trường hợp gặp lỗi lẫn trong quá trình dừng và khởi động lại ứng dụng. Tác động của mỗi thông báo lên trạng thái nội bộ luôn được áp dụng đúng một lần, bất kể ứng dụng có thể nhận được dữ liệu trùng lặp từ nguồn dữ liệu khi phục hồi hoặc khi khởi động lại.

Đa dạng các loại kết nối

Apache Flink có nhiều kết nối đã được chứng minh cho các hệ thống nhắn tin và truyền liên tục phổ biến, kho dữ liệu, công cụ tìm kiếm và hệ thống tệp. Một số ví dụ có thể kể đến Apache Kafka, Luồng dữ liệu Amazon Kinesis, Amazon SQS, Active MQ, Rabbit MQ, NiFi, OpenSearch và ElasticSearch, DynamoDB, HBase và bất kỳ cơ sở dữ liệu nào cung cấp máy khách JDBC.

Nhiều cấp độ trừu tượng

Apache Flink cung cấp nhiều cấp độ trừu tượng cho giao diện lập trình. Từ SQL truyền liên tục cấp độ cao hơn và Table API, sử dụng các phép trừu tượng quen thuộc như bảng, phép kết nối và nhóm theo giá trị. API DataStream cung cấp mức độ trừu tượng thấp hơn nhưng đồng thời có nhiều quyền kiểm soát hơn, với ngữ nghĩa của các luồng, thao tác tạo cửa sổ và ánh xạ. Và cuối cùng, API ProcessFunction cung cấp khả năng kiểm soát tốt việc xử lý từng thông báo và kiểm soát trực tiếp trạng thái. Tất cả các giao diện lập trình hoạt động một cách trơn tru với cả tập dữ liệu không giới hạn (luồng) và dữ liệu có giới hạn (bảng). Các mức độ trừu tượng khác nhau có thể được sử dụng trong cùng một ứng dụng như một công cụ phù hợp để giải quyết từng vấn đề.

Nhiều ngôn ngữ lập trình

Apache Flink có thể được lập trình với nhiều ngôn ngữ, từ SQL truyền liên tục cấp độ cao đến Python, Scala, Java, nhưng cũng có các ngôn ngữ JVM khác như Kotlin.

Các trường hợp sử dụng Apache Flink bao gồm:

  • Phát hiện gian lận, phát hiện bất thường, cảnh báo dựa trên quy tắc, cá nhân hóa UX theo thời gian thực là những ví dụ về các trường hợp sử dụng cho ứng dụng định hướng theo sự kiện. Flink hoàn toàn phù hợp cho tất cả các trường hợp sử dụng yêu cầu xử lý các luồng sự kiện theo trạng thái, xem xét sự tiến hóa theo thời gian, phát hiện các mẫu phức tạp hoặc tính toán số liệu thống kê theo khung thời gian để phát hiện độ lệch so với ngưỡng dự kiến.

  • Giám sát chất lượng, phân tích tùy biến dữ liệu trực tiếp, phân tích luồng nhấp chuột, đánh giá thử nghiệm sản phẩm là các trường hợp sử dụng phân tích truyền liên tục mà Flink có thể hỗ trợ hiệu quả. Tận dụng mức độ trừu tượng cao của giao diện lập trình SQL hoặc Table API, bạn có thể chạy các phân tích giống nhau trên cả dữ liệu trực tiếp truyền liên tục và các lô dữ liệu lịch sử.

  • Giám sát hệ thống tệp và ghi dữ liệu thành bản ghi, cụ thể hóa luồng sự kiện vào cơ sở dữ liệu, từng bước xây dựng và tinh chỉnh chỉ mục tìm kiếm là những trường hợp sử dụng được ETL liên tục hỗ trợ một cách hiệu quả. Tận dụng bộ kết nối đa dạng, Flink có thể đọc trực tiếp từ vài loại kho dữ liệu, nhập các luồng sự kiện thay đổi và thậm chí trực tiếp ghi lại các thay đổi. Với việc liên tục nhập và xử lý các thay đổi, đồng thời cập nhật trực tiếp các hệ thống đích, Flink có thể giảm độ trễ của việc đồng bộ hóa dữ liệu xuống đến vài giây hoặc ngắn hơn.

NortonLifeLock

NortonLifeLock là một công ty toàn cầu về bảo mật mạng và quyền riêng tư trên Internet cung cấp dịch vụ cho hàng triệu khách hàng về bảo mật thiết bị, cũng như bảo vệ quyền riêng tư danh tính và trực tuyến cho nhà và gia đình.

NortonLifeLock cung cấp sản phẩm VPN dưới dạng dịch vụ freemium (miễn phí tính năng cơ bản, trả phí để sử dụng tính năng cao cấp) cho người dùng. Do đó, họ cần áp dụng giới hạn sử dụng theo thời gian thực để ngăn người dùng freemium sử dụng dịch vụ khi đã vượt mức giới hạn sử dụng. Thách thức đối với NortonLifeLock là thực hiện được điều này một cách đáng tin cậy với chi phí hợp lý.

NortonLifeLock đơn giản hóa việc triển khai tổng hợp dữ liệu ở cấp độ người dùng và cấp độ thiết bị thông qua Apache Flink.

Samsung SmartThings

Là một công ty con độc lập của Samsung, SmartThings là một trong những hệ sinh thái IoT hàng đầu trên thế giới, tạo ra phương pháp dễ dàng nhất cho bất kỳ ai muốn tạo ra một ngôi nhà thông minh.

Samsung SmartThings từng gặp phải các vấn đề như dành riêng tài nguyên cho các ứng dụng riêng lẻ. Điều này gây ra sự chậm trễ và suy giảm hiệu năng trong quá trình xử lý dữ liệu. Cuối cùng dẫn đến việc tăng tổng chi phí cho hoạt động duy trì khối lượng công việc khi vận hành. Họ đã phải tái kiến trúc nền tảng dữ liệu.

Họ chuyển từ Apache Spark sang Apache Flink.

BT Group

BT Group là nhà cung cấp mạng và viễn thông hàng đầu của Vương quốc Anh và là nhà cung cấp hàng đầu các dịch vụ và giải pháp truyền thông toàn cầu, phục vụ khách hàng tại 180 quốc gia. Các hoạt động chính của BT Group ở Vương quốc Anh bao gồm cung cấp điện thoại cố định, điện thoại di động, băng thông rộng và TV (bao gồm Thể thao), cùng một loạt các sản phẩm và dịch vụ qua mạng cố định và di động hội tụ cho khách hàng tiêu dùng, doanh nghiệp và khu vực công.

BT cần một ứng dụng giám sát dịch vụ để hỗ trợ việc triển khai Digital Voice, sản phẩm tiêu dùng mới cho phép gọi thoại chất lượng cao qua mạng băng thông rộng của Vương quốc Anh.

BT đã xây dựng một dịch vụ phân tích định hướng theo sự kiện sử dụng Apache Flink để tải nhập, xử lý và trực quan hóa dữ liệu dịch vụ.

Autodesk

Autodesk, nhà cung cấp hàng đầu về phần mềm thiết kế và kỹ thuật 3D, muốn mở rộng hơn nữa ngoài tạo và cung cấp phần mềm. Công ty này cũng muốn đảm bảo hàng triệu người dùng toàn cầu của mình có trải nghiệm tốt nhất khi chạy phần mềm đó.

Autodesk tạo ra phần mềm cho những người tạo ra sản phẩm. Họ phục vụ hơn 200 triệu khách hàng. Họ cần loại bỏ các lô cốt dữ liệu để tìm và khắc phục các vấn đề của khách hàng nhanh hơn. Họ muốn có một cách nhất quán để thu thập và đo lường chỉ số với một đội ngũ vận hành nhỏ mà không làm tăng chi phí hoặc tạo ra tình trạng trói buộc dữ liệu.

NHL

National Hockey League là giải đấu lâu đời thứ hai trong số bốn giải đấu thể thao đồng đội chuyên nghiệp lớn ở Bắc Mỹ. Ngày nay, NHL bao gồm 32 Câu lạc bộ thành viên, mỗi câu lạc bộ đều góp phần tạo nên tính quốc tế của Giải đấu này, với các cầu thủ từ hơn 20 quốc gia được có trong đội hình ra sân của các đội.

NHL từng phải đối mặt với một số thách thức kỹ thuật như xác định các tính năng cần thiết và phương pháp mô hình hóa để dự đoán một sự kiện có độ không chắc chắn cao và xác định cách sử dụng dữ liệu cảm biến PPT phát trực tuyến để xác định nơi xảy ra cuộc tranh bóng, các cầu thủ tham gia tranh bóng và xác suất mỗi cầu thủ chiến thắng trong cuộc tranh bóng, toàn bộ chỉ trong vòng vài trăm mili giây.

Nhờ tận dụng Apache Flink, NHL không chỉ có thể dự đoán người chiến thắng trong một cuộc tranh bóng mà còn xây dựng nền tảng để giải quyết một số vấn đề tương tự theo thời gian thực và tiết kiệm chi phí.

Poshmark

Poshmark là chợ điện tử kiểu mạng xã hội hàng đầu để mua bán sản phẩm mới và cũ cho phụ nữ, nam giới, trẻ em, vật nuôi, gia đình, v.v. Cộng đồng của họ với hơn 80 triệu người trên khắp Hoa Kỳ, Canada, Úc và Ấn Độ đang định hình tương lai của việc mua sắm để việc mua sắm trở nên đơn giản, mang tính xã hội và bền vững.

Poshmark đã tập trung vào việc đạt được tăng trưởng doanh thu cao nhất thông qua cá nhân hóa và nâng cao trải nghiệm người dùng. Cách tiếp cận ban đầu sử dụng xử lý theo lô để cá nhân hóa và bảo mật không đáp ứng được kỳ vọng về việc cải thiện trải nghiệm khách hàng.

Poshmark đã thiết kế cá nhân hóa theo thời gian thực bằng cách sử dụng khả năng làm giàu dữ liệu theo thời gian thực bằng Apache Flink.

Dịch vụ được quản lý của Amazon dành cho Apache Flink là một giải pháp được quản lý toàn phần để chạy các ứng dụng Apache Flink. Dịch vụ được quản lý của Amazon dành cho Apache Flink giúp giảm bớt sự phức tạp trong việc xây dựng, quản lý và tích hợp các ứng dụng Apache Flink với các dịch vụ AWS khác. Với Dịch vụ được quản lý của Amazon dành cho Apache Flink, bạn không cần phải quản lý máy chủ, không cần tốn phí tối thiểu hoặc chi phí thiết lập. Thiết lập có độ sẵn sàng cao theo mặc định. Trạng thái ứng dụng được quản lý toàn phần và lưu trữ vào backend có độ bền cao để có khả năng chịu lỗi. Ứng dụng được điều khiển bằng một API đơn giản, để dừng, khởi động, định cấu hình và điều chỉnh quy mô ứng dụng.

Dịch vụ được quản lý của Amazon dành cho Apache Flink cung cấp giao diện sổ ghi chép tương tác cho Apache Flink. Sử dụng sổ ghi chép Apache Zeppelin, bạn có thể chạy mã SQL, Python và Scala trên Apache Flink để phát triển và thử nghiệm, kiểm tra dữ liệu hoặc trực quan hóa.

Amazon EMR cũng hỗ trợ Apache Flink như một ứng dụng YARN để bạn có thể quản lý tài nguyên và chạy các ứng dụng khác trong cụm.

Apache Flink hỗ trợ Kubernetes theo mặc định. Bạn có thể tự lưu trữ Apache Flink tại môi trường trong bộ chứa như Dịch vụ Kubernetes linh hoạt Amazon (Amazon EKS) hoặc tự quản lý hoàn toàn bằngĐám mây điện toán linh hoạt của Amazon (Amazon EC2).

Bắt đầu sử dụng Apache Flink trên AWS bằng cách tạo tài khoản ngay hôm nay.

Các bước tiếp theo trên AWS

Tham khảo các tài nguyên bổ sung liên quan đến sản phẩm
Đổi mới nhanh hơn với bộ dịch vụ Tích hợp ứng dụng toàn diện nhất  
Đăng ký tài khoản miễn phí

Nhận ngay quyền sử dụng Bậc miễn phí của AWS.

Đăng ký 
Bắt đầu xây dựng trong bảng điều khiển

Bắt đầu xây dựng trong AWS Management Console.

Đăng nhập