Este tópico descreve como adicionar uma tabela que usa o Object Storage Service (OSS) + API como fonte de dados.
Para adicionar uma fonte de dados OSS + API, execute as duas etapas a seguir:
Ativar o OSS
Adicionar a fonte de dados OSS + API
Etapa 1: Ativar o OSS
1. Ativar o OSS
O serviço OSS que você ativar deve pertencer à mesma conta e à mesma região do serviço OpenSearch adquirido.
Na página de compra do plano de recursos do OSS, defina Tipo de Produto como Plano de Recursos OSS, selecione um Tipo de Plano de Recursos (como Standard - ZRS) de acordo com suas necessidades de negócios e selecione a Região correspondente (como Continente Chinês).
O serviço OSS deve pertencer à mesma conta e à mesma região do serviço OpenSearch adquirido. Caso contrário, a autenticação falhará.
Ao adicionar uma fonte de dados OSS, uma função vinculada ao serviço chamada AliyunServiceRoleForSearchEngine é criada automaticamente (se a função já existir, ela não será criada novamente). O OpenSearch usa essa função para acessar seus recursos em outros serviços de nuvem e implementar os recursos correspondentes.
2. Criar um bucket
Antes de enviar arquivos para o OSS, você deve criar um bucket para armazenar os arquivos. Para mais informações, consulte Criar um bucket.
Caminho: Console do OSS → Buckets → Criar Bucket
O OpenSearch Retrieval Engine Edition não oferece suporte a buckets do OSS que não possuem atributo de região.
Acesse o bucket criado e adicione uma tag do OpenSearch.
Caminho: Configurações do Bucket → Tags do Bucket → Criar Tag
Defina tanto a chave quanto o valor da tag como opensearch.
3. Configurar o formato de arquivo OSS
a. Formato de arquivo OSS
Para garantir que os arquivos transferidos possam ser usados como fonte de dados para a criação de índices, certifique-se de que:
Os arquivos estejam codificados em UTF-8.
Os dados do arquivo sejam convertidos para o formato HA3 ou o formato JSON.
i. Formato JSON
Para um exemplo que contém vários registros, consulte o exemplo a seguir:
{"field_double": ["100.0", "221.123", "500.3333333"], "field_int32": ["100", "200", "300"], "title": "Huawei Mate 9 Kirin 960 chip Leica dual camera", "color": "red", "empty_int32": "", "price": "3599", "CMD": "add", "nid": "1", "gather_cn_str": "", "desc": ["str1", "str2", "str3"], "brand": "Huawei", "size": "5.9","__subdocs__":[{"sub_pk":"100","sub_field1":"200","sub_field2":["100","200","300"]},{"sub_pk":"200","sub_field1":"200","sub_field2":["100","200","300"]}]}
{"field_double": ["100.0", "221.123", "500.3333333", "100.0", "221.123", "500.3333333"], "field_int32": ["100", "200", "300", "100", "200", "300"], "title": "Huawei P10 Plus all-network mobile phone", "color": "blue", "empty_int32": "", "price": "4388", "CMD": "add", "nid": "2", "gather_cn_str": "colorblue", "desc": ["str1", "str2", "str3", "str1", "str2", "str3"], "brand": "Huawei", "size": "5.5","__subdocs__":[{"sub_pk":"100","sub_field1":"200","sub_field2":["100","200","300"]},{"sub_pk":"200","sub_field1":"200","sub_field2":["100","200","300"]}]}
Observação:
Todos os campos JSON são do tipo string. Quando o mecanismo cria índices, ele converte os campos para os tipos especificados no esquema.
'\n' indica uma quebra de linha. Um único registro não pode conter quebras de linha.
ii. Formato HA3
Primeiro, observe o conteúdo de um arquivo de dados completo chamado standard_sample.data.
CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=Alibaba Cloud Computing Co., Ltd.^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^
CMD=delete^_
PK=12345321^_CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=Alibaba Cloud Computing Co., Ltd.^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^
CMD=delete^_
PK=12345321^_
Definições de delimitadores de arquivo: O arquivo de dados anterior contém dois comandos: add e delete. Cada comando consiste em várias linhas, e cada linha é um par chave-valor. Os comandos são separados por '^^\n', os pares chave-valor são separados por '^_\n', e os valores múltiplos são separados por '^]'. A tabela a seguir descreve os delimitadores de arquivo.
|
Codificação C++ |
ASCII Hexadecimal |
Descrição |
Forma de exibição (no emacs/vi) |
Método de entrada no emacs |
Método de entrada no vi |
|
"
"
|
1F0A
|
Delimitador chave-valor
|
^_ (seguido por uma quebra de linha)
|
C-q C-7
|
C-v C-7
|
|
"
"
|
1E0A
|
Delimitador de comando
|
^^ (seguido por uma quebra de linha)
|
C-q C-6
|
C-v C-6
|
|
"" |
1D |
Delimitador de valor múltiplo |
^] |
C-q C-5 |
C-v C-5 |
|
"" |
1C |
Identificador de peso de seção |
^\ |
C-q C-4 |
C-v C-4 |
|
"" |
1D |
Delimitador de seção |
^] |
C-q C-5 |
C-v C-5 |
|
"" |
03 |
Delimitador de campo de subdocumento |
^C |
C-q C-c |
C-v C-c |
Definições de formato de comando: Formato do comando add: O comando add adiciona novo conteúdo ao índice. A primeira linha de um comando add deve ser CMD=add, seguida pelos campos do documento. A ordem dos campos pode ser consistente com a ordem dos campos no esquema, e todos os campos que aparecerem devem ser especificados em fields.
CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=Alibaba Cloud Computing Co., Ltd.^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^CMD=add^_
PK=12345321^_
url=http://www.aliyun.com/index.html^_
title=Alibaba Cloud Computing Co., Ltd.^_
body=xxxxxx xxx^_
time=3123423421^_
multi_value_field=1234^]324^]342^_
bidwords=mp3^\price=35.8^Ptime=13867236221^]mp4^\price=32.8^Ptime=13867236221^_
^^
Formato do comando delete: O comando delete exclui o conteúdo especificado do índice. A primeira "linha" de um comando delete deve ser CMD=delete. As "linhas" subsequentes são o campo definido como chave primária no esquema do índice e o campo usado para hash de partição. Se os dois campos forem iguais, o campo precisa aparecer apenas uma vez.
CMD=delete^_
PK=12345321^_
^^CMD=delete^_
PK=12345321^_
^^
b. Enviar arquivos para o bucket
Retorne à página de gerenciamento do bucket recém-criado. No painel de navegação à esquerda, escolha Gerenciamento de Objetos → Objetos → Enviar Objeto .
Na seção Arquivos para Enviar , selecione o método para localizar arquivos, selecione o conteúdo a ser enviado e clique em Enviar Objeto para enviar os arquivos.
No painel Lista de Tarefas que aparece à direita, confirme se o status do arquivo é Enviado.
Etapa 2: Adicionar a fonte de dados OSS + API
Adquirir uma instância: Para mais informações, consulte Adquirir uma instância do OpenSearch Retrieval Engine Edition.
1. Informações básicas da tabela
Na página Instâncias, localize a instância do OpenSearch Retrieval Engine Edition adquirida e clique em Gerenciar na coluna Ações.
No painel de navegação à esquerda, escolha Gerenciamento de Tabelas → Adicionar Tabela .
Após especificar as informações básicas da tabela, clique em Avançar.
Nome da Tabela: O nome pode conter letras, dígitos e underscores (_), com até 25 caracteres de comprimento.
Número de Shards de Dados: Insira um número inteiro positivo que não exceda 256. Os shards são usados para melhorar a velocidade de criação de dados completos e o desempenho de consultas individuais. (Para algumas instâncias existentes, todas as tabelas de índice ainda devem ter o mesmo número de shards, ou pelo menos uma tabela de índice deve ter 1 shard enquanto todas as outras tabelas de índice têm o mesmo número de shards.)
Número de Recursos para Atualizações de Dados: o número de recursos usados para atualizações de dados. Por padrão, cada índice recebe dois recursos de atualização gratuitos, cada um com 4 núcleos e 8 GB de memória. Recursos que excedam a cota gratuita incorrem em cobranças. Para mais informações, consulte Cobrança do OpenSearch Retrieval Engine Edition no site internacional.
2. Sincronização de dados
Defina Fonte de Dados Completa como "OSS + API" e configure os demais parâmetros. Depois que a fonte de dados passar na verificação de Verificação da Fonte de Dados , clique em Avançar .
Descrição da configuração:
Caminho OSS: o caminho usado para acessar os arquivos do OSS. O caminho deve começar com /, e não pode conter os caracteres ?, = ou &. Os arquivos não podem ser armazenados no diretório raiz. Você deve colocá-los em uma pasta e depois especificar o caminho.
Bucket OSS: o nome do bucket do OSS.
Na página Buckets do console do OSS, clique no nome do bucket de destino (por exemplo, zhyq-sz) para acessar a página de gerenciamento do bucket.
Formato de Dados: Os arquivos transferidos devem estar no formato de Fonte de dados OSS + API ou Fonte de dados OSS + API. Caso contrário, os dados do arquivo não poderão ser transferidos.
Verificação da Fonte de Dados: Após a aprovação na verificação, você pode prosseguir para a próxima etapa.
3. Esquema do índice
Configure os campos e índices, e clique em Avançar.
Exemplo de configuração de campos: id (INT64, chave primária, campo de atributo, compressão de dados: equal), fb_string (STRING, valor múltiplo com vírgula como delimitador, compressão de dados: uniq), name (TEXT, método de análise: Chinês - Análise Geral), e code (STRING, campo de atributo, compressão de dados: uniq, valor padrão personalizado: <EMPTY_STRING>).
Por exemplo, adicione o índice index_name (tipo de índice: TEXT, campo incluído: name) e o índice index_string (tipo de índice: STRING, campo incluído: fb_string).
-
Descrição da configuração:
-
Configurações de campo:
Campo de atributo: Você pode especificar se deseja ativar a compressão. Por padrão, a compressão está desativada. Selecione file_compressor para ativar a compressão.
Compressão de dados: comprime o conteúdo do campo usando métodos como desduplicação. Você pode especificar se deseja comprimir o conteúdo do campo. Por padrão, a compressão está desativada. Por padrão, uniq é selecionado para campos de valor múltiplo e campos STRING, e equal é selecionado para campos numéricos de valor único.
-
Notas de configuração:
Se você ativar a compressão de atributos, recomendamos que acesse "Gerenciamento de Clusters - Status do Nó - Política de Carregamento de Tabela" para editar o método de carregamento do índice e reduzir o impacto no desempenho.
Os campos para os quais um método de análise está configurado devem ser do tipo TEXT.
Você pode copiar campos. O conteúdo de um novo campo criado por cópia (campo DUP) permanece consistente com o conteúdo do campo original (se conteúdo inconsistente for enviado, ele será substituído pelo conteúdo do campo original). Se desejar que o conteúdo do campo seja diferente, exclua manualmente a cópia da configuração nas configurações avançadas do campo DUP.
Se um campo estiver ausente nos dados ou se um campo estiver vazio, o sistema preencherá automaticamente um valor padrão. Por padrão, 0 é preenchido para campos numéricos e uma string vazia é preenchida para campos STRING. Valores padrão personalizados são suportados.
Configurações de índice: Configure índices para os campos que precisam ser recuperados usando índices.
-
4. Confirmar criação
Após clicar em Confirmar Criação, o sistema cria automaticamente a tabela configurada.