YTsaurus là một nền tảng lưu trữ và xử lý phân tán dành cho dữ liệu lớn có hỗ trợ cho mô hình MapReduce.
Vài ngày trước Yandex ra mắt thông qua một công bố việc mở mã nguồn của nền tảng YTsauru, được sử dụng để lưu trữ phân tán và xử lý lượng lớn dữ liệu, hỗ trợ thao tác dữ liệu bằng cách sử dụng mô hình MapReduce, công cụ truy vấn SQL, hệ thống tệp phân tán và lưu trữ NoSQL ở định dạng khóa-giá trị.
Ytsaurus đã sử dụng trên cơ sở hạ tầng Yandex để sử dụng hiệu quả sức mạnh tính toán của siêu máy tính của công ty Nền tảng này có thể mở rộng thành các cụm gồm hơn 10 nút, bao phủ tới một triệu bộ xử lý và hàng nghìn GPU (dành cho các tác vụ máy học).
Các thùng chứa biệt lập chạy trên các máy chủ vật lý có thể được sử dụng làm đơn vị cụm. Bộ lưu trữ có thể chứa hàng exabyte dữ liệu nằm trên nhiều phương tiện khác nhau như ổ cứng, SSD, NVME và RAM.
Cụm hỗ trợ thêm và loại bỏ các nút động, dự phòng (không có điểm lỗi duy nhất), sao chép tự động, nâng cấp phần mềm cụm hoạt động và khôi phục dự phòng tự động trong trường hợp lỗi nút.
Ba loại cụm được hỗ trợ: các cụm tính toán (để xử lý song song hàng loạt dữ liệu lớn bằng cách sử dụng các thao tác MapReduce), các cụm cho bảng tổng hợp và lưu trữ khóa-giá trị cũng như các cụm được phân phối theo địa lý.
Một dịch vụ dựa trên nền tảng có thể cung cấp phương tiện lưu trữ và xử lý dữ liệu cho hàng chục nghìn người dùng. Các ứng dụng YTsaurus điển hình trong Yandex bao gồm lưu trữ thông tin về người dùng mạng quảng cáo, đào tạo mô hình học máy, tạo chỉ mục tìm kiếm và xây dựng kho dữ liệu cho các dịch vụ như Yandex Taxi, Thực phẩm, Lavka và giao hàng
Trong số các trường hợp sử dụng cơ bản, nó được đề cập:
- Xử lý hàng loạt: MapReduce và SPYT (Apache Spark là công cụ điện toán trên dữ liệu trong YTsaurus) để xử lý dữ liệu có cấu trúc và bán cấu trúc: hồ sơ hoặc giao dịch tài chính.
- Phân tích đặc biệt: Truy vấn nhanh qua CHYT (một nhóm máy chủ ClickHouse trên các nút tính toán của YTsaurus) mà không cần sao chép dữ liệu sang hệ thống phân tích riêng. ODBC và JDBC với khả năng kết nối BI để trực quan hóa.
- Nhiệm vụ OLTP: Hoạt động giao dịch theo thời gian thực với lưu trữ khóa-giá trị: ví dụ: lưu trữ hồ sơ người dùng, hiển thị quảng cáo hoặc xử lý luồng.
- Máy học: Quản lý các cụm GPU để huấn luyện các mô hình với hàng tỷ tham số.
- Lưu trữ thông tin meta: Lưu trữ giao dịch siêu thông tin và dịch vụ đáng tin cậy của khóa phân tán.
- Tạo kho dữ liệu và ETL để xử lý dữ liệu nhiều tầng bằng các công cụ điển hình: Apache Spark, SQL, MapReduce.
Trong khi về phần các yếu tố chính của kiến trúc, những điều sau đây được đề cập:
- Hệ thống tệp phân tán và lưu trữ siêu thông tin dựa trên cây có khả năng chịu lỗi của Cypress.
- Bộ lập lịch cho tính toán phân tán với sự hỗ trợ cho mô hình MapReduce, cũng như các hoạt động cơ bản nâng cao.
- Khả năng mở rộng theo chiều ngang của các hoạt động CNTT.
- Cách ly tài nguyên máy tính và khả năng phân bổ các tài nguyên máy tính nhất định (CPU, GPU, RAM) theo các tỷ lệ khác nhau.
- PivotTable để tạo lưu trữ OLTP, hỗ trợ lưu trữ dựa trên MVCC, giao dịch, khả năng xóa dữ liệu sau khi hết hạn và hàng đợi thông báo để xử lý dữ liệu trực tuyến qua PivotTable.
- API và thư viện cho các ngôn ngữ lập trình C++, Python, Java, Go.
- Giao diện web dành cho người dùng và quản trị viên hỗ trợ điều hướng thông qua bộ lưu trữ dạng cây.
Cuối cùng nếu bạn muốn biết thêm về nó, bạn nên biết rằng mã của dự án được viết bằng C/C++ và được mở theo giấy phép Apache 2.0. Bạn có thể kiểm tra các chi tiết trong liên kết theo dõi.
El Kho lưu trữ GitHub chứa mã máy chủ cho YTsaurus, khung triển khai được k8s sử dụng, giao diện web cho hệ thống và SDK máy khách cho các ngôn ngữ lập trình phổ biến như C++, Java, Go và Python.