Esquema de aplicación
Los datos enviados a una instancia de Industry Algorithm Edition se almacenan primero en tablas de datos sin conexión. Defina varias tablas con campos de clave externa específicos y aplique plugins de procesamiento de datos. Tras el procesamiento, las tablas se unen en una sola tabla de índice que define los atributos de búsqueda que usa el motor para compilar índices y ejecutar consultas.
Campos de la tabla de datos
Las tablas de datos se usan para importar datos. Los requisitos de tipo de campo varían según el plugin de procesamiento de datos. Para obtener más información sobre los rangos de valores de los campos, consulte la sección "Límites de los campos" en Limits. Los valores fuera del rango especificado se desbordan o se truncan; asegúrese de seleccionar el tipo de campo correcto.
|
Tipo |
Descripción |
|
INT |
Entero de 64 bits. |
|
INT_ARRAY |
Matriz de enteros de 64 bits. |
|
FLOAT |
Número de punto flotante. |
|
FLOAT_ARRAY |
Matriz de números de punto flotante. |
|
DOUBLE |
Número de punto flotante. |
|
DOUBLE_ARRAY |
Matriz de números de punto flotante. |
|
LITERAL |
Literal de cadena. Solo admite coincidencia exacta. |
|
LITERAL_ARRAY |
Matriz de literales de cadena. Cada elemento solo admite coincidencia exacta. |
|
SHORT_TEXT |
Texto corto. No debe superar los 100 bytes. Admite varios métodos de tokenización. |
|
TEXT |
Texto largo. Admite varios métodos de tokenización. |
|
TIMESTAMP |
Entero sin signo de 64 bits. Datos de marca de tiempo. |
|
GEO_POINT |
Literal de cadena. Campo de longitud y latitud con el formato: "longitud latitud". |
|
Representa una matriz de objetos JSON. Usa almacenamiento aplanado y pierde los límites de los objetos. |
|
|
Representa una matriz de objetos JSON. Usa almacenamiento independiente para documentos primarios y secundarios y conserva la integridad de los objetos. |
Notas sobre palabras reservadas:
No use las siguientes palabras reservadas como nombres de campo: ['service_id', 'ops_app_name', 'inter_timestamp', 'index_name', 'pk', 'ops_version', 'ha_reserved_timestamp', 'summary'].
Notas sobre el tipo ARRAY:
Para los campos de tipo ARRAY, asígnelos a un campo de tipo cadena (como VARCHAR o STRING) del origen de datos durante la asignación de campos y luego use un plugin de procesamiento de datos para analizar sintácticamente el campo del origen de datos. Para obtener más información, consulte Data processing plugins.
Si envía un campo de tipo ARRAY mediante una API o SDK, hágalo como matriz, no como cadena. Por ejemplo: String[] literal_array = {"Alibaba Cloud","OpenSearch"};
Notas sobre el campo de marca de tiempo:
Los campos INT y TIMESTAMP pueden asignarse a un campo datetime o timestamp en el origen de datos. Los valores se convierten automáticamente a milisegundos. Use una consulta range para filtrar y recuperar resultados por intervalo de tiempo.
Tipos de campo de origen de datos compatibles
|
Origen de datos |
Tipos de campo compatibles |
|
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 conocido como 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 |
Asignaciones entre los tipos de campo de las tablas de Industry Algorithm Edition y las tablas de base de datos
|
Tabla de Industry Algorithm Edition |
Tabla de RDS |
Tabla de PolarDB |
Tabla de MaxCompute |
|
INT |
BIGINT,TINYINT,SMALLINT,INTEGER |
BIGINT,TINYINT,SMALLINT,INTEGER |
BIGINT,TINYINT,SMALLINT,INT |
|
INT_ARRAY |
Tipos de cadena, como VARCHAR y STRING. Use el plugin de procesamiento de datos MultiValueSpliter para transformar los datos. |
Tipos de cadena, como VARCHAR y STRING. Use el plugin de procesamiento de datos MultiValueSpliter para transformar los datos. |
Tipos de cadena, como VARCHAR y STRING. Use el plugin de procesamiento de datos MultiValueSpliter para transformar los datos. |
|
FLOAT |
FLOAT,NUMERIC,DECIMAL |
FLOAT,NUMERIC,DECIMAL |
FLOAT,DECIMAL |
|
FLOAT_ARRAY |
Tipos de cadena, como VARCHAR y STRING. Use el plugin de procesamiento de datos MultiValueSpliter para transformar los datos. |
Tipos de cadena, como VARCHAR y STRING. Use el plugin de procesamiento de datos MultiValueSpliter para transformar los datos. |
Tipos de cadena, como VARCHAR y STRING. Use el plugin de procesamiento de datos MultiValueSpliter para transformar los datos. |
|
DOUBLE |
DOUBLE,NUMERIC,DECIMAL |
DOUBLE,NUMERIC,DECIMAL |
DOUBLE,DECIMAL |
|
DOUBLE_ARRAY |
Tipos de cadena, como VARCHAR. Use el plugin de procesamiento de datos MultiValueSpliter para transformar los datos. |
Tipos de cadena, como VARCHAR. Use el plugin de procesamiento de datos MultiValueSpliter para transformar los datos. |
Tipos de cadena, como VARCHAR y STRING. Use el plugin de procesamiento de datos MultiValueSpliter para transformar los datos. |
|
LITERAL |
Tipos de cadena, como VARCHAR. |
Tipos de cadena, como VARCHAR. |
Tipos de cadena, como VARCHAR y STRING. |
|
LITERAL_ARRAY |
Tipos de cadena, como VARCHAR. Use el plugin de procesamiento de datos MultiValueSpliter para transformar los datos. |
Tipos de cadena, como VARCHAR. Use el plugin de procesamiento de datos MultiValueSpliter para transformar los datos. |
Tipos de cadena, como VARCHAR y STRING. Use el plugin de procesamiento de datos MultiValueSpliter para transformar los datos. |
|
SHORT_TEXT |
Tipos de cadena, como VARCHAR. |
Tipos de cadena, como VARCHAR. |
Tipos de cadena, como VARCHAR y STRING. |
|
TEXT |
Tipos de cadena, como VARCHAR. |
Tipos de cadena, como VARCHAR. |
Tipos de cadena, como VARCHAR y STRING. |
|
TIMESTAMP |
Tipo datetime o timestamp. |
Tipo datetime o timestamp. |
Tipo datetime o timestamp. |
|
GEO_POINT |
Tipos de cadena, como VARCHAR. |
Tipos de cadena, como VARCHAR. |
Tipos de cadena, como VARCHAR y STRING, en formato lon lat. lon representa la longitud y lat representa la latitud. Ambos valores deben ser de tipo double y estar separados por un espacio. El rango de valores para lon es [-180, 180] y para lat es [-90, 90]. |
Nota:
Si un campo del origen de datos es de tipo FLOAT o DOUBLE, cambie su tipo a DECIMAL. De lo contrario, pueden producirse problemas de precisión.
Métodos para crear un esquema de aplicación
Industry Algorithm Edition ofrece cuatro métodos para crear un esquema de aplicación:
Crear desde un origen de datos (RDS, MaxCompute o PolarDB).
Crear manualmente (consulte la sección Configurar uniones de tablas a continuación).
Configurar uniones de tablas
Para configurar uniones de tablas, cree manualmente un esquema de aplicación. El siguiente ejemplo usa dos tablas: main (la tabla primaria) y test_tb_1 (la tabla secundaria).
Inicie sesión en la consola de OpenSearch. En la página Ha3 engine, localice la aplicación en la lista de aplicaciones y haga clic en Configure en la columna Actions.
-
Seleccione la tabla primaria y establezca su clave principal.

-
Establezca la clave principal de la tabla secundaria.

-
Establezca la asociación entre las tablas primaria y secundaria. Esta configuración se realiza en la tabla primaria.

Para obtener más información sobre las asociaciones de datos entre tablas primarias y secundarias compatibles con Industry Algorithm Edition, consulte Create table joins.
Solo los campos de tipo int o literal pueden usarse como campos de clave externa.
Al unir una tabla primaria y una secundaria, los campos de unión deben tener el mismo tipo de datos. Por ejemplo, si un campo es de tipo int, el otro también debe serlo; si es de tipo literal, el otro también debe serlo.
Al unir una tabla secundaria a una primaria, use la clave principal de la tabla secundaria para unirla con un campo de la tabla primaria. No puede usar un campo que no sea clave principal de la tabla secundaria para la unión.