paint-brush
Phát triển các giải pháp dữ liệu thế hệ tiếp theo: SingleStore, MinIO và Datalake Stack hiện đạitừ tác giả@minio
4,002 lượt đọc
4,002 lượt đọc

Phát triển các giải pháp dữ liệu thế hệ tiếp theo: SingleStore, MinIO và Datalake Stack hiện đại

từ tác giả MinIO6m2024/06/05
Read on Terminal Reader

dài quá đọc không nổi

singlestore.io là cơ sở dữ liệu gốc trên nền tảng đám mây được thiết kế cho khối lượng công việc cần nhiều dữ liệu. Nó biên dịch các truy vấn SQL thành mã máy và có thể được triển khai trong nhiều môi trường khác nhau, bao gồm cài đặt tại chỗ, đám mây công cộng/riêng tư và vùng chứa thông qua toán tử Kubernetes.
featured image - Phát triển các giải pháp dữ liệu thế hệ tiếp theo: SingleStore, MinIO và Datalake Stack hiện đại
MinIO HackerNoon profile picture
0-item
1-item


Cửa hàng đơn là cơ sở dữ liệu gốc trên nền tảng đám mây được thiết kế cho khối lượng công việc cần nhiều dữ liệu. Nó là một hệ thống quản lý cơ sở dữ liệu SQL quan hệ, phân tán, hỗ trợ ANSI SQL và được được công nhận về tốc độ nhập dữ liệu, xử lý giao dịch và xử lý truy vấn. SingleStore có thể lưu trữ dữ liệu quan hệ, JSON, biểu đồ và chuỗi thời gian, phục vụ cho khối lượng công việc kết hợp như HTAP cũng như cả trường hợp sử dụng OLTP và OLAP. Nó biên dịch các truy vấn SQL thành mã máy và có thể được triển khai trong nhiều môi trường khác nhau, bao gồm cài đặt tại chỗ, đám mây công cộng/riêng tư và vùng chứa thông qua toán tử Kubernetes.

Kiến trúc Datalake hiện đại

bên trong Kiến trúc Datalake hiện đại , SingleStore hoàn toàn phù hợp với Lớp xử lý. Lớp này là nơi xử lý các công cụ chuyển đổi, cung cấp dữ liệu cho các công cụ khác, khám phá dữ liệu và các trường hợp sử dụng khác. Các công cụ lớp xử lý, như SingleStore, hoạt động tốt với các công cụ khác: thường có nhiều công cụ lớp xử lý lấy từ cùng một hồ dữ liệu. Thông thường, thiết kế này được thực hiện trong trường hợp chuyên môn hóa công cụ. Ví dụ: các nền tảng xử lý dữ liệu trong bộ nhớ siêu nhanh như SingleStore với vectơ kết hợp và tìm kiếm toàn văn bản được tối ưu hóa cho khối lượng công việc AI, cụ thể cho các trường hợp sử dụng AI tổng quát.

Điều kiện tiên quyết

Để hoàn thành hướng dẫn này, bạn cần thiết lập một số phần mềm. Dưới đây là bảng phân tích những gì bạn sẽ cần:


  • Công cụ Docker : Công cụ mạnh mẽ này cho phép bạn đóng gói và chạy các ứng dụng trong các đơn vị phần mềm được tiêu chuẩn hóa gọi là vùng chứa.

  • Docker Soạn : Điều này hoạt động như một người điều phối, đơn giản hóa việc quản lý các ứng dụng nhiều vùng chứa. Nó giúp xác định và chạy các ứng dụng phức tạp một cách dễ dàng.


Cài đặt: Nếu bạn đang bắt đầu mới, Máy tính để bàn Docker trình cài đặt cung cấp giải pháp toàn diện thuận tiện để cài đặt cả Docker và Docker Compose trên nền tảng cụ thể của bạn (Windows, macOS hoặc Linux). Điều này thường tỏ ra dễ dàng hơn việc tải xuống và cài đặt chúng riêng lẻ.


