全部產品
Search
文件中心

Tablestore:建立時序表

更新時間:Apr 09, 2025

您可以通過調用CreateTimeseriesTable介面來建立時序表。在建立時序表時,您需要指定與時序表及時間軸中繼資料相關的配置資訊。此外,還可以根據業務需求,自訂時間軸標識以及作為主鍵的資料欄位、建立分析儲存以及建立Lastpoint索引。

注意事項

  • Table StorePython SDK從6.1.0版本開始支援時序模型功能,請確保已擷取正確的Python SDK版本。

    說明

    關於Python SDK歷史迭代版本的詳細資料,請參見Python SDK歷史迭代版本

  • 時序表的名稱在當前執行個體下必須唯一,不能與已存在的表名稱重複。

  • 一個時序表只能建立1個分析儲存,且分析儲存與Lastpoint索引的數量總和不得超過10個。

    說明

    支援分析儲存和Lastpoint索引功能的地區包括華東1(杭州)、華東2(上海)、華北2(北京)和華北3(張家口)。

  • 一個時序表最多隻能添加4個作為主鍵的資料欄位。

  • 為一個時序表自訂時間軸標識時,最多可添加6個欄位。

前提條件

初始化Tablestore Client

參數說明

request包含以下參數:

參數

說明

table_meta(必選

時序表的結構資訊。包含以下內容:

  • timeseries_table_name(必選):時序表名稱。

  • timeseries_table_options(可選):時序表的配置資訊。包括以下內容:

    • time_to_live(必選):時序表資料的生命週期,即時序表資料的到期時間,單位為秒。

      時序表資料的生命週期最小為86400秒(1天),也可以設定為-1(永不到期)。

  • timeseries_meta_options(可選):時間軸中繼資料的配置資訊。包括以下內容:

    • meta_time_to_live(可選):時間軸中繼資料生命週期,即時間軸的到期時間,單位為秒。

      預設值為-1,時間軸中繼資料生命週期最小為604800秒(7天)或者-1(永不到期)。

      重要

      時間軸中繼資料生命週期的取值必須大於或等於時序表的資料生命週期。

    • allow_update_attributes(可選):是否允許更新時間軸中繼資料屬性。預設值為True,表示允許更新。

      重要

      如果meta_time_to_live為非-1的值,則必須將allow_update_attributes設定為False,即不允許更新時間軸中繼資料屬性。

  • timeseries_keys(可選):自訂時間軸標識。自訂時間軸標識資訊,預設使用度量名稱、資料來源和標籤構成時間軸標識。

    說明

    僅在需要自訂時間軸標識時,才需設定此參數。

  • field_primary_keys(可選):作為主鍵的資料欄位,可實現在時序表中儲存多行時間軸標識和時間點相同的資料。

    說明

    僅在需要同時儲存具有相同時間軸標識的多行資料時,才需設定此參數。

analytical_stores(可選)

時序分析儲存的配置資訊。包括以下內容:

  • analytical_store_name(必選):分析儲存名稱。

  • time_to_live(可選):分析儲存資料的生命週期,即分析儲存資料的到期時間,單位為秒。

    預設值為-1,分析儲存資料的生命週期最低為2592000秒(30天)或者-1(永不到期)。

  • sync_option(可選):分析儲存同步方式。取值範圍如下:

    • SYNC_TYPE_FULL(預設):全量同步。

    • SYNC_TYPE_INCR:增量同步處理。

lastpoint_index_metas(可選)

Lastpoint索引的配置資訊。包括以下內容:

  • index_table_name(必選):Lastpoint索引名稱。

樣本

建立時序表

以下樣本用於建立時序表。

try:
    # 時序表資料的生命週期172800秒(2天)。
    tableOption = TimeseriesTableOptions(172800)
    # 時間軸中繼資料生命週期-1(永久),允許更新時間軸中繼資料屬性。
    metaOption = TimeseriesMetaOptions(-1, True)
    tableMeta = TimeseriesTableMeta("<TIMESERIES_TABLE_NAME>", tableOption, metaOption)

    # 調用介面建立時序表。
    request = CreateTimeseriesTableRequest(tableMeta)
    otsClient.create_timeseries_table(request)
    print("create timeseries table success.")
except Exception as e:
    # 如果拋出異常,則說明執行失敗,處理異常。
    print("create timeseries table failed. %s" % e)

建立時序表時配置分析儲存

以下樣本用於建立時序表,並同時配置分析儲存。

try:
    # 時序表資料的生命週期172800秒(2天)。
    tableOption = TimeseriesTableOptions(172800)
    # 時間軸中繼資料生命週期-1(永久),允許更新時間軸中繼資料屬性。
    metaOption = TimeseriesMetaOptions(-1, True)
    tableMeta = TimeseriesTableMeta("<TIMESERIES_TABLE_NAME>", tableOption, metaOption)

    # 配置分析儲存。
    analyticalStore = TimeseriesAnalyticalStore("default_analytical_store", -1, SyncType.SYNC_TYPE_FULL)

    # 調用介面建立時序表。
    request = CreateTimeseriesTableRequest(tableMeta, [analyticalStore])
    otsClient.create_timeseries_table(request)
    print("create timeseries table success.")
except Exception as e:
    # 如果拋出異常,則說明執行失敗,處理異常。
    print("create timeseries table failed. %s" % e)

建立時序表時自訂時間軸標識和作為主鍵的資料欄位

以下樣本用於建立時序表,並配置自訂時間軸標識為keyAkeyBkeyC,同時有兩個作為主鍵的資料欄位gid(字串類型)和uid(整型)。

try:
    # 時序表資料的生命週期86400秒(1天)。
    tableOption = TimeseriesTableOptions(86400)
    # 時間軸中繼資料生命週期-1(永久),允許更新時間軸中繼資料屬性。
    metaOption = TimeseriesMetaOptions(-1, True)
    # 自訂時間軸標識
    timeseriesKeys = ["keyA", "keyB", "keyC"]
    # 作為主鍵的資料欄位
    fieldPrimaryKeys = [('gid', 'STRING'), ('uid', 'INTEGER')]
    tableMeta = TimeseriesTableMeta("<TIMESERIES_TABLE_NAME>", tableOption, metaOption, timeseriesKeys,
                                    fieldPrimaryKeys)

    # 調用介面建立時序表。
    request = CreateTimeseriesTableRequest(tableMeta)
    otsClient.create_timeseries_table(request)
    print("create timeseries table success.")
except Exception as e:
    # 如果拋出異常,則說明執行失敗,處理異常。
    print("create timeseries table failed. %s" % e)

建立時序表時配置Lastpoint索引

以下樣本用於建立時序表,並同時建立Lastpoint索引。

try:
    # 時序表資料的生命週期86400秒(1天)。
    tableOption = TimeseriesTableOptions(86400)
    # 時間軸中繼資料生命週期604800(7天),不允許更新時間軸中繼資料屬性。
    metaOption = TimeseriesMetaOptions(604800, False)
    tableMeta = TimeseriesTableMeta("<TIMESERIES_TABLE_NAME>", tableOption, metaOption)

    # 配置Lastpoint索引。
    lastPointIndex = LastpointIndexMeta("<LASTPOINT_INDEX_NAM>")

    # 調用介面建立時序表。
    request = CreateTimeseriesTableRequest(tableMeta, None, [lastPointIndex])
    otsClient.create_timeseries_table(request)
    print("create timeseries table success.")
except Exception as e:
    # 如果拋出異常,則說明執行失敗,處理異常。
    print("create timeseries table failed. %s" % e)