Schéma d'application
Les données poussées vers une instance Industry Algorithm Edition sont d'abord stockées dans des tables de données hors ligne. Définissez plusieurs tables avec des champs de clé étrangère spécifiques et appliquez des plugins de traitement des données. Après traitement, les tables sont jointes en une seule table d'index qui définit les attributs de recherche utilisés par le moteur pour construire les index et exécuter les requêtes.
Champs de table de données
Les tables de données servent à l'importation des données. Les exigences relatives aux types de champs varient selon le plugin de traitement des données. Pour plus d'informations sur les plages de valeurs des champs, consultez la section « Limites des champs » dans Limites. Les valeurs situées en dehors de la plage spécifiée provoquent un dépassement ou une troncature ; veillez donc à sélectionner le type de champ approprié.
|
Type |
Description |
|
INT |
Entier 64 bits. |
|
INT_ARRAY |
Tableau d'entiers 64 bits. |
|
FLOAT |
Nombre à virgule flottante. |
|
FLOAT_ARRAY |
Tableau de nombres à virgule flottante. |
|
DOUBLE |
Nombre à virgule flottante. |
|
DOUBLE_ARRAY |
Tableau de nombres à virgule flottante. |
|
LITERAL |
Littéral de chaîne. Ne prend en charge que la correspondance exacte. |
|
LITERAL_ARRAY |
Tableau de littéraux de chaîne. Chaque élément ne prend en charge que la correspondance exacte. |
|
SHORT_TEXT |
Texte court. Doit être inférieur à 100 octets. Prend en charge plusieurs méthodes de tokenisation. |
|
TEXT |
Texte long. Prend en charge plusieurs méthodes de tokenisation. |
|
TIMESTAMP |
Entier non signé 64 bits. Données d'horodatage. |
|
GEO_POINT |
Littéral de chaîne. Champ de longitude et latitude au format : « longitude latitude ». |
|
Représente un tableau d'objets JSON. Le stockage est aplati et les limites des objets sont perdues. |
|
|
Représente un tableau d'objets JSON. Le stockage des documents principaux et secondaires est indépendant et l'intégrité des objets est préservée. |
Remarques sur les mots réservés :
Les mots réservés suivants ne peuvent pas être utilisés comme noms de champs : ['service_id', 'ops_app_name', 'inter_timestamp', 'index_name', 'pk', 'ops_version', 'ha_reserved_timestamp', 'summary'].
Remarques sur le type ARRAY :
Pour les champs de type ARRAY, mappez-les vers un champ de type chaîne (tel que VARCHAR ou STRING) depuis la source de données lors du mappage des champs, puis utilisez un plugin de traitement des données pour analyser le champ de la source de données. Pour plus d'informations, consultez Plugins de traitement des données.
Si vous poussez un champ de type ARRAY à l'aide d'une API ou d'un SDK, poussez-le en tant que tableau, et non en tant que chaîne. Par exemple : String[] literal_array = {"Alibaba Cloud","OpenSearch"};
Remarques sur le champ d'horodatage :
Les champs INT et TIMESTAMP peuvent être mappés vers un champ datetime ou timestamp dans la source de données. Les valeurs sont automatiquement converties en millisecondes. Utilisez une requête range pour filtrer et récupérer les résultats par intervalle de temps.
Types de champs de source de données pris en charge
|
Source de données |
Types de champs pris en charge |
|
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 (anciennement connu sous le nom d'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 |
Mappages entre les types de champs des tables Industry Algorithm Edition et des tables de base de données
|
Table Industry Algorithm Edition |
Table RDS |
Table PolarDB |
Table MaxCompute |
|
INT |
BIGINT,TINYINT,SMALLINT,INTEGER |
BIGINT,TINYINT,SMALLINT,INTEGER |
BIGINT,TINYINT,SMALLINT,INT |
|
INT_ARRAY |
Types de chaîne, tels que VARCHAR et STRING. Utilisez le plugin de traitement des données MultiValueSpliter pour transformer les données. |
Types de chaîne, tels que VARCHAR et STRING. Utilisez le plugin de traitement des données MultiValueSpliter pour transformer les données. |
Types de chaîne, tels que VARCHAR et STRING. Utilisez le plugin de traitement des données MultiValueSpliter pour transformer les données. |
|
FLOAT |
FLOAT,NUMERIC,DECIMAL |
FLOAT,NUMERIC,DECIMAL |
FLOAT,DECIMAL |
|
FLOAT_ARRAY |
Types de chaîne, tels que VARCHAR et STRING. Utilisez le plugin de traitement des données MultiValueSpliter pour transformer les données. |
Types de chaîne, tels que VARCHAR et STRING. Utilisez le plugin de traitement des données MultiValueSpliter pour transformer les données. |
Types de chaîne, tels que VARCHAR et STRING. Utilisez le plugin de traitement des données MultiValueSpliter pour transformer les données. |
|
DOUBLE |
DOUBLE,NUMERIC,DECIMAL |
DOUBLE,NUMERIC,DECIMAL |
DOUBLE,DECIMAL |
|
DOUBLE_ARRAY |
Types de chaîne, tels que VARCHAR. Utilisez le plugin de traitement des données MultiValueSpliter pour transformer les données. |
Types de chaîne, tels que VARCHAR. Utilisez le plugin de traitement des données MultiValueSpliter pour transformer les données. |
Types de chaîne, tels que VARCHAR et STRING. Utilisez le plugin de traitement des données MultiValueSpliter pour transformer les données. |
|
LITERAL |
Types de chaîne, tels que VARCHAR. |
Types de chaîne, tels que VARCHAR. |
Types de chaîne, tels que VARCHAR et STRING. |
|
LITERAL_ARRAY |
Types de chaîne, tels que VARCHAR. Utilisez le plugin de traitement des données MultiValueSpliter pour transformer les données. |
Types de chaîne, tels que VARCHAR. Utilisez le plugin de traitement des données MultiValueSpliter pour transformer les données. |
Types de chaîne, tels que VARCHAR et STRING. Utilisez le plugin de traitement des données MultiValueSpliter pour transformer les données. |
|
SHORT_TEXT |
Types de chaîne, tels que VARCHAR. |
Types de chaîne, tels que VARCHAR. |
Types de chaîne, tels que VARCHAR et STRING. |
|
TEXT |
Types de chaîne, tels que VARCHAR. |
Types de chaîne, tels que VARCHAR. |
Types de chaîne, tels que VARCHAR et STRING. |
|
TIMESTAMP |
Type datetime ou timestamp. |
Type datetime ou timestamp. |
Type datetime ou timestamp. |
|
GEO_POINT |
Types de chaîne, tels que VARCHAR. |
Types de chaîne, tels que VARCHAR. |
Types de chaîne, tels que VARCHAR et STRING, au format lon lat. lon représente la longitude et lat représente la latitude. Les deux valeurs doivent être de type double et sont séparées par un espace. La plage de valeurs pour lon est [-180, 180] et la plage de valeurs pour lat est [-90, 90]. |
Remarque :
Si un champ de source de données est de type FLOAT ou DOUBLE, modifiez son type en DECIMAL. Sinon, des problèmes de précision peuvent survenir.
Méthodes de création d'un schéma d'application
Industry Algorithm Edition propose quatre méthodes pour créer un schéma d'application :
Créer à partir d'une source de données (RDS, MaxCompute, ou PolarDB).
Créer manuellement (consultez la section Configurer les jointures de tables ci-dessous).
Configurer les jointures de tables
Pour configurer les jointures de tables, créez manuellement un schéma d'application. L'exemple suivant utilise deux tables : main (la table principale) et test_tb_1 (la table secondaire).
Connectez-vous à la console OpenSearch. Sur la page Ha3 engine, recherchez l'application dans la liste des applications et cliquez sur Configure dans la colonne Actions.
-
Sélectionnez la table principale et définissez sa clé primaire.

-
Définissez la clé primaire de la table secondaire.

-
Définissez l'association entre les tables principale et secondaire. Cette configuration s'effectue dans la table principale.

Pour plus d'informations sur les associations de données entre tables principales et secondaires prises en charge par Industry Algorithm Edition, consultez Créer des jointures de tables.
Seuls les champs de type int ou literal peuvent être utilisés comme champs de clé étrangère.
Lorsque vous joignez une table principale et une table secondaire, les champs de jointure doivent avoir le même type de données. Par exemple, si un champ est de type int, l'autre doit également être de type int. Si un champ est de type literal, l'autre doit également être de type literal.
Lorsque vous joignez une table secondaire à une table principale, vous devez utiliser la clé primaire de la table secondaire pour effectuer la jointure avec un champ de la table principale. Vous ne pouvez pas utiliser un champ non clé primaire de la table secondaire pour la jointure.