Sau khi cài đặt Docker Desktop hoặc kết hợp Docker và Docker Compose, bạn có thể xác minh sự hiện diện của chúng bằng cách chạy lệnh sau trong terminal của mình:


 docker-compose --version


Bạn cũng sẽ cần giấy phép SingleStore mà bạn có thể nhận được đây .



Hãy lưu ý cả mã cấp phép và mật khẩu gốc của bạn. Mật khẩu gốc ngẫu nhiên sẽ được gán cho tài khoản của bạn, nhưng bạn có thể thay đổi mật khẩu gốc bằng Giao diện người dùng SingleStore.

Bắt đầu

Hướng dẫn này phụ thuộc vào kho lưu trữ này . Sao chép repo vào vị trí bạn chọn.


Tệp quan trọng nhất trong kho lưu trữ này là docker-compose.yaml mô tả môi trường Docker với cơ sở dữ liệu SingleStore ( singlestore ), phiên bản MinIO ( minio ) và vùng chứa mc phụ thuộc vào dịch vụ MinIO.


Vùng chứa mc chứa tập lệnh entrypoint , trước tiên đợi cho đến khi có thể truy cập được MinIO, thêm MinIO làm máy chủ lưu trữ, tạo nhóm classic-books , tải lên tệp books.txt chứa dữ liệu sách, đặt chính sách nhóm thành công khai rồi thoát.


 version: '3.7' services: singlestore: image: 'singlestore/cluster-in-a-box' ports: - "3306:3306" - "8080:8080" environment: LICENSE_KEY: "" ROOT_PASSWORD: "" START_AFTER_INIT: 'Y' minio: image: minio/minio:latest ports: - "9000:9000" - "9001:9001" volumes: - data1-1:/data1 - data1-2:/data2 environment: MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: minioadmin command: ["server", "/data1", "/data2", "--console-address", ":9001"] mc: image: minio/mc:latest depends_on: - minio entrypoint: > /bin/sh -c " until (/usr/bin/mc config host add --quiet --api s3v4 local http://minio:9000 minioadmin minioadmin) do echo '...waiting...' && sleep 1; done; echo 'Title,Author,Year' > books.txt; echo 'The Catcher in the Rye,JD Salinger,1945' >> books.txt; echo 'Pride and Prejudice,Jane Austen,1813' >> books.txt; echo 'Of Mice and Men,John Steinbeck,1937' >> books.txt; echo 'Frankenstein,Mary Shelley,1818' >> books.txt; /usr/bin/mc cp books.txt local/classic-books/books.txt; /usr/bin/mc policy set public local/classic-books; exit 0; " volumes: data1-1: data1-2:


Sử dụng trình chỉnh sửa tài liệu, thay thế phần giữ chỗ bằng khóa cấp phép và mật khẩu gốc của bạn.


Trong cửa sổ terminal, điều hướng đến nơi bạn đã sao chép repo và chạy lệnh sau để khởi động tất cả các vùng chứa:


 docker-compose up


Mở cửa sổ trình duyệt điều hướng đến http://localhost:8080/ và đăng nhập bằng tên người dùng `root` và mật khẩu root của bạn.


Kiểm tra MinIO

Hướng đến http://127.0.0.1:9001 để khởi chạy MinIO WebUI. Đăng nhập bằng Tên người dùng và Mật khẩu cho minioadmin:minioadmin . Bạn sẽ thấy rằng thùng chứa mc đã tạo một thùng có tên là classic-books và có một đối tượng trong thùng.


Khám phá bằng SQL

