Cette rubrique répertorie les limites strictes de l'édition haute performance d'OpenSearch, classées par catégorie. Chaque tableau indique, le cas échéant, la conséquence du dépassement d'une limite.
Limites système
| Élément | Limite |
|---|---|
| Nombre de clusters par utilisateur | Illimité |
| Total des documents par utilisateur | Théoriquement illimité — déterminé par votre quota de capacité de stockage |
| Total des pages vues (PV) par utilisateur | Théoriquement illimité — déterminé par le nombre d'unités de calcul logiques (LCU) allouées à votre compte |
| Encodage des caractères | UTF-8 |
Limites des clusters
Le tableau suivant répertorie les limites applicables aux clusters partagés et dédiés.
| Élément | Cluster partagé | Cluster dédié |
|---|---|---|
| Longueur du nom du cluster | 30 caractères | 30 caractères |
| Longueur du nom du champ | 30 caractères | 30 caractères |
| Longueur du nom de l'expression de tri | 30 caractères | 30 caractères |
| Nombre de champs | 256 | 512 |
| Longueur du nom de la table source | 16 caractères | 16 caractères |
| Longueur du nom du champ d'index | 64 caractères | 64 caractères |
| Champs INT | 256 | — |
| Champs TIMESTAMP | 4 | — |
| Champs GEO_POINT | 2 | — |
| Champs LITERAL (ne peuvent pas être utilisés pour créer des index composites) | 256 | — |
| Champs TEXT ou SHORT_TEXT | 32 | 64 |
| Index d'analyse numérique | 4 | 8 |
| Index composites | 4 | 8 |
| Champs par index composite | 8 | — |
| Index d'analyse numérique sur les champs INT | 4 | 8 |
| Index d'analyse numérique sur les champs GEO_POINT | 2 | — |
| Index d'analyse numérique sur les champs TIMESTAMP | 4 | — |
| Index sur un seul champ TEXT ou SHORT_TEXT | 4 | 8 |
| Index sur un seul champ LITERAL | 256 | — |
| Index d'analyse de mots-clés sur les champs INT | 256 | — |
| Index vectoriels | 0 | 2 |
| Total des sources de données | 20 | — |
Les clusters dédiés optimisés pour le stockage comportent deux restrictions supplémentaires :
Un cluster ne peut pas contenir plus de huit tables.
La fonctionnalité d'analyse des requêtes n'est pas prise en charge et les résultats des requêtes ne s'affichent pas.
Limites des champs
| Type de champ | Limite |
|---|---|
| INT64 | −2^63 à 2^63−1 |
| FLOAT | ±3,40282e+038 |
| DOUBLE | ±1,79769e+308 |
| LITERAL | Jusqu'à 65 535 octets |
| TEXT | Jusqu'à 65 536 mots |
| SHORT_TEXT | Jusqu'à 100 octets. Les champs dépassant 100 octets sont tronqués. |
| LITERAL_ARRAY | Jusqu'à 65 535 octets. Le délimiteur intégré entre les éléments est de 2 octets. Les champs dépassant 65 535 octets sont tronqués au dernier élément complet. Pour des performances optimales, limitez chaque champ à 100 éléments ou moins. |
| INT_ARRAY, FLOAT_ARRAY, DOUBLE_ARRAY | Jusqu'à 65 535 éléments par champ lorsqu'ils sont configurés comme champs d'attribut. Pour des performances optimales, limitez chaque champ à 100 éléments ou moins. |
Limites des expressions de tri
| Élément | Limite |
|---|---|
| Expressions de tri approximatif | 30 |
| Expressions de tri fin | 30 |
| Éléments de fonction de caractéristique par expression de tri approximatif | 4 |
Limites du résumé des résultats de recherche
| Élément | Description | Limite |
|---|---|---|
| Longueur du segment | Longueur maximale d'un seul segment de résumé | 1–300 octets |
| Nombre de segments | Nombre de segments inclus dans un résumé de résultat de recherche | 1–5 |
Limites de l'envoi de données
Limites de débit de l'API
| Élément | Limite |
|---|---|
| Nombre maximal de documents par appel d'API | 1 000. Pour un meilleur débit, envoyez 100 documents par appel et regroupez vos documents. |
| Nombre maximal d'appels d'API par seconde | 500. Les requêtes dépassant ce taux échouent avec l'erreur : rate exceeds app quota. |
Limites de taille de la charge utile
| Élément | Limite |
|---|---|
| Taille maximale de la requête | 2 Mo. Les requêtes dépassant 2 Mo échouent avec l'erreur : rate exceeds app quota. |
| Taille totale maximale des données par seconde | 2 Mo. Si la taille cumulée des requêtes API sur une seconde dépasse 2 Mo, les requêtes suivantes échouent. |
| Taille maximale d'un document | 1 Mo. Les documents dépassant 1 Mo ne sont pas synchronisés et renvoient l'erreur : The total size of documents exceed. |
Limites de synchronisation
| Élément | Limite |
|---|---|
| Taux de synchronisation incrémentielle pour les sources de données ApsaraDB RDS ou PolarDB | 2 Mo/s. Si le taux dépasse 2 Mo/s, le système applique automatiquement une limitation de débit et retarde la synchronisation incrémentielle des données. |
| Latence de synchronisation incrémentielle | 99 % des documents envoyés sont consultables en moins d'une seconde. 99,9 % sont consultables en moins d'une minute. |
Caractères réservés non imprimables
Les caractères suivants ne peuvent pas figurer dans les données que vous envoyez à OpenSearch. Si la valeur d'un champ contient l'un de ces caractères, l'enregistrement n'est pas synchronisé.
| Code | Affichage Emacs/Vi |
|---|---|
"\x1E\n" |
^^ |
"\x1F\n" |
^_ |
"\x1C" |
^\ |
"\x1D" |
^] |
"\x03" |
^C |
Les caractères non imprimables\u0002et\u0003sont automatiquement convertis en\t.
Le moteur prend en charge les jeux de caractères suivants : CJK_1 (\xe2[\xba-\xbf][\x80-\xbf]), CJK_2 ([\xe3-\xe9][\x80-\xbf][\x80-\xbf]), FULLWIDTH_1 (\xef[\xbc-\xbe][\x80-\xbf]) et FULLWIDTH_2 (\xef\xbf[\x80-\xaf]).
Limites de recherche
| Élément | Limite |
|---|---|
| Longueur maximale par clause (hors filtre) | 1 Ko avant encodage. Les clauses dépassant 1 Ko renvoient une erreur et sont ignorées. |
| Longueur maximale d'une clause de filtre | 4 Ko avant encodage. Les clauses de filtre dépassant 4 Ko renvoient une erreur et sont ignorées. |
| Nombre maximal de résultats par page (requête unique) | 500 |
| Nombre total maximal de résultats par recherche (y compris les requêtes paginées) | 5 000. Pour plus de 5 000 résultats, utilisez les requêtes de défilement. |
| Nombre maximal de documents dans le tri approximatif | 1 000 000 |
| Nombre maximal de documents dans le tri fin | 200 (par défaut) |
Si une requête de recherche épuise les LCU allouées à votre application, elle est abandonnée avec l'erreur : code:6015, message:Dropped by over compute resource quota .
Limites de réindexation
| Élément | Limite |
|---|---|
| Taux maximal de synchronisation | 20 Mo/s |
Limites SQL
Fonctionnalités non prises en charge
| Fonctionnalité | Notes |
|---|---|
| DDL et DML | Non pris en charge |
| Opérations en mémoire globale | Non pris en charge. La mémoire globale est plafonnée pour éviter les erreurs de dépassement de mémoire (OOM) lors du tri de grands ensembles de résultats en mémoire. Par exemple, SELECT * FROM t ORDER BY id LIMIT 1000000000 échoue lorsque le volume de données dépasse la limite. |
| Valeurs nulles | Non prises en charge. Les valeurs nulles générées par des opérations telles que LEFT JOIN sont remplacées par la valeur par défaut spécifiée. |
| Opérateurs LIKE et RLIKE | Non pris en charge pour les volumes de données importants. Utilisez plutôt la fonction QUERY. |
| Redistribution des données entre les shards | Non prise en charge. Concevez votre distribution de données hors ligne en fonction de vos modèles de requête. Des limites sont imposées lorsque vous joignez ou agrégez plusieurs tables. En cas d'erreur de requête, analysez le plan de requête. |
Règles de format et de nommage
| Élément | Règle |
|---|---|
| Noms de table et de colonne | Doivent commencer par une lettre et ne peuvent contenir que des lettres, des chiffres et des traits de soulignement (_). Les caractères spéciaux ne sont pas autorisés. |
| Noms UDF | Ne doivent pas entrer en conflit avec les mots-clés SQL ou les mots réservés. En cas de conflit, échappez le nom UDF avec des accents graves (` ``). |
| Chaînes constantes | Doivent être entourées de guillemets simples ('). Pour inclure un guillemet simple littéral dans une chaîne, échappez-le sous la forme de deux guillemets simples consécutifs (''). Pour plus de détails sur l'échappement des chaînes dans les paramètres dynamiques, consultez la section Paramètres dynamiques. |
Limites quantitatives
| Élément | Limite |
|---|---|
| Opérateur statistique (par opérateur) | Maximum de 5 000 000 de clés ; maximum de 512 Mo de mémoire |
| Taille par défaut de l'ensemble de résultats | 100 lignes. Si l'instruction SQL la plus externe omet une clause LIMIT, LIMIT 100 est appliquée automatiquement. |
Limites opérationnelles
| Élément | Limite |
|---|---|
| Type ARRAY | Utilisez des UDF telles que contain ou notcontain pour les comparaisons et les requêtes. Les opérateurs =, <, > et IN ne sont pas pris en charge. |
| Type ARRAY avec GROUP BY | La clause GROUP BY ne prend pas en charge les champs ARRAY. Utilisez UNNEST pour aplatir d'abord le tableau. Cela peut augmenter temporairement le volume de données — évaluez l'impact sur les performances avant de l'appliquer en production. |
| Type ARRAY avec JOIN | La clause JOIN ne prend pas en charge les champs ARRAY. Utilisez MULTICAST pour distribuer d'abord le tableau. Cela peut augmenter temporairement le volume de données — évaluez l'impact sur les performances avant de l'appliquer en production. |
| Paramètres dynamiques | Seules les constantes dans les expressions peuvent être remplacées. Les noms de champ, les noms de table et les valeurs LIMIT ne peuvent pas être remplacés. |
| Clause ORDER BY | Doit être utilisée avec une clause LIMIT. |
| Opérateur UNION | Seul UNION ALL est pris en charge. UNION (déduplication) n'est pas pris en charge. Les tables d'entrée doivent avoir des noms de champ, des types et des nombres identiques. |
| Requêtes de table récapitulative | Les analyses complètes de table ne sont pas prises en charge. Spécifiez les clés primaires lors de l'interrogation d'une table récapitulative. |
| Requêtes de table enfant | Les champs de la table enfant ne peuvent pas être renvoyés. N'utilisez pas SELECT * lors de l'interrogation des tables enfants. |
| Requêtes d'index DATE ou RANGE | Les signes égaux (=) ne sont pas pris en charge. Utilisez plutôt la fonction QUERY — par exemple, QUERY('time', '[1, 10]'). |
| Champs d'attribut | Des attributs sont créés pour tous les champs par défaut. Les champs de type TEXT ou SHORT_TEXT ne peuvent pas être utilisés dans les expressions. |