Esquema da aplicação
Após o envio dos dados para o OpenSearch, o sistema os armazena primeiro em uma tabela de dados offline. Nessa etapa, para facilitar o envio, a tabela de dados permite definir vários campos com base no seu cenário de negócios (é necessário especificar os campos associados) e fornece plug-ins de processamento de dados. Após o processamento, o sistema gera uma tabela de índice a partir desses dados. A tabela de índice define principalmente os atributos de pesquisa, e o motor a utiliza para criar índices e executar consultas.
Campos da tabela de dados
As tabelas de dados são usadas principalmente para importação de dados. Diferentes plug-ins de processamento de dados têm requisitos diferentes para os tipos de campo. Para os intervalos de valores de campos específicos, consulte as seções relacionadas a campos em Limits. Valores que excedem o intervalo permitido causam estouro ou são truncados. Selecione o tipo correto.
|
Tipo |
Descrição |
|
INT |
Inteiro int64 |
|
INT_ARRAY |
Matriz de inteiros int64 |
|
FLOAT |
Número de ponto flutuante |
|
FLOAT_ARRAY |
Matriz de números de ponto flutuante |
|
DOUBLE |
Número de ponto flutuante |
|
DOUBLE_ARRAY |
Matriz de números de ponto flutuante |
|
LITERAL |
String constante. Suporta apenas correspondência exata. |
|
LITERAL_ARRAY |
Matriz de strings constantes. Suporta apenas correspondência exata para cada elemento. |
|
SHORT_TEXT |
Texto curto com até 100 bytes. Suporta vários métodos de análise. |
|
TEXT |
Texto longo. Suporta vários métodos de análise. |
|
TIMESTAMP |
Inteiro uint64 que armazena dados de timestamp |
|
GEO_POINT |
String constante que armazena longitude e latitude, no formato "Longitude Latitude" |
Campos reservados:
['service_id', 'ops_app_name', 'inter_timestamp', 'index_name', 'pk', 'ops_version', 'ha_reserved_timestamp', 'summary'] Esses nomes são reservados e não é possível usá-los como nomes de campo no momento.
Tipos ARRAY:
Se um campo da aplicação for criado como um tipo ARRAY, associe o campo a um campo varchar ou string (tipo string) ao mapear os campos da fonte de dados e use Data source plug-in reference para analisar o campo da fonte de dados.
Ao enviar dados para o campo ARRAY por meio de operações de API ou SDKs, envie os dados como um array, não como uma string. Exemplo: String[] literal_array = {"Alibaba Cloud","OpenSearch"};
Campos de timestamp:
Você pode mapear campos dos tipos INT e TIMESTAMP para campos datetime ou timestamp na fonte de dados. O sistema converte os valores automaticamente para milissegundos. Durante as pesquisas, use Range query para filtrar os documentos recuperados por intervalo de tempo.
Tipos de campo suportados na fonte de dados
|
Fonte de dados |
Tipos de campo suportados |
|
RDS |
TINYINT, SMALLINT, INTEGER, BIGINT, FLOAT, REAL, DOUBLE, NUMERIC, DECIMAL, TIME, DATE, TIMESTAMP, VARCHAR |
|
PolarDB |
TINYINT, SMALLINT, INTEGER, BIGINT, FLOAT, REAL, DOUBLE, NUMERIC, DECIMAL, TIME, DATE, TIMESTAMP, VARCHAR |
|
MaxCompute (anteriormente ODPS) |
BIGINT, DOUBLE, BOOLEAN, DATETIME, STRING, DECIMAL, MAP, ARRAY, TINYINT, SMALLINT, INT, FLOAT, CHAR, VARCHAR, DATE, TIMESTAMP, BINARY, INTERVAL_DAY_TIME, INTERVAL_YEAR_MONTH, STRUCT |
Mapeamentos entre tipos de campo em tabelas do OpenSearch e tipos de campo em tabelas de banco de dados
|
Tabela do OpenSearch |
Tabela RDS |
Tabela PolarDB |
Tabela MaxCompute (anteriormente ODPS) |
|
INT |
BIGINT,TINYINT,SMALLINT,INTEGER |
BIGINT,TINYINT,SMALLINT,INTEGER |
BIGINT,TINYINT,SMALLINT,INT |
|
INT_ARRAY |
Tipos de string como VARCHAR e STRING. É necessário o plug-in de fonte de dados MultiValueSpliter para a conversão. |
Tipos de string como VARCHAR e STRING. É necessário o plug-in de fonte de dados MultiValueSpliter para a conversão. |
Tipos de string como VARCHAR e STRING. É necessário o plug-in de fonte de dados MultiValueSpliter para a conversão. |
|
FLOAT |
FLOAT,NUMERIC,DECIMAL |
FLOAT,NUMERIC,DECIMAL |
FLOAT,DECIMAL |
|
FLOAT_ARRAY |
Tipos de string como VARCHAR e STRING. É necessário o plug-in de fonte de dados MultiValueSpliter para a conversão. |
Tipos de string como VARCHAR e STRING. É necessário o plug-in de fonte de dados MultiValueSpliter para a conversão. |
Tipos de string como VARCHAR e STRING. É necessário o plug-in de fonte de dados MultiValueSpliter para a conversão. |
|
DOUBLE |
DOUBLE,NUMERIC,DECIMAL |
DOUBLE,NUMERIC,DECIMAL |
DOUBLE,DECIMAL |
|
DOUBLE_ARRAY |
Tipos de string como VARCHAR. É necessário o plug-in de fonte de dados MultiValueSpliter para a conversão. |
Tipos de string como VARCHAR. É necessário o plug-in de fonte de dados MultiValueSpliter para a conversão. |
Tipos de string como VARCHAR e STRING. É necessário o plug-in de fonte de dados MultiValueSpliter para a conversão. |
|
LITERAL |
Tipos de string como VARCHAR |
Tipos de string como VARCHAR |
Tipos de string como VARCHAR e STRING |
|
LITERAL_ARRAY |
Tipos de string como VARCHAR. É necessário o plug-in de fonte de dados MultiValueSpliter para a conversão. |
Tipos de string como VARCHAR. É necessário o plug-in de fonte de dados MultiValueSpliter para a conversão. |
Tipos de string como VARCHAR e STRING. É necessário o plug-in de fonte de dados MultiValueSpliter para a conversão. |
|
SHORT_TEXT |
Tipos de string como VARCHAR |
Tipos de string como VARCHAR |
Tipos de string como VARCHAR e STRING |
|
TEXT |
Tipos de string como VARCHAR |
Tipos de string como VARCHAR |
Tipos de string como VARCHAR e STRING |
|
TIMESTAMP |
Tipos datetime/timestamp |
Tipos datetime/timestamp |
Tipos datetime/timestamp |
|
GEO_POINT |
Tipos de string como VARCHAR |
Tipos de string como VARCHAR |
Tipos de string como VARCHAR e STRING, no formato lon lat. lon indica a longitude e lat indica a latitude. Ambos são do tipo double e separados por um espaço. Intervalo válido de lon: [-180, 180]. Intervalo válido de lat: [-90, 90]. |
Se um campo da fonte de dados for do tipo FLOAT ou DOUBLE, recomendamos alterá-lo para o tipo DECIMAL. Caso contrário, podem ocorrer erros de precisão.
Métodos para criar um esquema de aplicação
O OpenSearch fornece os quatro métodos a seguir para criar um esquema de aplicação (o esquema de tabela do OpenSearch):
Crie o esquema a partir de uma fonte de dados (Configure an RDS data source, MaxCompute data source configuration e Configure a PolarDB data source).
Crie o esquema manualmente.
Crie o esquema a partir de um modelo (Migrate between applications).