Trong SingleStore, điều hướng đến SQL Editor và chạy phần sau lệnh :


 -- Create a new database named 'books' CREATE DATABASE books; -- Switch to the 'books' database USE books; -- Create a table named 'classic_books' to store information about classic books CREATE TABLE classic_books ( title VARCHAR(255), author VARCHAR(255), date VARCHAR(255) ); -- Define a pipeline named 'minio' to load data from an S3 bucket called 'classic-books' -- The pipeline loads data into the 'classic_books' table CREATE PIPELINE IF NOT EXISTS minio AS LOAD DATA S3 'classic-books' CONFIG '{"region": "us-east-1", "endpoint_url":"http://minio:9000/"}' CREDENTIALS '{"aws_access_key_id": "minioadmin", "aws_secret_access_key": "minioadmin"}' INTO TABLE classic_books FIELDS TERMINATED BY ','; -- Start the 'minio' pipeline to initiate data loading START PIPELINE minio; -- Retrieve and display all records from the 'classic_books' table SELECT * FROM classic_books; -- Drop the 'minio' pipeline to stop data loading DROP PIPELINE minio; -- Drop the 'classic_books' table to remove it from the database DROP TABLE classic_books; -- Drop the 'books' database to remove it entirely DROP DATABASE books;


Tập lệnh SQL này khởi tạo một chuỗi hành động để xử lý dữ liệu liên quan đến sách cổ điển. Nó bắt đầu bằng việc thiết lập một cơ sở dữ liệu mới có tên books . Trong cơ sở dữ liệu này, một bảng có tên classic_books được tạo, được thiết kế để chứa các thông tin chi tiết như tiêu đề, tác giả và ngày xuất bản.


Sau đó, một quy trình có tên minio được thiết lập để trích xuất dữ liệu từ nhóm S3 có nhãn classic-books và tải dữ liệu đó vào bảng classic_books . Các tham số cấu hình cho quy trình này, bao gồm khu vực, URL điểm cuối và thông tin xác thực, đều được xác định.


Sau đó, đường dẫn 'minio' được kích hoạt để bắt đầu quá trình truy xuất và tổng hợp dữ liệu. Sau khi dữ liệu được tải thành công vào bảng, truy vấn SELECT sẽ truy xuất và hiển thị tất cả các bản ghi được lưu trữ trong classic_books .


Sau khi hoàn thành việc trích xuất và xem dữ liệu, đường dẫn minio bị tạm dừng và xóa, bảng classic_books bị xóa khỏi cơ sở dữ liệu books và chính cơ sở dữ liệu books cũng bị xóa, đảm bảo một bảng xếp hạng sạch sẽ và kết thúc các hoạt động quản lý dữ liệu. Tập lệnh này sẽ giúp bạn bắt đầu thử nghiệm với dữ liệu trong MinIO trong SingleStore.


Xây dựng trên ngăn xếp này

Hướng dẫn này nhanh chóng thiết lập một ngăn xếp dữ liệu mạnh mẽ cho phép thử nghiệm việc lưu trữ, xử lý và truy vấn dữ liệu trong bộ lưu trữ đối tượng. Việc tích hợp SingleStore, một cơ sở dữ liệu dựa trên nền tảng đám mây nổi tiếng với tốc độ và tính linh hoạt, với MinIO tạo thành một viên gạch quan trọng trong ngăn xếp datalake hiện đại.


Khi xu hướng của ngành nghiêng về việc phân chia bộ nhớ và điện toán, thiết lập này trao quyền cho các nhà phát triển khám phá các chiến lược quản lý dữ liệu đổi mới. Cho dù bạn quan tâm đến việc xây dựng các ứng dụng sử dụng nhiều dữ liệu, triển khai phân tích nâng cao hay thử nghiệm khối lượng công việc AI, hướng dẫn này sẽ đóng vai trò là bệ phóng.


Chúng tôi mời bạn xây dựng dựa trên ngăn xếp dữ liệu này, thử nghiệm với các bộ dữ liệu và cấu hình khác nhau, đồng thời giải phóng toàn bộ tiềm năng của các ứng dụng dựa trên dữ liệu của bạn. Nếu có bất kỳ câu hỏi hoặc ý tưởng nào, vui lòng liên hệ với chúng tôi theo địa chỉ [email protected] hoặc tham gia Kênh Slack .