Le SDK Tablestore pour Python crée une table de mappage pour une table de données ou un index de recherche existant afin d'activer l'accès aux données via SQL.
Prérequis
Installez le SDK Tablestore pour Python et initialisez un client.
Les requêtes SQL nécessitent la version 5.4.2 ou ultérieure. Nous vous recommandons d'utiliser la dernière version.
Description
Appelez la méthode exe_sql_query pour exécuter une instruction CREATE TABLE et créer une table de mappage pour une table de données ou un index de recherche existant.
def exe_sql_query(self, query)
Pour une table de données, la table de mappage doit porter le même nom que la table de données. Les noms de champs ne sont pas sensibles à la casse et les types de champs doivent correspondre à ceux de la table de données. Pour un index de recherche, vous pouvez personnaliser le nom de la table de mappage et utiliser ENGINE ainsi que ENGINE_ATTRIBUTE pour spécifier la table de données et l'index de recherche.
Pour connaître la syntaxe, les types de champs et les paramètres de l'instruction CREATE TABLE, consultez les opérations DDL.
L'exemple suivant crée une table de mappage pour la table de données example_table.
query = """
CREATE TABLE example_table (
pk VARCHAR(1024), long_value BIGINT, double_value DOUBLE,
string_value MEDIUMTEXT, bool_value BOOL, PRIMARY KEY(pk)
)
"""
client.exe_sql_query(query)
Paramètres
La méthode exe_sql_query accepte le paramètre suivant.
|
Nom |
Type |
Description |
|
query (obligatoire) |
String |
L'instruction |
Exemples de scénarios
Créer une table de mappage pour un index de recherche
Définissez ENGINE sur searchindex et spécifiez la table de données et l'index de recherche dans ENGINE_ATTRIBUTE. L'exemple ci-dessous crée la table de mappage example_search_table pour l'index de recherche example_index associé à la table de données example_table.
query = """
CREATE TABLE example_search_table (
pk MEDIUMTEXT, long_value BIGINT, string_value MEDIUMTEXT
) ENGINE='searchindex'
ENGINE_ATTRIBUTE='{"index_name":"example_index","table_name":"example_table"}'
"""
client.exe_sql_query(query)
FAQ
L'erreur Table 'instance.table' doesn't exist est renvoyée
Cause : La table de données ou l'index de recherche spécifié n'existe pas. L'instruction CREATE TABLE crée uniquement la table de mappage.
Solution : Vérifiez les noms, assurez-vous que la table de données ou l'index de recherche existe, puis exécutez à nouveau l'instruction.
L'erreur Table 'instance.table' already exists est renvoyée
Cause : La table de mappage existe déjà. Une instruction DESCRIBE ou SELECT peut également créer automatiquement une table de mappage contenant uniquement les colonnes de clé primaire et les colonnes prédéfinies.
Solution : Pour éviter les erreurs de création en double, utilisez IF NOT EXISTS. Pour modifier une table de mappage créée automatiquement, évaluez l'impact, supprimez la table de mappage, puis recréez-la.