Hỏi đáp về IT
Mã xác nhận Thay đổi một
HNQ Bigdata engineering

Alibaba Blink: Điện toán thời gian thực để thu lợi nhuận lớn

Duyệt qua: 207
 
Làm thế nào một khuôn khổ điện toán thời gian thực mới đã biến Lễ hội Double 11 2017 trở thành hiện tượng điện toán thời gian thực lớn nhất trong lịch sử
 
 
 
 
Hình ảnh cho bài đăng
Với hệ sinh thái đa dạng mà nó chủ trì - hiện đang mở rộng các nền tảng thương mại điện tử Taobao và Tmall, nền tảng quảng cáo Alimama, Ant Financial, Alipay, Alibaba CLoud và Digital Entertainment để đặt tên cho nhưng một số ít - dữ liệu trên máy chủ của Alibaba đo bằng exabyte tăng trưởng hàng ngày theo tỷ lệ petabyte. Tuy nhiên, ấn tượng hơn khối lượng dữ liệu của A libaba là cách dữ liệu đang được sử dụng. Điều này đặc biệt đúng trong những thời điểm mà mọi con mắt đều đổ dồn vào công ty và kỳ vọng đang tăng cao, với việc người mua sắm, thương gia và giới truyền thông dự đoán ứng dụng tuyệt vời của các công nghệ tiên tiến của công ty. Không có thời điểm nào phù hợp với Lễ hội mua sắm toàn cầu Double 11 về mặt này. Nhập máy tính thời gian thực Mỗi Double 11, tính toán thời gian thực được sử dụng để tính toán tổng khối lượng hàng hóa trên toàn bộ hoạt động thương mại điện tử của Alibaba trong thời gian thực. Tổng số sau đó được hiển thị trên màn hình lớn và cập nhật từng giây.
Hình ảnh cho bài đăng
Màn hình lớn Double 11 năm 2017 đã báo cáo GMV trong thời gian thực Mặc dù dựa trên một nguyên tắc đơn giản, việc triển khai thành công màn hình GMV (Gross Merchandise Volume) vẫn là một kỳ tích ấn tượng do các yêu cầu cao mà quy trình đòi hỏi về tốc độ, khối lượng, độ chính xác và tính khả dụng của hệ thống.
Hình ảnh cho bài đăng
Nhưng việc triển khai điện toán thời gian thực thậm chí còn đáng gờm hơn ở hậu trường Alibaba vốn rất phức tạp cả về nguyên tắc và thực tế. Chúng bao gồm học máy thời gian thực và thử nghiệm A / B thời gian thực. Mỗi yêu cầu riêng biệt đối với khung tính toán thời gian thực, từ độ phức tạp của logic tính toán đến số lượng tuyệt đối các nguồn dữ liệu liên quan. Để giải quyết những thách thức này, Alibaba đã phát triển khung điện toán thời gian thực của riêng mình. Sử dụng khung mã nguồn mở của Apache làm cơ sở, Alibaba đã thực hiện những cải tiến quan trọng để tăng cường đáng kể khả năng mở rộng, độ tin cậy và hiệu suất của Flink. Kết quả là khuôn khổ doanh nghiệp, Blink, đã thành công vang dội khi là nền tảng cho những thành tựu phá kỷ lục trong lĩnh vực điện toán thời gian thực trong năm qua. Với tính năng Blink trong nền tính toán GMV thời gian thực và hỗ trợ máy học để dự đoán sở thích của người dùng và đưa ra các đề xuất phù hợp cho khách hàng theo cách thức thời gian thực, Double 11 vào năm 2017 đã đánh dấu hiện tượng máy tính đồng thời lớn nhất trong lịch sử. Vào lúc cao điểm, khung xử lý 470 triệu sự kiện mỗi giây. Điều này đã góp phần vào thu nhập phi thường 168,2 tỷ RMB chỉ trong một ngày. Điều gì khiến Blink trở thành một khung máy tính thời gian thực mạnh mẽ như vậy? Để bắt đầu, Flink đã được chọn lọc kỹ càng vì chức năng cốt lõi mạnh mẽ của nó. Tuy nhiên, Flink không phải là không có giới hạn của nó và nhóm Alibaba đã giới thiệu một loạt các sửa đổi dưới dạng Blink runtime và Flink SQL để vượt qua những thách thức này.
Hình ảnh cho bài đăng
Từ nhấp nháy sang nhấp nháy Trong số các khung máy tính hiện có, Apache Flink nổi bật với khả năng mang lại chính xác trạng thái để mô tả các tập dữ liệu phức tạp - loại mà Alibaba có đại dương - và cho thuật toán Chandy-Lamport độc đáo, rất phù hợp để thực thi ngữ nghĩa chính xác một lần (bắt buộc để tính toán độ chính xác cao). Tuy nhiên, Flink đã có những thiếu sót nhất định, một vấn đề mà Alibaba chuyển sang đổi mới thích ứng để giải quyết. Không giống như Alibaba, hầu hết các công ty sử dụng Flink thường không tìm cách tùy chỉnh để lưu trữ, lập lịch và tối ưu hóa cơ bản. Các nhu cầu của Alibaba đòi hỏi những thay đổi đáng kể đáng được đề cập riêng từ một dự án nguồn mở - cụ thể là thành phần Thời gian chạy của Blink. Thành phần thứ hai của Blink - Flink SQL - không yêu cầu đổi tên như vậy. Blink muốn giữ API tương thích trong Apache Flink mã nguồn mở và các nhà phát triển Blink tại Alibaba là những người đóng góp chính cho Flink SQL, bao gồm ngữ nghĩa SQL dòng cũng như nhiều chức năng SQL dòng. Nó có các bản cập nhật mở rộng để tạo sự thuận tiện cho người dùng, với tính toán dòng tích hợp đầy đủ người dùng, API, Blink và Flink vào cộng đồng, cải tiến trên API luồng dữ liệu cấp thấp của Flink. Thời gian chạy chớp mắt: những phát triển chính Triển khai cụm được tối ưu hóa Song song với đó, Blink Runtime mở ra những khả năng mới cho việc triển khai cụm quy mô lớn, nhờ vào việc làm lại khung ban đầu để cải thiện đáng kể khả năng mở rộng. Trong khi các cụm Flink chỉ có một Job Master duy nhất và do đó, một vấn đề tắc nghẽn khi phải đối mặt với nhiều công việc, mỗi công việc trong Blink framework đều có Master tương ứng của riêng nó. Vì những lý do tương tự, Blink cũng chỉ định từng công việc cho Trình quản lý tác vụ của riêng nó, ngăn chặn vấn đề sập Trình quản lý tác vụ phổ biến với Flink - ví dụ: một ngoại lệ không được xử lý trong một tác vụ duy nhất sẽ làm mất toàn bộ quy trình của nhân viên, do đó giết chết các tác vụ đang hoạt động hoàn hảo khác. Blink tối ưu hóa hơn nữa các cải tiến trước đó bằng cách giới thiệu Trình quản lý tài nguyên, có khả năng giao tiếp với Job Master và điều chỉnh tài nguyên trong thời gian thực để triển khai cụm tối ưu. Thiết kế trạm kiểm soát tăng dần Tính toán thời gian thực yêu cầu duy trì liên tục trạng thái của máy tính tại các trạm kiểm soát. Mô hình trạm kiểm soát của Flink không phù hợp với tính toán thời gian thực ở quy mô yêu cầu. Trong khi yêu cầu trước đây là hợp nhất quy mô lớn dữ liệu trạng thái cũ trước khi ghi vào dữ liệu mới, Blink chỉ lưu trữ dữ liệu gia tăng tại các điểm kiểm tra, lưu lịch sử dữ liệu điểm kiểm tra trước đó. Do đó, Blink loại bỏ sự hợp nhất không cần thiết của tất cả trạng thái cũ, do đó cho phép mỗi trạm kiểm soát hoàn thành trong thời gian rất ngắn. Điều này giúp giảm sự chậm trễ nghiêm trọng của dữ liệu do tính toán backtracking trong quá trình chuyển đổi dự phòng, loại bỏ hoàn toàn nguồn của chúng. IO không đồng bộ Thông thường, dữ liệu cần được đặt vào bộ nhớ ngoài để được IO mạng truy xuất trong khi tính toán. Điều này thường sử dụng phương thức Sync-IO yêu cầu phân phối các tập dữ liệu trước đó trước khi có thể thực hiện các yêu cầu mới, gây lãng phí tài nguyên CPU vì CPU sẽ ở chế độ nhàn rỗi trước khi dữ liệu được tải về trở lại. Để tăng hiệu quả trong tính toán bit CPU, Blink bao gồm cấu trúc đọc dữ liệu Async-IO mới được thiết kế cho phép truy xuất dữ liệu đa luồng, không đồng bộ. Kết quả là hệ thống không còn phải đợi dữ liệu trả về để thực hiện các yêu cầu tiếp theo, quản lý dữ liệu trả về bằng cách gọi lại. Trong trường hợp người dùng yêu cầu isotone, Blink sẽ đệm dữ liệu đến trước đó và đợi quá trình biên dịch tất cả dữ liệu tiếp theo, chỉ sau đó xử lý chúng hàng loạt. Async-IO có thể tăng tốc độ tính toán hiện tại lên 10–100 lần, cải thiện đáng kể việc sử dụng CPU và chức năng tính toán. Cũng cần lưu ý rằng tất cả các tối ưu hóa Blink Runtime nói trên, bao gồm triển khai cụm được tối ưu hóa, điểm kiểm tra gia tăng và IO không đồng bộ, đã được dành riêng cho Apache Flink. Do những đóng góp này, hai nhà phát triển từ nhóm cơ sở hạ tầng dữ liệu thời gian thực của Alibaba đã được công nhận và thừa nhận là người cam kết Apache Flink. Flink SQL: các tính năng cốt lõi Tại sao sử dụng SQL? SQL cung cấp nhiều lợi thế trong tính toán thời gian thực. Thứ nhất, nó là một ngôn ngữ mô tả chung cho phép người dùng dễ dàng mô tả các yêu cầu công việc mong muốn của họ. Trên hết, nó cung cấp một cấu trúc tối ưu hóa tốt hơn, giảm gián đoạn trải nghiệm người dùng để người dùng chỉ cần tập trung vào thiết kế logic hoạt động, thay vì các nhiệm vụ quản lý trạng thái và tối ưu hóa chức năng phức tạp hơn, giảm đáng kể các rào cản gia nhập. SQL dễ hiểu, có khả năng chấp nhận từ người dùng trong các ngành khác nhau và ít đặt ra yêu cầu về kiến ​​thức lập trình và mã hóa phức tạp. Từ nhà thiết kế sản phẩm đến nhà phát triển, hầu hết người dùng sẽ có thể thành thạo SQL khá nhanh. API SQL cũng rất ổn định trong quá trình nâng cấp cấu trúc, không yêu cầu người dùng sửa đổi Công việc của họ để tiếp tục sử dụng nó trong quá trình thay thế công cụ tính toán. Khi cần thiết, SQL có thể hợp nhất tính toán hàng loạt và tính toán dòng trong cùng một truy vấn. Nhóm cơ sở hạ tầng dữ liệu thời gian thực của Alibaba là những người đóng góp lớn nhất cho Apache Flink SQL ngoài DataArtisans, công ty được thành lập bởi những người sáng tạo ban đầu của Apache Flink. Các nhà phát triển trong nhóm này đã giúp xác định ngữ nghĩa của Flink SQL và phát triển nhiều tính năng quan trọng. Tính toán dòng so với tính toán hàng loạt Để xác định ngữ nghĩa SQL cho tính toán dòng, điều quan trọng là phải hiểu sự khác biệt giữa dòng và tính toán hàng loạt. Dữ liệu được xử lý bởi tính toán dòng là vô thời hạn, trong khi tính toán hàng loạt được giới hạn ở một dữ liệu cố định nhất định. Ba điểm phân biệt khác có thể giúp xác định các chức năng tương ứng của chúng. Đầu tiên, tính toán dòng tạo ra kết quả vĩnh viễn mà không cần kết thúc quá trình, trong khi tính toán hàng loạt thường tắt ngay sau khi hoàn nguyên kết quả cuối cùng. Lấy ví dụ như lễ hội Double 11 Singles 'Day, việc sử dụng tính toán hàng loạt để tính tổng khối lượng giao dịch trong ngày sẽ yêu cầu tính tổng chi tiêu của mỗi người mua sau khi tất cả các giao dịch đã kết thúc vào cuối ngày. Ngược lại, tính toán dòng sẽ theo dõi các giá trị giao dịch trong thời gian thực và thực hiện các phép tính tức thời, liên tục cập nhật các kết quả mới nhất. Vì vậy, lợi thế của cái sau là rõ ràng. Tính toán luồng cũng yêu cầu đánh giá điểm kiểm tra và duy trì trạng thái và có thể tiếp tục chạy ở tốc độ cao trong quá trình chuyển đổi dự phòng. Ngược lại, dữ liệu đầu vào của tính toán hàng loạt được duy trì trong một khoảng thời gian và sau đó được lưu trữ, vì vậy không có lý do gì để giữ lại trạng thái. Cuối cùng, dữ liệu đầu vào của tính toán dòng được cập nhật liên tục và do đó có thể đáp ứng các tình huống trong đó tổng chi tiêu của người mua thay đổi liên tục theo thời gian. Ngược lại, tính toán hàng loạt sẽ dựa trên các tính toán của nó dựa trên tổng chi tiêu vào cuối ngày. Do đó, tính toán dòng là ước tính trước kết quả cuối cùng yêu cầu rút lại các tính toán đã thực hiện trước để sửa đổi thêm, trong khi tính toán hàng loạt không yêu cầu quy trình rút lại này. Sự khác biệt được mô tả ở trên không ảnh hưởng đến logic tác vụ của người dùng, có nghĩa là các biến thể của chúng sẽ không được phản ánh trên SQL. Thay vào đó, người dùng có thể tương tác với kết quả và lưu trạng thái bằng cách sử dụng Cấu hình truy vấn có SLA độ trễ và các thành phần Lưu giữ trạng thái / TTL.
Flink SQL trên nền tảng Alibaba StreamCompute
Hình ảnh cho bài đăng
Các đặc điểm kỹ thuật của Flink SQL trên nền tảng Alibaba StreamCompute bao gồm một loạt các cải tiến đột phá cho tính toán dữ liệu SQL trực tuyến. Trong số này, SQL được cập nhật có một bảng động [2] có khả năng cập nhật với dữ liệu đến trong khi vẫn bảo toàn tính thống nhất của dữ liệu, cho phép truy vấn luồng liên tục. Nó còn cho phép tham gia luồng, tham gia tra cứu, tổng hợp cửa sổ, chức năng "rút lại" để đảm bảo kết quả tính toán luồng cuối cùng nhất quán với tính toán hàng loạt và nhiều tối ưu hóa truy vấn. Tất cả các tính năng và tối ưu hóa này hiện đã có sẵn từ nền tảng Alibaba StreamCompute, trong khi một số trong số chúng đã được đóng góp vào Apache Flink. Do những đóng góp này, ba nhà phát triển từ nhóm cơ sở hạ tầng dữ liệu thời gian thực của Alibaba đã được công nhận và thừa nhận là người cam kết Apache Flink. Ứng dụng điện toán thời gian thực của Alibaba Đến nay, Alibaba đã phát triển thành công hai nền tảng độc lập bằng cách áp dụng mô hình SQL điện toán dòng được tóm tắt ở trên.
StreamCompute
Hình ảnh cho bài đăng
Ảnh chụp màn hình nền tảng phát triển Alibaba Cloud StreamComputeCông nghệ StreamCompute của Alibaba Cloud tích hợp tất cả các nhu cầu về tính toán thời gian thực, từ phát triển, gỡ lỗi và triển khai trực tuyến đến vận hành và bảo trì, làm tăng đáng kể hiệu quả phát triển. Nền tảng này đã đóng một vai trò nổi bật trong Ngày hội mua sắm toàn cầu Double 11 Singles 'Day 2017, xuất bản phần lớn các tính toán thời gian thực của các công ty thuộc nhóm Ali.Nền tảng máy học thời gian thựcAlibaba cũng đã phát triển một nền tảng máy học thời gian thực, được thiết kế để nâng cao hiệu quả và hiệu quả của các tác vụ máy học.Nhìn về phía trướcAlibaba sẽ mở nền tảng Điện toán luồng đám mây Alibaba cho các doanh nghiệp bên ngoài bắt đầu từ tháng 4 năm 2018 và đang tiếp tục theo đuổi sự phát triển của điện toán thời gian thực nâng cao trong thời gian chờ đợi. Nền tảng học máy thời gian thực hiện chỉ có sẵn cho các nhà phát triển nội bộ nhưng việc mở rộng nó cho các doanh nghiệp bên ngoài sẽ được xem xét trong tương lai gần.Để biết thêm thông tin về Blink, Flink và điện toán thời gian thực tại Alibaba, vui lòng theo các liên kết bên dưới.[1] Xiaowei Jiang, Một năm chớp nhoáng tại Alibaba: Apache Flink trong sản xuất quy mô lớn, http://www.dataversity.net/year-blink-alibaba/ , ngày 19 tháng 5 năm 2017
bigdata 2020/11/12 13:26

Để lại dấu chân

Bước trên một chân

Bình luận

copyright © bigdata 2010-2020
Processed in 0 seconds, 0 queries