OpenSearch ofrece tres métodos de ingesta de datos: usar una API o SDK para obtener la máxima flexibilidad, cargar pequeños lotes de datos en la consola para pruebas sencillas y configurar la sincronización automática desde orígenes de datos en la nube como RDS, MaxCompute y PolarDB mediante una interfaz visual.
Asignación de tipos de campo
|
Tipo de campo de OpenSearch |
Tipo de campo para inserción por API |
|
INT |
int o long |
|
INT_ARRAY |
int[] o long[] |
|
FLOAT |
float |
|
FLOAT_ARRAY |
float[] |
|
DOUBLE |
double |
|
DOUBLE_ARRAY |
double[] |
|
LITERAL |
string |
|
LITERAL_ARRAY |
string[] |
|
SHORT_TEXT |
string |
|
TEXT |
string |
|
TIMESTAMP |
long |
|
GEO_POINT |
Cadena con el formato |
Insertar datos mediante API
-
La función de carga de archivos de la consola está diseñada solo para pruebas y no es adecuada para cargas masivas de datos, ya que resulta ineficiente y tiene un límite de 2 MB por archivo. Para más información sobre los límites del sistema al insertar datos mediante una API o SDK, consulte Límites del sistema.
En la página de gestión de instancias, localice la instancia deseada. En la columna Actions, haga clic en el menú desplegable y seleccione Upload File.
-
La API y el SDK no admiten complementos de origen de datos, por lo que debe procesar y estructurar los datos antes de insertarlos. Por ejemplo, al enviar datos de tipo matriz mediante la API, asegúrese de cargarlos como matriz y no como cadena. A continuación se muestra un ejemplo de código:
// Define a Map object to store the document data to be uploaded. This is Document 2. Map<String,Object> doc2 =Maps.newLinkedHashMap(); doc2.put("id",1); String[] literal_arr2 ={"Element 1","Element 2"}; doc2.put("literal_arr", literal_arr2); -
Para más detalles sobre el uso de una API o SDK, consulte los siguientes recursos:
SDK de Java: Commit push demo y Push demo
SDK de PHP: Push demo y Push with search demo
SDK de Go: Behavioral data push demo y Push demo
SDK de TypeScript/Node.js: Instale el paquete
@alicloud/opensearch-sdk.npm install @alicloud/opensearch-sdkUse la interfaz pushDocument para insertar los datos:
import Client, { Config, Document, PushDocumentRequestModel } from '@alicloud/opensearch-sdk'; // Authenticate with an AccessKey. const config = new Config({ endpoint: 'opensearch-cn-beijing.aliyuncs.com', // The data API endpoint. accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID, accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET, }); const client = new Client(config); // Construct the documents to be pushed. const docs = [ new Document({ cmd: 'ADD', fields: { id: '1', title: 'Example document', body: 'Document content' }, }), ]; // Push the data to the specified table of your application. const request = new PushDocumentRequestModel({ body: docs }); const response = await client.pushDocument('your_app_name', 'your_table_name', request); console.log(response.body);El formato del endpoint para las distintas regiones es
opensearch-cn-{region}.aliyuncs.com. Por ejemplo, el endpoint de la región China (Hangzhou) esopensearch-cn-hangzhou.aliyuncs.com. La autenticación del SDK usa una AccessKey (AK/SK) de Alibaba Cloud que se pasa mediante el objeto Config, en lugar de claves de API.OpenSearch proporciona dos paquetes npm:
@alicloud/opensearch-sdkpara la API de datos (búsqueda, inserción de datos y sugerencias de consulta), y@alicloud/opensearch20171225para la API de control (gestión de aplicaciones). Para escenarios de inserción de datos, use@alicloud/opensearch-sdk.
Temas relacionados
Para importar datos mediante una API o SDK, consulte Commit push demo.
Para cargar archivos desde la consola (con un límite de 2 MB por archivo), consulte Tutorial.
Para importar datos desde un origen de datos, consulte Configure an RDS data source.