Weaviate là cơ sở dữ liệu vectơ nguồn mở tiên phong, được thiết kế để tăng cường tìm kiếm ngữ nghĩa thông qua việc sử dụng các mô hình học máy. Không giống như các công cụ tìm kiếm truyền thống dựa vào kết hợp từ khóa, Weaviate sử dụng các nguyên tắc tương tự về ngữ nghĩa. Cách tiếp cận sáng tạo này biến đổi nhiều dạng dữ liệu khác nhau (văn bản, hình ảnh, v.v.) thành biểu diễn vectơ, dạng số nắm bắt được bản chất của ngữ cảnh và ý nghĩa của dữ liệu. Bằng cách phân tích những điểm tương đồng giữa các vectơ này, Weaviate mang lại kết quả tìm kiếm thực sự hiểu ý định của người dùng, mang lại bước nhảy vọt đáng kể vượt xa giới hạn của tìm kiếm dựa trên từ khóa.
Hướng dẫn này nhằm mục đích chứng minh sự tích hợp liền mạch của MinIO và Weaviate , tận dụng tốt nhất khả năng lưu trữ đối tượng gốc Kubernetes và khả năng tìm kiếm ngữ nghĩa do AI cung cấp. Tận dụng Docker Compose để điều phối vùng chứa, hướng dẫn này cung cấp cách tiếp cận chiến lược để xây dựng hệ thống quản lý dữ liệu mạnh mẽ, có thể mở rộng và hiệu quả. Nhằm vào cách chúng tôi lưu trữ, truy cập và quản lý dữ liệu, thiết lập này là yếu tố thay đổi cuộc chơi dành cho các nhà phát triển, kỹ sư DevOps và nhà khoa học dữ liệu đang tìm cách khai thác sức mạnh của các giải pháp lưu trữ hiện đại và truy xuất dữ liệu dựa trên AI.
Trong phần trình diễn này, chúng tôi sẽ tập trung vào việc sao lưu Weaviate bằng nhóm MinIO bằng Docker. Thiết lập này đảm bảo tính toàn vẹn và khả năng truy cập dữ liệu trong các dự án phân tích và tìm kiếm nâng cao bằng AI của chúng tôi.
Cuộc trình diễn này nhằm mục đích làm nổi bật sự tích hợp liền mạch của MinIO và Weaviate bằng Docker, giới thiệu một phương pháp đáng tin cậy để sao lưu các hệ thống phân tích và tìm kiếm được tăng cường bởi AI.
Tệp docker-compose.yaml
được cung cấp ở đây được tạo ra nhằm thiết lập quá trình thiết lập liền mạch cho Weaviate, nêu bật cam kết của chúng tôi về việc quản lý dữ liệu hiệu quả và hợp lý. Cấu hình này tạo ra một môi trường mạnh mẽ trong đó MinIO hoạt động như một dịch vụ lưu trữ an toàn và Weaviate tận dụng bộ lưu trữ này để có khả năng tìm kiếm vectơ nâng cao.
Các
version: '3.8' services: weaviate: container_name: weaviate_server image: semitechnologies/weaviate:latest ports: - "8080:8080" environment: AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true' PERSISTENCE_DATA_PATH: '/var/lib/weaviate' ENABLE_MODULES: 'backup-s3' BACKUP_S3_BUCKET: 'weaviate-backups' BACKUP_S3_ENDPOINT: 'play.min.io:443' BACKUP_S3_ACCESS_KEY_ID: 'minioadmin' BACKUP_S3_SECRET_ACCESS_KEY: 'minioadmin' BACKUP_S3_USE_SSL: 'true' CLUSTER_HOSTNAME: 'node1' volumes: - ./weaviate/data:/var/lib/weaviate
Docker-Compose: Triển khai Weaviate với mô- backups-s3
được bật và máy chủ play.min.io
MinIO
Với docker-compose.yaml ở trên, Weaviate được cấu hình phức tạp để sử dụng MinIO cho việc sao lưu, đảm bảo tính toàn vẹn và khả năng truy cập của dữ liệu. Quá trình thiết lập này bao gồm các biến môi trường thiết yếu như ENABLE_MODULES
được đặt thành backup-s3
và các cài đặt khác nhau cho nhóm S3, điểm cuối, khóa truy cập và mức sử dụng SSL. Ngoài ra, PERSISTENCE_DATA_PATH
được đặt để đảm bảo dữ liệu được lưu trữ liên tục và CLUSTER_NAME
để nhận dạng nút.
ENABLE_MODULES
: 'sao lưu-s3'BACKUP_S3_BUCKET
: 'sao lưu dự phòng'BACKUP_S3_ENDPOINT
: 'play.min.io:443'BACKUP_S3_ACCESS_KEY_ID
: 'minioadmin'BACKUP_S3_SECRET_ACCESS_KEY
: 'minioadmin'BACKUP_S3_USE_SSL
: 'đúng'PERSISTENCE_DATA_PATH
: '/var/lib/weaviate'CLUSTER_NAME
: 'nút1'
Dịch vụ Weaviate trong docker-compose này được thiết lập để sử dụng các ổ đĩa được gắn để duy trì dữ liệu; điều này đảm bảo rằng dữ liệu của bạn vẫn tồn tại qua các phiên và hoạt động.
Lưu ý: Nhóm MinIO cần phải tồn tại trước, Weaviate sẽ không tạo nhóm cho bạn.
Để tích hợp MinIO và Weaviate vào dự án của bạn bằng Docker Compose, hãy làm theo quy trình chi tiết sau:
Lưu hoặc cập nhật tệp soạn thảo Docker
Khi đã có tệp docker-compose.yaml, hãy sử dụng lệnh sau trong thiết bị đầu cuối hoặc dấu nhắc lệnh của bạn để bắt đầu triển khai:
docker-compose up -d --build
Lệnh này sẽ khởi động các dịch vụ Weaviate ở chế độ tách rời, chạy chúng trong nền hệ thống của bạn.
Trong quá trình xây dựng và thực thi, Docker Compose sẽ tạo một thư mục liên tục như được chỉ định trong tệp docker-compose.yaml. Thư mục này ( ./weaviate/data
cho Weaviate) được sử dụng để lưu trữ dữ liệu liên tục, đảm bảo rằng dữ liệu của bạn vẫn nguyên vẹn trong quá trình khởi động lại và triển khai vùng chứa.
Bộ lưu trữ liên tục cho phép tạo ra một môi trường ổn định hơn, nơi dữ liệu không bị mất khi vùng chứa được khởi động lại.
Sau khi triển khai docker-compose, bạn có thể truy cập URL của máy chủ Weaviate trong trình duyệt, theo sau là /v1/meta
để kiểm tra xem cấu hình triển khai của bạn có chính xác hay không.
Dòng đầu tiên của tải trọng JSON tại http://localhost:8080/v1/meta
sẽ trông như thế này:
{"hostname":"http://[::]:8080","modules":{"backup-s3":{"bucketName":"weaviate-backups","endpoint":"play.min.io:443","useSSL":true}...[truncated]...}
weaviate-backups
Để tích hợp Weaviate với MinIO, nhóm sao lưu trong MinIO cần có Chính sách truy cập của nhóm sao lưu được chỉ định, cụ thể là weaviate-backups
, ở chế độ Công khai. Việc điều chỉnh này là cần thiết để cấp cho mô-đun Weaviate backup-s3 các quyền cần thiết nhằm tương tác thành công với nhóm MinIO cho các hoạt động sao lưu.
Lưu ý: Trong môi trường sản xuất, bạn có thể cần phải khóa mục này, điều này nằm ngoài phạm vi của hướng dẫn này.
Điều cần thiết là tiếp cận cấu hình này với sự hiểu biết rõ ràng về ý nghĩa bảo mật của việc đặt nhóm thành “ công khai “ . Mặc dù thiết lập này tạo điều kiện thuận lợi cho quá trình sao lưu trong môi trường phát triển, nhưng các phương pháp thay thế cần được xem xét cho các hệ thống sản xuất để duy trì tính bảo mật và toàn vẹn dữ liệu. Sử dụng các biện pháp kiểm soát truy cập chi tiết hơn, chẳng hạn như chính sách IAM hoặc URL “ được chỉ định ”.
Khi kết thúc phần trình diễn này, bạn sẽ có thể thấy các đối tượng nhóm mà Weaviate tạo trong suốt quá trình khi sử dụng mô-đun backup-s3
.
Để bật sao lưu S3 trong Weaviate, hãy đặt các biến môi trường cần thiết trong tệp docker-compose.yaml của bạn. Điều này hướng dẫn Weaviate sử dụng MinIO làm đích dự phòng, bao gồm các cài đặt cho mô-đun sao lưu và chi tiết nhóm MinIO.
Trước khi đi sâu vào các hoạt động kỹ thuật, tôi muốn nói rõ rằng tôi đang trình bày các bước sau trong môi trường JupyterLab nhằm mang lại lợi ích bổ sung cho việc đóng gói quy trình của chúng tôi trong sổ ghi chép, có sẵn tại đây .
Bước đầu tiên liên quan đến việc thiết lập môi trường bằng cách cài đặt thư viện weaviate-client
cho python bằng pip
. Gói Python này rất cần thiết để giao tiếp với API RESTful của Weaviate theo cách Pythonic hơn, cho phép tương tác liền mạch với cơ sở dữ liệu cho các hoạt động như tạo lược đồ, lập chỉ mục dữ liệu, sao lưu và khôi phục. Để minh họa, chúng tôi sẽ minh họa bằng thư viện máy khách Weaviate Python.
Trong phần trình diễn này, chúng tôi đang sử dụng API Weaviate V3 nên bạn có thể thấy thông báo giống như thông báo bên dưới khi chạy tập lệnh python:
`DeprecationWarning: Dep016: You are using the Weaviate v3 client, which is deprecated. Consider upgrading to the new and improved v4 client instead! See here for usage: https://weaviate.io/developers/weaviate/client-libraries/python warnings.warn(`
Thông báo này là một biểu ngữ cảnh báo và có thể bị bỏ qua, để biết thêm thông tin, bạn có thể truy cập vào đây
!pip install weaviate-client
Phần này giới thiệu cấu trúc dữ liệu và lược đồ cho các lớp 'Bài viết' và 'Tác giả' , đặt nền tảng cho cách tổ chức dữ liệu. Nó trình bày cách xác định và quản lý lược đồ trong Weaviate theo chương trình, thể hiện tính linh hoạt và sức mạnh của Weaviate để thích ứng với các mô hình dữ liệu khác nhau phù hợp với nhu cầu ứng dụng cụ thể.
import weaviate client = weaviate.Client("http://localhost:8080") # Schema classes to be created schema = { "classes": [ { "class": "Article", "description": "A class to store articles", "properties": [ {"name": "title", "dataType": ["string"], "description": "The title of the article"}, {"name": "content", "dataType": ["text"], "description": "The content of the article"}, {"name": "datePublished", "dataType": ["date"], "description": "The date the article was published"}, {"name": "url", "dataType": ["string"], "description": "The URL of the article"}, {"name": "customEmbeddings", "dataType": ["number[]"], "description": "Custom vector embeddings of the article"} ] }, { "class": "Author", "description": "A class to store authors", "properties": [ {"name": "name", "dataType": ["string"], "description": "The name of the author"}, {"name": "articles", "dataType": ["Article"], "description": "The articles written by the author"} ] } ] } client.schema.delete_class('Article') client.schema.delete_class('Author') client.schema.create(schema)
Python: tạo các lớp lược đồ
Sau khi xác định lược đồ, sổ ghi chép sẽ hướng dẫn cách khởi tạo ứng dụng khách Weaviate, tạo lược đồ trong phiên bản Weaviate và lập chỉ mục dữ liệu. Quá trình này điền vào cơ sở dữ liệu các tập dữ liệu ban đầu, cho phép khám phá khả năng tìm kiếm vectơ của Weaviate. Nó minh họa các bước thực tế cần thiết để bắt đầu tận dụng Weaviate để lưu trữ và truy vấn dữ liệu ở định dạng vector hóa.
# JSON data to be Ingested data = [ { "class": "Article", "properties": { "title": "LangChain: OpenAI + S3 Loader", "content": "This article discusses the integration of LangChain with OpenAI and S3 Loader...", "url": "https://blog.min.io/langchain-openai-s3-loader/", "customEmbeddings": [0.4, 0.3, 0.2, 0.1] } }, { "class": "Article", "properties": { "title": "MinIO Webhook Event Notifications", "content": "Exploring the webhook event notification system in MinIO...", "url": "https://blog.min.io/minio-webhook-event-notifications/", "customEmbeddings": [0.1, 0.2, 0.3, 0.4] } }, { "class": "Article", "properties": { "title": "MinIO Postgres Event Notifications", "content": "An in-depth look at Postgres event notifications in MinIO...", "url": "https://blog.min.io/minio-postgres-event-notifications/", "customEmbeddings": [0.3, 0.4, 0.1, 0.2] } }, { "class": "Article", "properties": { "title": "From Docker to Localhost", "content": "A guide on transitioning from Docker to localhost environments...", "url": "https://blog.min.io/from-docker-to-localhost/", "customEmbeddings": [0.4, 0.1, 0.2, 0.3] } } ] for item in data: client.data_object.create( data_object=item["properties"], class_name=item["class"] )
Python: lập chỉ mục dữ liệu theo lớp
Với dữ liệu được lập chỉ mục, trọng tâm sẽ chuyển sang bảo toàn trạng thái của cơ sở dữ liệu thông qua các bản sao lưu. Phần này của sổ tay hướng dẫn cách kích hoạt thao tác sao lưu vào MinIO.
result = client.backup.create( backup_id="backup-id", backend="s3", include_classes=["Article", "Author"], # specify classes to include or omit this for all classes wait_for_completion=True, ) print(result)
Python: tạo bản sao lưu
Trông chờ:
{'backend': 's3', 'classes': ['Article', 'Author'], 'id': 'backup-id-2', 'path': 's3://weaviate-backups/backup-id-2', 'status': 'SUCCESS'}
Phản hồi sao lưu thành công
Trước khi tiến hành khôi phục, đôi khi cần phải xóa lược đồ hiện có. Phần này trình bày các bước cho một quá trình khôi phục sạch sẽ. Điều này đảm bảo rằng dữ liệu được khôi phục không xung đột với các lược đồ hoặc dữ liệu hiện có trong cơ sở dữ liệu.
client.schema.delete_class("Article") client.schema.delete_class("Author")
Phần này giải thích cách khôi phục dữ liệu đã sao lưu trước đó, đưa cơ sở dữ liệu trở lại trạng thái tốt đã biết.
result = client.backup.restore( backup_id="backup-id", backend="s3", wait_for_completion=True, ) print(result)
Python: khôi phục bản sao lưu
Trông chờ:
{'backend': 's3', 'classes': ['Article', 'Author'], 'id': 'backup-id', 'path': 's3://weaviate-backups/backup-id', 'status': 'SUCCESS'}
Phản hồi sao lưu-S3 thành công
Phần này của sổ ghi chép cung cấp ví dụ về cách triển khai xử lý lỗi trong quá trình khôi phục bản sao lưu. Nó cung cấp cái nhìn sâu sắc về các vấn đề không mong muốn trong quá trình khôi phục dữ liệu.
from weaviate.exceptions import BackupFailedError try: result = client.backup.restore( backup_id="backup-id", backend="s3", wait_for_completion=True, ) print("Backup restored successfully:", result) except BackupFailedError as e: print("Backup restore failed with error:", e) # Here you can add logic to handle the failure, such as retrying the operation or logging the error.
Trông chờ:
Backup restored successfully: {'backend': 's3', 'classes': ['Author', 'Article'], 'id': 'backup-id', 'path': 's3://weaviate-backups/backup-id', 'status': 'SUCCESS'}
Khôi phục sao lưu thành công
Cuối cùng, để xác nhận rằng quá trình sao lưu và khôi phục đã hoàn tất thành công, sổ ghi chép bao gồm một bước truy xuất lược đồ của lớp 'Bài viết'. Việc xác minh này đảm bảo rằng dữ liệu và lược đồ được khôi phục chính xác.
client.schema.get("Article")
Trả về lớp Article dưới dạng đối tượng JSON
Trông chờ:
{'class': 'Article', 'description': 'A class to store articles'... [Truncated]...}
Mỗi phần của sổ tay cung cấp hướng dẫn toàn diện về vòng đời quản lý dữ liệu trong Weaviate, từ thiết lập ban đầu và tổng hợp dữ liệu đến sao lưu, khôi phục và xác minh, tất cả đều được thực hiện trong hệ sinh thái Python bằng thư viện Weaviate-client.
Cho đến nay chúng tôi đã chỉ cho bạn cách thực hiện việc này theo cách Pythonic. Chúng tôi nghĩ rằng sẽ rất hữu ích nếu hiển thị nội bộ thông qua CURL
cách có thể đạt được các hoạt động tương tự mà không cần viết tập lệnh.
Để tương tác với phiên bản Weaviate cho các tác vụ như tạo lược đồ, lập chỉ mục dữ liệu, thực hiện sao lưu và khôi phục dữ liệu, có thể sử dụng các lệnh cuộn tròn cụ thể. Các lệnh này tạo các yêu cầu HTTP tới API REST của Weaviate. Ví dụ: để tạo một lược đồ, một yêu cầu POST có chi tiết lược đồ sẽ được gửi đến điểm cuối lược đồ của Weaviate. Tương tự, để lập chỉ mục dữ liệu, một yêu cầu POST có trọng tải dữ liệu sẽ được thực hiện tới điểm cuối của đối tượng.
Quá trình sao lưu được kích hoạt thông qua yêu cầu POST tới điểm cuối sao lưu và quá trình khôi phục được thực hiện thông qua yêu cầu POST tới điểm cuối khôi phục. Mỗi thao tác này yêu cầu tải trọng JSON thích hợp, thường được cung cấp dưới dạng tham chiếu tệp trong lệnh cuộn tròn bằng ký hiệu @
.
Để triển khai Weaviate, tất nhiên chúng tôi sẽ yêu cầu dữ liệu mẫu để làm việc.
Tôi đã bao gồm những điều sau đây:
schema.json
phác thảo cấu trúc của dữ liệu chúng ta muốn lập chỉ mục.
data.json
là nơi dữ liệu thực tế của chúng ta phát huy tác dụng, cấu trúc của nó phù hợp với các lớp trong tệp lược đồ.json.
Các tệp lược đồ.json và data.json có sẵn trong kho lưu trữ nội dung blog MinIO nằm ở vị trí
{ "classes": [ { "class": "Article", "description": "A class to store articles", "properties": [ {"name": "title", "dataType": ["string"], "description": "The title of the article"}, {"name": "content", "dataType": ["text"], "description": "The content of the article"}, {"name": "datePublished", "dataType": ["date"], "description": "The date the article was published"}, {"name": "url", "dataType": ["string"], "description": "The URL of the article"}, {"name": "customEmbeddings", "dataType": ["number[]"], "description": "Custom vector embeddings of the article"} ] }, { "class": "Author", "description": "A class to store authors", "properties": [ {"name": "name", "dataType": ["string"], "description": "The name of the author"}, {"name": "articles", "dataType": ["Article"], "description": "The articles written by the author"} ] } ] }
Các lớp lược đồ mẫu cho Bài viết và Tác giả
Các
Mặt khác,
[ { "class": "Article", "properties": { "title": "LangChain: OpenAI + S3 Loader", "content": "This article discusses the integration of LangChain with OpenAI and S3 Loader...", "url": "https://blog.min.io/langchain-openai-s3-loader/", "customEmbeddings": [0.4, 0.3, 0.2, 0.1] } }, { "class": "Article", "properties": { "title": "MinIO Webhook Event Notifications", "content": "Exploring the webhook event notification system in MinIO...", "url": "https://blog.min.io/minio-webhook-event-notifications/", "customEmbeddings": [0.1, 0.2, 0.3, 0.4] } }, { "class": "Article", "properties": { "title": "MinIO Postgres Event Notifications", "content": "An in-depth look at Postgres event notifications in MinIO...", "url": "https://blog.min.io/minio-postgres-event-notifications/", "customEmbeddings": [0.3, 0.4, 0.1, 0.2] } }, { "class": "Article", "properties": { "title": "From Docker to Localhost", "content": "A guide on transitioning from Docker to localhost environments...", "url": "https://blog.min.io/from-docker-to-localhost/", "customEmbeddings": [0.4, 0.1, 0.2, 0.3] } } ]
Dữ liệu mẫu chứa bài viết
Lược đồ đóng vai trò là xương sống cấu trúc của hệ thống quản lý dữ liệu của chúng tôi, xác định cách tổ chức, lập chỉ mục và truy vấn dữ liệu.
Thông qua một lệnh cuộn tròn đơn giản và với các tệp mẫu của chúng tôi được sao chép cục bộ vào thư mục làm việc hiện tại của chúng tôi; chúng ta có thể đăng trực tiếp lược đồ.json của mình lên Weaviate, đặt ra các quy tắc và mối quan hệ mà dữ liệu của chúng ta sẽ tuân thủ.
curl -X POST -H "Content-Type: application/json" \ --data @schema.json http://localhost:8080/v1/schema
CURL: tạo
Với lược đồ của chúng tôi đã sẵn sàng, bước tiếp theo liên quan đến việc điền dữ liệu thực tế vào đó. Sử dụng một lệnh cuộn tròn khác, chúng tôi lập chỉ mục data.json của mình vào lược đồ.
curl -X POST -H "Content-Type: application/json" \ --data @data.json http://localhost:8080/v1/objects
CURL: chỉ mục
Chúng tôi sẽ cần chỉ định một mã định danh duy nhất hoặc "id dự phòng". Mã định danh này không chỉ tạo điều kiện thuận lợi cho việc theo dõi và truy xuất chính xác các bộ sao lưu mà còn đảm bảo rằng mỗi tập dữ liệu đều được kiểm soát phiên bản.
curl -X POST 'http://localhost:8080/v1/backups/s3' -H 'Content-Type:application/json' -d '{ "id": "backup-id", "include": [ "Article", "Author" ] }'
CURL: sao lưu-s3
Trông chờ:
{'backend': 's3', 'classes': ['Article', 'Author'], 'id': 'backup-id', 'path': 's3://weaviate-backups/backup-id', 'status': 'SUCCESS'}
Phản hồi sao lưu-S3 thành công
Đầu ra này được định dạng dưới dạng đối tượng JSON. Nó bao gồm phần phụ trợ được sử dụng (trong trường hợp này là 's3'
), danh sách các lớp được bao gồm trong bản sao lưu ( 'Article'
, 'Author'
), id định danh duy nhất được cấp cho bản sao lưu ( 'backup-id'
) , đường dẫn cho biết nơi lưu trữ bản sao lưu trong nhóm S3 ( s3://weaviate-backups/backup-id
) và trạng thái hoạt động ( 'SUCCESS'
).
Phản hồi có cấu trúc này không chỉ xác nhận việc hoàn thành thành công quá trình sao lưu mà còn cung cấp thông tin cần thiết có thể được sử dụng cho các quá trình tham khảo, kiểm tra hoặc khôi phục trong tương lai.
Việc khôi phục dữ liệu trong hệ sinh thái Weaviate được hỗ trợ thông qua lệnh gọi API có cấu trúc, thông qua yêu cầu POST nhắm mục tiêu điểm cuối /v1/backups/s3/backup-id/restore, được xác định bởi backup-id. Lệnh gọi cuộn này không chỉ khôi phục dữ liệu bị mất hoặc được lưu trữ mà còn cho phép bạn duy trì tính liên tục.
curl -X POST 'http://localhost:8080/v1/backups/s3/backup-id/restore' \ -H 'Content-Type:application/json' \ -d '{ "id": "backup-id", "exclude": ["Author"] }'
CURL: khôi phục
Trông chờ:
{ "backend": "s3", "classes": ["Article"], "id": "backup-id", "path": "s3://weaviate-backups/backup-id", "status": "SUCCESS" }
Phản hồi khôi phục thành công
Mỗi lệnh này phải được điều chỉnh dựa trên yêu cầu và thiết lập cụ thể của bạn. Bạn có thể cần sửa đổi URL điểm cuối, đường dẫn tệp dữ liệu và các tham số khác nếu cần. Ngoài ra, hãy đảm bảo rằng các tệp cần thiết (schema.json, data.json) và cấu hình có sẵn trong môi trường của bạn.
Bằng cách mã hóa mọi thứ trong Git, các nhóm có thể dễ dàng theo dõi các thay đổi, khôi phục về trạng thái trước đó và đảm bảo tính nhất quán giữa các môi trường. Quy trình công việc GitOps có thể được tích hợp với các công cụ tích hợp liên tục/triển khai liên tục (CI/CD) và Kubernetes, giúp đơn giản hóa hơn nữa việc điều phối các ứng dụng được đóng gói và quản lý cơ sở hạ tầng. Chúng tôi sẽ đi vào chi tiết trong bài đăng sau về cách tự động hóa bằng GitOps.
Weaviate cho phép sao lưu hoặc khôi phục các lớp cụ thể, rất hữu ích cho các trường hợp như di chuyển dữ liệu một phần hoặc thử nghiệm phát triển.
Sao lưu nhiều nút: Đối với thiết lập nhiều nút, đặc biệt là trong môi trường Kubernetes, hãy đảm bảo rằng cấu hình của bạn chỉ định chính xác mô-đun sao lưu (như backup-s3 cho MinIO) và các biến môi trường liên quan.
Nếu bạn gặp sự cố trong quá trình sao lưu hoặc khôi phục, hãy kiểm tra cấu hình biến môi trường của bạn, đặc biệt liên quan đến cài đặt SSL cho bộ lưu trữ tương thích với S3 như MinIO. Vô hiệu hóa SSL ( BACKUP_S3_USE_SSL: false
) có thể giải quyết một số sự cố kết nối nhất định.
Khi chúng tôi kết thúc quá trình khám phá việc tích hợp Weaviate với MinIO bằng Docker Compose, rõ ràng là sự kết hợp này không chỉ là một giải pháp kỹ thuật mà còn là một cải tiến mang tính chiến lược cho việc quản lý dữ liệu. Sự tích hợp này hoàn toàn phù hợp với cam kết của MinIO trong việc cung cấp các giải pháp lưu trữ dữ liệu có khả năng mở rộng, an toàn và hiệu suất cao, hiện được khuếch đại nhờ các khả năng do AI điều khiển của Weaviate. Việc sử dụng Docker Compose giúp hợp lý hóa hơn nữa quá trình tích hợp này, nhấn mạnh sự tập trung của chúng tôi vào việc làm cho các công nghệ phức tạp có thể truy cập và quản lý được.
Như mọi khi, nhóm MinIO vẫn cam kết thúc đẩy sự đổi mới trong lĩnh vực quản lý dữ liệu. Sự cống hiến của chúng tôi trong việc nâng cao và hợp lý hóa cách lưu trữ, truy cập và phân tích dữ liệu là cốt lõi trong sứ mệnh của chúng tôi.
Bằng cách kết hợp các chức năng cơ sở dữ liệu vectơ nâng cao của Weaviate với các giải pháp lưu trữ mạnh mẽ do MinIO cung cấp, người dùng được trao quyền để khai thác toàn bộ tiềm năng dữ liệu của họ. Điều này bao gồm việc tận dụng các chức năng tìm kiếm ngữ nghĩa để đảm bảo không chỉ khả năng truy cập dữ liệu mà còn bảo mật dữ liệu ở cấp độ cơ bản.
Chúng tôi thực sự được truyền cảm hứng từ sự đổi mới đáng chú ý xuất phát từ tâm trí của những nhà phát triển tận tâm và đam mê như bạn. Điều này kích thích chúng tôi cung cấp sự hỗ trợ của mình và trở thành một phần trong hành trình khám phá các giải pháp tiên tiến và đạt đến tầm cao mới trong các dự án dựa trên dữ liệu của bạn. Xin vui lòng liên hệ với chúng tôi trên