OpenSearch propose trois méthodes d'ingestion de données : l'utilisation d'une API ou d'un SDK pour une flexibilité maximale, le téléversement de petits lots de données dans la console pour des tests simples, et la configuration d'une synchronisation automatisée depuis des sources de données cloud telles que RDS, MaxCompute et PolarDB via une interface visuelle.
Correspondances des types de champs
Type de champ OpenSearch
|
Type de champ push API
| | --- | --- | |
INT
|
int ou long
| |
INT_ARRAY
|
int[] ou 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
|
Une chaîne au format `lon lat`, où `lon` représente la longitude et `lat` la latitude. Les valeurs doivent être de type double et séparées par un espace. La valeur `lon` doit se situer dans la plage [-180, 180] et la valeur `lat` dans la plage [-90, 90].
|
Pousser des données via l'API
-
La fonctionnalité de téléversement de fichiers de la console est destinée aux tests et ne convient pas aux téléversements de données à grande échelle. Elle est inefficace et limitée à 2 Mo par fichier. Pour plus d'informations sur les limites système lors de la poussée de données via une API ou un SDK, consultez Limites système.
Sur la page de gestion des instances, localisez votre instance cible. Dans la colonne Actions, cliquez sur le menu déroulant et sélectionnez Upload File.
-
L'API et le SDK ne prennent pas en charge les plug-ins de source de données ; vous devez donc traiter et structurer vos données avant de les pousser. Par exemple, lorsque vous poussez des données de type tableau via l'API, assurez-vous de les téléverser sous forme de tableau et non de chaîne. Le code suivant illustre cet exemple :
// 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); -
Pour plus de détails sur l'utilisation d'une API ou d'un SDK, consultez les ressources suivantes :
SDK Java : Démonstration de push de commit et Démonstration de push
SDK PHP : Démonstration de push et Démonstration de push avec recherche
SDK Go : Démonstration de push de données comportementales et Démonstration de push
SDK TypeScript/Node.js : Installez le package
@alicloud/opensearch-sdk.npm install @alicloud/opensearch-sdkUtilisez l'interface pushDocument pour pousser des données :
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);Le format de l'endpoint varie selon la région et suit le modèle
opensearch-cn-{region}.aliyuncs.com. Par exemple, l'endpoint pour la région Chine (Hangzhou) estopensearch-cn-hangzhou.aliyuncs.com. L'authentification du SDK utilise une clé d'accès Alibaba Cloud (AK/SK) transmise via l'objet Config, et non des clés API.OpenSearch fournit deux packages npm :
@alicloud/opensearch-sdkpour l'API de données (recherche, poussée de données et suggestion de requête), et@alicloud/opensearch20171225pour l'API de contrôle (gestion des applications). Pour les scénarios de poussée de données, utilisez@alicloud/opensearch-sdk.
Rubriques connexes
Pour importer des données à l'aide d'une API ou d'un SDK, consultez Démonstration de push de commit.
Pour téléverser des fichiers depuis la console (limité à 2 Mo par fichier), consultez le Tutoriel.
Pour importer des données depuis une source de données, consultez Configurer une source de données RDS.