Резервное копирование Weaviate с помощью сегментов MinIO S3 для достижения стратегического улучшения управления данными

Резервное копирование Weaviate с помощью сегментов MinIO S3 для достижения стратегического улучшения управления данными

5 апреля 2024 г.

Weaviate — это новаторская векторная база данных с открытым исходным кодом, предназначенная для улучшения семантического поиска за счет использования моделей машинного обучения. В отличие от традиционных поисковых систем, которые полагаются на сопоставление ключевых слов, Weaviate использует принципы семантического сходства. Этот инновационный подход преобразует различные формы данных (тексты, изображения и т. д.) в векторные представления, числовые формы, которые отражают суть контекста и значения данных. Анализируя сходство между этими векторами, Weaviate предоставляет результаты поиска, которые действительно понимают намерения пользователя, предлагая значительный шаг за пределы ограничений поиска на основе ключевых слов.

Цель этого руководства — продемонстрировать плавную интеграцию MinIO и Weaviate, используя лучшее из встроенного в Kubernetes объектного хранилища и возможностей семантического поиска на базе искусственного интеллекта. Используя Docker Compose для оркестрации контейнеров, в этом руководстве представлен стратегический подход к созданию надежной, масштабируемой и эффективной системы управления данными. Эта установка, ориентированная на то, как мы храним данные, получаем к ним доступ и управляем ими, меняет правила игры для разработчиков, DevOps-инженеров и специалистов по обработке данных, стремящихся использовать возможности современных решений хранения и извлечения данных с помощью искусственного интеллекта.

Введение в технологический стек

В этой демонстрации мы сосредоточимся на резервном копировании Weaviate с помощью сегментов MinIO с помощью Docker. Такая настройка обеспечивает целостность и доступность данных в наших проектах поиска и анализа с использованием искусственного интеллекта.

* MinIO для хранилища: Мы используем MinIO в качестве основной платформы хранения. MinIO, известный своей высокой производительностью и масштабируемостью, способен безопасно и эффективно обрабатывать большие объемы данных. В этой демонстрации вы увидите, как сегменты MinIO используются для резервного копирования данных Weaviate, обеспечивая безупречную целостность и производительность нашей системы.

* База данных векторов Weaviate: Центральная часть этой интеграции — база данных векторов Weaviate, предоставляющая приложениям искусственного интеллекта возможность выполнять семантический поиск. Преобразуя неструктурированные данные в осмысленные векторные представления, он позволяет приложениям понимать данные и взаимодействовать с ними в более детальной манере, открывая путь к более интеллектуальным и гибким функциям на основе искусственного интеллекта.

Эта демонстрация призвана продемонстрировать плавную интеграцию MinIO и Weaviate с использованием Docker и продемонстрировать надежный метод резервного копирования систем поиска и анализа с улучшенным искусственным интеллектом.

Ресурсы

Необходимые знания

  • На вашем компьютере установлены Docker и Docker Compose.
  • Базовое понимание концепций Docker и синтаксиса YAML.
  • Среда Python для использования библиотеки weaviate-client.
  • Доступ к командной строке для запуска таких команд, как Curl.

Интеграция и настройка с помощью Docker Compose

Приведенный здесь файл docker-compose.yaml создан для простой настройки Weaviate, подчеркивая наше стремление к упрощенному и эффективному управлению данными. Эта конфигурация обеспечивает надежную среду, в которой MinIO действует как служба безопасного хранения, а Weaviate использует это хранилище для расширенных возможностей векторного поиска.

Докер- В файле compose.yaml ниже описывается настройка Weaviate.

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: развертывание Weaviate с включенным модулем backups-s3 и сервером play.min.io MinIO

Настройка Weaviate для резервного копирования S3

С помощью приведенного выше файла docker-compose.yaml Weaviate сложно настроен на использование MinIO для резервного копирования, обеспечивая целостность и доступность данных. Эта настройка включает в себя важные переменные среды, такие как ENABLE_MODULES со значением backup-s3, а также различные настройки для корзины S3, конечной точки, ключей доступа и использования SSL. Кроме того, PERSISTENCE_DATA_PATH установлен для обеспечения постоянного хранения данных, а CLUSTER_NAME — для идентификации узла.

