全部產品
Search
文件中心

Tablestore:建立映射關係

更新時間:Oct 23, 2026

通過 Python SDK 為已有資料表或多元索引建立映射關係,以便通過 SQL 訪問資料。

前提條件

  • 安裝Tablestore Python SDK並初始化用戶端。

  • SQL 查詢功能需要使用 5.4.2 及以上版本,建議使用最新版本。

功能說明

Tablestore 不會自動為資料表建立 SQL 映射表。要通過 SQL 訪問資料表,需要先執行 CREATE TABLE 建立映射關係。調用 exe_sql_query 方法執行 CREATE TABLE 語句,為已有資料表或多元索引建立映射關係。

def exe_sql_query(self, query)

為資料表建立映射關係時,映射表名稱必須與資料表名稱一致,欄位名稱不區分大小寫,欄位類型需要與資料表欄位類型對應。為多元索引建立映射關係時,映射表名稱可以自訂,並通過 ENGINE 和 ENGINE_ATTRIBUTE 指定資料表和多元索引。

有關 CREATE TABLE 語句的文法、欄位類型和參數說明,請參見DDL 操作。

以下樣本為 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)

參數說明

exe_sql_query 方法包含以下參數。

名稱

類型

說明

query(必選)

String

要執行的 CREATE TABLE 語句,用於定義映射表名稱、欄位、主鍵和執行引擎。資料表映射和多元索引映射使用不同文法。

情境樣本

為多元索引建立映射關係

將 ENGINE 設定為 searchindex,並在 ENGINE_ATTRIBUTE 中指定資料表和多元索引名稱。以下樣本為 example_table 資料表的 example_index 多元索引建立名為 example_search_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)

常見問題

建立映射關係時提示 Table 'instance.table' doesn't exist

原因:指定的資料表或多元索引不存在。CREATE TABLE 語句僅建立映射關係,不會建立實際的資料表或多元索引。

解決方案:檢查名稱並確保資料表或多元索引已建立,然後重新執行語句。

建立映射關係時提示 Table 'instance.table' already exists

原因:映射關係已存在。該映射關係由 CREATE TABLE 語句建立。

解決方案:如需避免重複建立報錯,在語句中使用 IF NOT EXISTS。如需調整映射關係的結構,先使用 DESCRIBE 語句查看映射關係,再使用 ALTER TABLE 語句修改。