É possível importar dados para o OpenSearch por meio de uma API, um SDK ou da interface de upload, ou ainda sincronizá-los diretamente de um banco de dados cloud existente. Para uploads via API ou SDK, consulte a referência da API; a configuração de plug-in descrita aqui não é suportada nesses casos. Para sincronizar dados da cloud, configure o source de dados no console. O sistema oferece plug-ins de processamento de dados para transformações simples. Selecione esses plug-ins ao configurar os mapeamentos de campos de source. Uploads via API não suportam esses plug-ins: processe os dados antes de enviá-los.
Uma tabela do OpenSearch pode ser mapeada para várias tabelas de source do RDS ou PolarDB, como em cenários de sharding de banco de dados ou de tabelas. No entanto, apenas uma tabela de source do ODPS pode ser configurada. Para utilizar múltiplas tabelas de source do ODPS, consolide-as em uma única tabela antes da importação.
Plug-ins de processamento de dados
Determinados recursos de busca e funções específicas exigem tipos de campo particulares. Por exemplo, campos ARRAY devem ser convertidos pelos plug-ins listados abaixo e não podem ser inseridos diretamente.
Observação: Configure esses plug-ins durante a configuração do source de dados, e não na definição do schema da aplicação. É necessário configurar um source de dados antes de definir os plug-ins.
Item de configuração | Descrição | Exemplo |
JsonKeyValueExtractor | Extrai o valor de uma chave especificada de um campo de source formatado em JSON e o utiliza como valor do campo de destino. Apenas a chave indicada pode ser extraída. | Por exemplo, extraia o valor de title de {"title":"the content","body":"the content"}. Se o conteúdo for um JsonArray, ele será convertido em um valor de campo ARRAY. Certifique-se de que o valor extraído corresponda ao tipo do campo de destino, caso contrário, os dados serão perdidos. JsonArray refere-se ao formato suportado. Exemplos: um campo literal_array usa {"tags":["a","b","c"]} e um campo int_array usa {"tags":[1,2,3]}. |
MultiValueSpliter | Divide o valor do campo de source por um delimitador e usa os valores resultantes como conteúdo do campo de destino. O campo de destino deve ser do tipo ARRAY. Observação:
| Para o conteúdo de source 1,2,3, defina o delimitador como vírgula (,). |
KeyValueExtractor | Extrai o valor de uma chave específica de um campo de source no formato chave-valor e o utiliza como conteúdo do campo de destino. Somente a chave definida pode ser extraída. Os delimitadores podem ser omitidos. | Para o conteúdo key1:value1,value2;key2:value3, as chaves são key1 e key2, o delimitador de chaves é ponto e vírgula, o delimitador de chave-valor é dois pontos e o delimitador de múltiplos valores é vírgula. Se um delimitador de múltiplos valores estiver configurado, os valores serão convertidos em um valor de campo ARRAY. Garanta que os valores extraídos correspondam ao tipo do campo de destino para evitar perda de dados. Caso existam duas chaves idênticas, apenas o valor da última será extraído. |
StringCatenateExtractor | Concatena os campos especificados em uma string na ordem definida. Campos INT não são suportados; recomenda-se o uso de campos LITERAL. Separe os nomes dos campos por vírgulas. Os campos devem pertencer à tabela de destino. | Por exemplo, concatene field1 e field2 com um sublinhado (_). A variável de sistema $table permite obter o nome da tabela atual ($table é exibido apenas quando um curinga de sharding de tabela está configurado). |
HTMLTagRemover | Remove tags HTML do campo de source e copia o resultado para o campo atual. Se o campo de source for o próprio campo atual, seu conteúdo será substituído. | Conteúdo original: <div id="copyright">OpenSearch</div>. Após o processamento, o conteúdo torna-se "OpenSearch". |
Para melhores práticas, consulte: Configure the MultiValueSpliter plugin.