Известные переменные среды:

  • 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'
  • PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
  • CLUSTER_NAME: 'node1'

Служба Weaviate в этом docker-compose настроена на использование смонтированных томов для сохранения данных; это гарантирует сохранение ваших данных во время сеансов и операций.

:::информация Примечание. Корзина MinIO должна существовать заранее. Weaviate не будет создавать корзину за вас.

:::

Этапы развертывания

Чтобы интегрировать MinIO и Weaviate в ваш проект с помощью Docker Compose, выполните следующую подробную процедуру:

Сохранение или обновление файла Docker Compose

* Новая настройка. Если это новая настройка, сохраните предоставленный файл docker-compose.yaml непосредственно в рабочий каталог вашего проекта. Этот файл имеет решающее значение для правильной настройки служб.

* Существующая установка: Если вы обновляете существующую производственную среду, измените текущий файл docker-compose.yaml, чтобы он отражал параметры, описанные выше. Убедитесь, что эти настройки точно воспроизведены для подключения к вашим сервисам.

Запуск файла Docker Compose

После создания файла docker-compose.yaml используйте следующую команду в терминале или командной строке, чтобы начать развертывание:

docker-compose up -d --build

Эта команда запустит службы Weaviate в автономном режиме, работая в фоновом режиме вашей системы.

Понимание постоянных каталогов

  • В процессе сборки и выполнения Docker Compose создаст постоянный каталог, указанный в файле docker-compose.yaml. Этот каталог (./weaviate/data для Weaviate) используется для постоянного хранения данных, гарантируя, что ваши данные останутся нетронутыми при перезапусках и развертываниях контейнера.

Постоянное хранилище обеспечивает более стабильную среду, в которой данные не теряются при перезапуске контейнера.

После развертывания docker-compose вы можете посетить URL-адрес вашего сервера Weaviate в браузере, а затем /v1/meta, чтобы проверить правильность настроек развертывания.

Первая строка полезных данных JSON по адресу http://localhost:8080/v1/meta должна выглядеть следующим образом:

