Pesquisar com OpenSearch Snapshots Pesquisáveis

Aumente a eficiência de seus clusters para consultar dados diretamente do armazenamento remoto escalável e econômico.

O recurso de snapshots pesquisáveis do OpenSearch permite montar snapshots de índice armazenados em buckets do Object Storage, como índices ativos e pesquisáveis. Em vez de restaurar dados para nós primários, os snapshots pesquisáveis mantêm um cache local leve de segmentos consultados com frequência. Os snapshots pesquisáveis permitem que seu cluster consulte dados diretamente de um armazenamento remoto econômico e escalável, mantendo o desempenho alto.

Estes são alguns benefícios para você usando snapshots pesquisáveis:

  • Eficiência de custos: você pode descarregar dados mais antigos ou acessados com pouca frequência para armazenamento remoto, reduzindo a necessidade de armazenamento caro de alto desempenho em seu cluster principal.
  • Gerenciamento simplificado: Você pode gerenciar automaticamente dados históricos com políticas que fazem a transição de índices de armazenamento quente para frio sem tempo de inatividade.
  • Escalabilidade aprimorada: você pode aproveitar a capacidade virtualmente ilimitada do Object Storage e, ao mesmo tempo, fornecer recursos de pesquisa quase em tempo real por meio do armazenamento em cache em nós de pesquisa dedicados.
  • Desempenho otimizado: ao armazenar em cache apenas as partes mais acessadas dos dados, os snapshots pesquisáveis mantêm tempos de resposta de consulta rápidos, mesmo quando a maioria dos dados é armazenada remotamente.

Ao combinar nós de pesquisa dedicados e uma política de Index State Management (ISM), você pode obter eficiência de custos, desempenho de pesquisa e automação para sua organização.

As seções a seguir descrevem como configurar e usar instantâneos pesquisáveis no OpenSearch.

Criando um Cluster OpenSearch com Nós de Pesquisa Dedicados

Em Search with OpenSearch, os nós de pesquisa tratam snapshots pesquisáveis. Por exemplo, eles armazenam dados em cache localmente para que as pesquisas possam ser fornecidas do disco/memória em vez do armazenamento de objetos sozinho. Ao criar um cluster OpenSearch, você deve especificar a configuração do nó de pesquisa, incluindo:

  • A forma usada pelo nó de pesquisa.
  • O número de nós de dados que você deseja especificar como nós de pesquisa.
  • O número de OCPUs do nó de pesquisa.
  • A quantidade de memória para os nós de pesquisa.
  • O volume de armazenamento para os nós de pesquisa.

Todos os nós de pesquisa devem ter um tipo de host FLEX.

Para obter mais informações sobre como configurar nós de pesquisa em um cluster, consulte Criando uma Pesquisa com o Cluster OpenSearch.

Decidindo a Contagem de Nós de Pesquisa

Recomendamos que você especifique entre 20% e 40% de seus nós de dados como nós de pesquisa. A tabela a seguir mostra exemplos de intervalos mínimos e máximos com base na contagem de nós de dados:

Intervalos de Pesquisa de Nó
Nós de Dados Mínimo de Nós de Pesquisa Máximo de Nós de Pesquisa
1-2 1 1
3-5 1 2
6-7 2 3
8-10 2 4
11-12 3 5
13-15 3 6
50 10 20
100 20 40

Registrando um Repositório do Serviço Object Storage para Snapshots

Para executar snapshots pesquisáveis, você precisa de um repositório de snapshots apontando para o Object Storage. Em OpenSearch, você geralmente registra o repositório usando um ponto final de plug-in compatível com S3.

O exemplo a seguir mostra como você pode registrar um repositório. Ajuste os valores de parâmetro para sua configuração do Object Storage:

PUT _snapshot/my_snapshot_repository
{
  "type": "oci",
  "settings": {
    "client": "default",
    "endpoint": "<region-endpoint>",
    "bucket": "<object-storage-bucket>",
    "namespace": "<object-storage-namespace>",
    "authType": "RESOURCE_PRINCIPAL",
    "bucket_compartment_id": "<bucket_compartment_ocid>"
  }
}

Definindo uma Política ISM para Instantâneos Pesquisáveis Automáticos

O plug-in do OpenSearch Index State Management (ISM) permite automatizar transições de índice com base em regras. Crie uma política ISM que faça o seguinte:
  • Aguarda 90 dias no estado quente.
  • Faz um instantâneo do índice.
  • Converte o índice em um snapshot pesquisável remoto (usando os nós de pesquisa dedicados que você configurou).

O exemplo a seguir mostra uma política ISM com um acionador de 90 dias:

PUT _plugins/_ism/policies/searchable_snapshots_policy
{
  "policy": {
    "description": "Policy to snapshot and convert index to remote searchable snapshot after 90 days",
    "default_state": "hot_state",
    "states": [
      {
        "name": "hot_state",
        "actions": [],
        "transitions": [
          {
            "state_name": "snapshot_state",
            "conditions": {
              "min_index_age": "90d"
            }
          }
        ]
      },
      {
        "name": "snapshot_state",
        "actions": [
          {
            "snapshot": {
              "repository": "my_snapshot_repository",
              "snapshot": "{{ctx.index}}"
            }
          }
        ],
        "transitions": [
          {
            "state_name": "cold_state",
            "conditions": {}
          }
        ]
      },
      {
        "name": "cold_state",
        "actions": [
          {
            "convert_index_to_remote": {
              "repository": "my_snapshot_repository"
            }
          }
        ],
        "transitions": []
      }
    ]
  }
}

Aqui, o índice permanece neste estado por 90 dias no estado quente. Após 90 dias, o ISM faz um snapshot do índice e, em seguida, faz a transição para o estado frio, onde o índice é convertido em um snapshot pesquisável remoto. Agora ele reside principalmente no Object Storage, mas pode ser pesquisado usando os nós de pesquisa.

Aplicando a Política a um Índice

Após a criação da política, você pode aplicá-la a qualquer índice novo ou existente atualizando as definições desse índice, conforme mostrado no seguinte exemplo:

PUT my_index/_settings
{
  "opendistro.index_state_management.policy_id": "searchable_snapshots_policy"
}

Or you can try to create index template so that ism policy can be applied throughout all index patterns that it matches.

PUT _index_template/<template_name>
{
  "index_patterns": [
    "index_name-*"
  ],
  "template": {
    "settings": {
      "opendistro.index_state_management.policy_id": "policy_id"
    }
  }
}

Você pode verificar o aplicativo de política verificando:

GET my_index/_settings

Validação e Monitoramento

Monitore regularmente o cluster OpenSearch para garantir que os nós de pesquisa estejam ativos. Verifique seu repositório do Object Storage para confirmar se os snapshots estão sendo criados.

Para verificar as transições ISM, execute o seguinte comando para revisar o estado atual do seu índice:

GET _plugins/_ism/explain/my_index

Após 90 dias, o índice deve passar de um estado quente para um estado frio.