{"hostname":"http://[::]:8080","modules":{"backup-s3":{"bucketName":"weaviate-backups","endpoint":"play.min.io:443","useSSL":true}...[truncated]...}

Настройка MinIO: политика доступа для бакета weaviate-backups

Для интеграции Weaviate с MinIO корзине резервного копирования в MinIO необходима Политика доступа назначенной корзины резервного копирования, а именно weaviate-backups , в Публику. Эта настройка необходима для предоставления модулю Weaviate backup-s3 необходимых разрешений для успешного взаимодействия с ведром MinIO для операций резервного копирования.

Configuring the weaviate-backups bucket Access Policy

:::информация Примечание. В производственной среде вам, вероятно, придется это заблокировать, но это выходит за рамки данного руководства.

:::

Очень важно подходить к этой настройке с четким пониманием последствий для безопасности установки сегмента public. Хотя такая настройка облегчает процесс резервного копирования в среде разработки, для производственных систем следует рассмотреть альтернативные подходы для обеспечения безопасности и целостности данных. Использование детального контроля доступа, например политик IAM или «заранее назначенных» URL-адресов.

Successful backup to weaviate-backups bucket

К концу этой демонстрации вы сможете увидеть объекты корзины, которые Weaviate создает на протяжении всего процесса при использовании модуля backup-s3.

Описание процесса с использованием Python

Чтобы включить резервное копирование S3 в Weaviate, установите необходимые переменные среды в файле docker-compose.yaml. Это предписывает Weaviate использовать MinIO в качестве места назначения резервного копирования, включая настройки модулей резервного копирования и сведения о корзине MinIO.

<блок-цитата>

Прежде чем углубиться в технические операции, я хотел бы заявить, что я демонстрирую следующие шаги в среде JupyterLab для дополнительного преимущества инкапсуляции нашего конвейера в блокнот, доступный здесь.

Первый шаг включает настройку среды путем установки библиотеки weaviate-client для Python с помощью pip. Этот пакет Python необходим для взаимодействия с RESTful API Weaviate более Pythonic, обеспечивая плавное взаимодействие с базой данных для таких операций, как создание схемы, индексирование данных, резервное копирование и восстановление. Для демонстрации мы проиллюстрируем использование клиентской библиотеки Weaviate Python.

В этой демонстрации мы используем API Weaviate V3, поэтому при запуске скрипта 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(`

Это сообщение представляет собой предупреждающий баннер, и его можно игнорировать. Для получения дополнительной информации посетите этот статья в блоге Weaviate.

Описание шагов Python:

  1. Установить библиотеку weaviate-client
  2. Инициализация клиента
  3. Создание схемы
  4. Вставка данных
  5. Начало резервного копирования
  6. Восстановление данных
  7. 1. Установка библиотеки Weaviate-Client

    !pip install weaviate-client
    

    2. Импорт классов схемы для статьи & Автор

    В этом разделе представлены структура и схема данных для классов 'Статья' и 'Автор', закладывающие основу для организации данных. Он демонстрирует, как программно определять схему и управлять ею в Weaviate, демонстрируя гибкость и возможности Weaviate для адаптации к различным моделям данных, адаптированным к конкретным потребностям приложения.

    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: создание классов схемы

    3. Настройка схемы и данных

    После определения схемы записная книжка поможет инициализировать клиент Weaviate, создать схему в экземпляре Weaviate и индексировать данные. Этот процесс заполняет базу данных исходными наборами данных, что позволяет изучить возможности векторного поиска Weaviate. Он иллюстрирует практические шаги, необходимые для начала использования Weaviate для хранения и запроса данных в векторизованном формате.

    # 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: индексирование данных по классам

    4. Создание резервной копии

    После индексации данных акцент смещается на сохранение состояния базы данных посредством резервного копирования. В этой части записной книжки показано, как запустить операцию резервного копирования в 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: создать резервную копию

    Ожидать:

    {'backend': 's3', 'classes': ['Article', 'Author'], 'id': 'backup-id-2', 'path': 's3://weaviate-backups/backup-id-2', 'status': 'SUCCESS'}
    

    Успешный ответ резервного копирования

    5. Удаление классов схемы для целей восстановления

    Прежде чем приступить к восстановлению, иногда необходимо очистить существующую схему. В этом разделе показаны этапы процесса чистого восстановления. Это гарантирует, что восстановленные данные не будут конфликтовать с существующими схемами или данными в базе данных.

    client.schema.delete_class("Article")
    client.schema.delete_class("Author")
    

    6. Восстановление резервной копии

    В этом разделе объясняется, как восстановить ранее зарезервированные данные, вернув базу данных в заведомо исправное состояние.

    result = client.backup.restore(
      backup_id="backup-id",
      backend="s3",
      wait_for_completion=True,
    )
    
    print(result)
    

    Python: восстановление резервной копии

    Ожидать:

    {'backend': 's3', 'classes': ['Article', 'Author'], 'id': 'backup-id', 'path': 's3://weaviate-backups/backup-id', 'status': 'SUCCESS'}
    

    Успешный ответ Backup-S3

    Обработка ошибок во время восстановления

    В этой части записной книжки приведен пример реализации обработки ошибок в процессе восстановления из резервной копии. Он дает представление о непредвиденных проблемах во время операций восстановления данных.

    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.
    

    Ожидать:

    Backup restored successfully: {'backend': 's3', 'classes': ['Author', 'Article'], 'id': 'backup-id', 'path': 's3://weaviate-backups/backup-id', 'status': 'SUCCESS'}
    

    Успешное восстановление из резервной копии

    Проверка успешности восстановления

    Наконец, чтобы подтвердить успешное завершение процесса резервного копирования и восстановления, в записной книжке предусмотрен этап получения схемы класса «Статья». Эта проверка гарантирует правильность восстановления данных и схемы.

    client.schema.get("Article")
    

    Возвращает класс Article как объект JSON

    Ожидать:

    {'class': 'Article', 'description': 'A class to store articles'... [Truncated]...}
    

    Каждый раздел блокнота содержит подробное руководство по жизненному циклу управления данными в Weaviate, от первоначальной настройки и заполнения данных до резервного копирования, восстановления и проверки, и все это выполняется в экосистеме Python с использованием клиентской библиотеки Weaviate.

    Описание процесса с помощью Curl

    До сих пор мы показали вам, как это сделать с помощью Pythonic. Мы подумали, что было бы полезно показать с помощью CURL, как можно выполнить те же операции без написания скрипта.

    Для взаимодействия с экземпляром Weaviate для таких задач, как создание схемы, индексирование данных, выполнение резервного копирования и восстановление данных, можно использовать специальные команды Curl. Эти команды отправляют HTTP-запросы к REST API Weaviate. Например, для создания схемы запрос POST с подробностями схемы отправляется в конечную точку схемы Weaviate. Аналогично, для индексации данных к конечной точке объектов отправляется POST-запрос с полезными данными.

    Резервное копирование запускается с помощью запроса POST к конечной точке резервного копирования, а восстановление выполняется с помощью запроса POST к конечной точке восстановления. Для каждой из этих операций требуются соответствующие полезные данные JSON, которые обычно предоставляются в виде ссылки на файл в команде Curl с использованием символа @.

    Для внедрения Weaviate нам, конечно, потребуются образцы данных для работы, которые

    Я включил следующее:

    1. schema.json описывает структуру данных, которые мы хотим индексировать.
    2. В
    3. data.json используются наши фактические данные, их структура соответствует классам в файле Schema.json.
    4. Файлы Schema.json и data.json доступны в репозитории blog-assets MinIO, расположенном здесь.

      schema.json

      {
        "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"}
            ]
          }
        ]
      }
      

      Примеры классов схемы для статьи и автора

      schema.json< Файл /a> описывает структуру индексируемых данных, подробно описывая классы, свойства и их типы данных, эффективно закладывая основу для организации данных и взаимодействия с ними в Weaviate. Эта схема служит для ИИ образцом для понимания и классификации входящих данных, гарантируя, что векторная поисковая система сможет работать точно и актуально.

      С другой стороны, data.json заполняет эту схему реальными экземплярами данных, отражая реальные приложения и сценарии. Этот пример данных освещает потенциал поисковых возможностей Weaviate, предлагая практический опыт, демонстрирующий, как решаются запросы и как результаты динамически генерируются на основе понимания контента ИИ.

      data.json

      [
          {
              "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]
              }
          }
      ]
      

      Пример данных, содержащих статьи

      Настройка с помощью Curl

      Схема действует как структурная основа нашей системы управления данными, определяя, как данные организуются, индексируются и запрашиваются.

      Создание схемы Weaviate

      С помощью простой команды Curl и с помощью наших примеров файлов, клонированных локально в наш текущий рабочий каталог; мы можем опубликовать наш файл Schema.json непосредственно в Weaviate, устанавливая правила и отношения, которым будут соответствовать наши данные.

      curl -X POST -H "Content-Type: application/json" 
      --data @schema.json http://localhost:8080/v1/schema
      

      CURL: создать

      Заполнение схемы: индексирование данных

      Когда наша схема готова, следующим шагом будет ее заполнение фактическими данными. Используя другую команду Curl, мы индексируем наш data.json в схеме.

      curl -X POST -H "Content-Type: application/json" 
      --data @data.json http://localhost:8080/v1/objects
      

      CURL: индекс

      Обеспечение надежности данных: резервное копирование с помощью MinIO

      Нам нужно будет присвоить уникальный идентификатор или «резервный идентификатор». Этот идентификатор не только облегчает точное отслеживание и извлечение наборов резервных копий, но также гарантирует, что каждый набор данных контролируется версией.

      curl -X POST 'http://localhost:8080/v1/backups/s3' -H 'Content-Type:application/json' -d '{
        "id": "backup-id",
        "include": [
          "Article",
          "Author"
        ]
      }'
      

      CURL: резервная копия-s3

      Ожидать:

      {'backend': 's3', 'classes': ['Article', 'Author'], 'id': 'backup-id', 'path': 's3://weaviate-backups/backup-id', 'status': 'SUCCESS'}
      

      Успешный ответ Backup-S3

      Этот вывод отформатирован как объект JSON. Он включает в себя используемый бэкэнд (в данном случае 's3'), список классов, которые были включены в резервную копию ('Статья', 'Автор' ), уникальный идентификатор, присвоенный резервной копии ('backup-id'), путь, указывающий, где хранится резервная копия в корзине S3 (s3://weaviate -backups/backup-id) и статус операции ('SUCCESS').

      Этот структурированный ответ не только подтверждает успешное завершение процесса резервного копирования, но также предоставляет важную информацию, которую можно использовать для будущих справок, аудита или процессов восстановления.

      Процесс восстановления данных

      Восстановление данных в экосистеме Weaviate осуществляется посредством структурированного вызова API через запрос POST, нацеленный на конечную точку /v1/backups/s3/backup-id/restore, идентифицируемую по идентификатору резервной копии. Этот вызов Curl не только восстанавливает утерянные или заархивированные данные, но и позволяет поддерживать непрерывность.

      curl -X POST 'http://localhost:8080/v1/backups/s3/backup-id/restore' 
      -H 'Content-Type:application/json' 
      -d '{
        "id": "backup-id",
        "exclude": ["Author"]
      }'
      

      CURL: восстановить

      Ожидать:

      {
        "backend": "s3",
        "classes": ["Article"],
        "id": "backup-id",
        "path": "s3://weaviate-backups/backup-id",
        "status": "SUCCESS"
      }
      

      Успешный ответ на восстановление

      Каждую из этих команд следует адаптировать в соответствии с вашими конкретными настройками и требованиями. При необходимости вам может потребоваться изменить URL-адреса конечных точек, пути к файлам данных и другие параметры. Также убедитесь, что необходимые файлы (schema.json, data.json) и конфигурации доступны в вашей среде.

      Дополнительные примечания о Weaviate

      Автоматизация с помощью GitOps

      Благодаря кодификации всего в Git команды могут легко отслеживать изменения, выполнять откат к предыдущим состояниям и обеспечивать согласованность между средами. Рабочие процессы GitOps можно интегрировать с инструментами непрерывной интеграции/непрерывного развертывания (CI/CD) и Kubernetes, что еще больше упрощает оркестровку контейнерных приложений и управление инфраструктурой. В следующей статье мы подробно расскажем, как автоматизировать использование GitOps.

      Частичное резервное копирование и восстановление

      Weaviate позволяет выполнять резервное копирование или восстановление определенных классов, что полезно в таких случаях, как частичная миграция данных или тестирование разработки.

      Многоузловые резервные копии Для установок с несколькими узлами, особенно в средах Kubernetes, убедитесь, что в вашей конфигурации правильно указан модуль резервного копирования (например, backup-s3 для MinIO). и соответствующие переменные среды.

      Устранение неполадок

      Если у вас возникли проблемы во время резервного копирования или восстановления, проверьте конфигурации переменных среды, особенно связанные с настройками SSL для S3-совместимого хранилища, такого как MinIO. Отключение SSL (BACKUP_S3_USE_SSL: false) может решить некоторые проблемы с подключением.

      Надежное и масштабируемое решение для резервного копирования Weaviate с MinIO

      Завершая исследование интеграции Weaviate с MinIO с помощью Docker Compose, становится очевидным, что эта комбинация — не просто техническое решение, а стратегическое усовершенствование управления данными. Эта интеграция идеально соответствует стремлению MinIO предоставлять масштабируемые, безопасные и высокопроизводительные решения для хранения данных, которые теперь усиливаются возможностями Weaviate на основе искусственного интеллекта. Использование Docker Compose еще больше упрощает эту интеграцию, подчеркивая наше стремление сделать сложные технологии доступными и управляемыми.

      Как всегда, команда MinIO по-прежнему привержена внедрению инноваций в области управления данными. Наша приверженность улучшению и оптимизации способов хранения, доступа и анализа данных лежит в основе нашей миссии.

      Объединив передовые возможности векторной базы данных Weaviate с надежными решениями для хранения данных, предоставляемыми MinIO, пользователи получают возможность раскрыть весь потенциал своих данных. Это включает в себя использование функций семантического поиска, которые обеспечивают не только доступность данных, но и их безопасность на базовом уровне.

      Нас искренне вдохновляют замечательные инновации, рождающиеся в умах таких преданных своему делу и увлеченных разработчиков, как вы. Мы рады предложить нашу поддержку и стать частью вашего пути к изучению передовых решений и достижению новых высот в ваших проектах, основанных на данных. Пожалуйста, не стесняйтесь обращаться к нам в Slack, есть ли у вас вопросы или вы просто хотите поздороваться.


      Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE