Tous les produits
Search
Centre de documentation

Tablestore:Créer une table de séries temporelles

Dernière mise à jour :Aug 18, 2026

Appelez l'opération CreateTimeseriesTable pour créer une table de séries temporelles. Lors de la création, spécifiez la durée de vie (TTL) des données, la configuration des métadonnées de série temporelle, ainsi que les identifiants de série temporelle personnalisés et les champs de données personnalisés qui serviront de colonnes de clé primaire. Vous pouvez également créer un index Lastpoint et un magasin analytique. Le magasin analytique permet d'analyser rapidement les données de séries temporelles, tandis que l'index Lastpoint facilite la récupération rapide des données correspondant au dernier point temporel des séries contenues dans la table.

Prérequis

  • Une instance pour le modèle TimeSeries est créée. Pour plus d'informations, consultez la rubrique Créer une instance pour le modèle TimeSeries.

    Important

    Pour utiliser les fonctionnalités de magasin analytique ou d'index Lastpoint, vous devez créer une instance pour le modèle TimeSeries dans une région qui prend en charge ces fonctionnalités.

  • Un client est initialisé. Pour plus d'informations, consultez la rubrique Initialiser un client Tablestore.

Notes d'utilisation

  • Le nom de la table de séries temporelles ne doit pas être identique à celui d'une table de données existante.

    Remarque

    Appelez l'opération ListTimeseriesTable pour interroger les noms des tables de séries temporelles présentes dans une instance. Pour plus d'informations, consultez la rubrique Lister les tables de séries temporelles.

  • Vous ne pouvez créer qu'un seul magasin analytique par table de séries temporelles.

  • Le nombre total d'index Lastpoint et de magasins analytiques créés pour une table de séries temporelles ne peut pas dépasser 10.

  • Vous pouvez spécifier jusqu'à quatre champs de données comme colonnes de clé primaire d'une table de séries temporelles.

  • Vous pouvez spécifier jusqu'à six champs comme composants des identifiants de série temporelle personnalisés d'une table de séries temporelles.

Paramètres

Paramètre

Description

TimeseriesTableMeta

Configuration de la table de séries temporelles, créée en appelant NewTimeseriesTableMeta. La configuration inclut :

  • TimeseriesTableName : nom de la table de séries temporelles.

  • TimeseriesMetaOptions : configuration des métadonnées de série temporelle. Les paramètres suivants sont inclus :

    • MetaTimeToLive : durée de vie (TTL) des métadonnées de série temporelle. Unité : secondes. La valeur doit être -1 ou supérieure ou égale à 604800. Une valeur de -1 indique que les métadonnées n'expirent jamais. Une valeur de 604800 correspond à 7 jours.

    • AllowUpdateAttributes : indique si les colonnes de propriété des métadonnées de série temporelle peuvent être modifiées.

  • TimeseriesTableOptions : configuration de la table de séries temporelles, créée en appelant NewTimeseriesTableOptions. Le paramètre suivant est inclus :

    TimeToLive : durée de vie (TTL) des données dans la table de séries temporelles. Unité : secondes. Si vous souhaitez que les données de la table n'expirent pas, définissez ce paramètre sur -1. Appelez l'opération UpdateTimeseriesTable pour modifier ce paramètre.

  • Identifiants de série temporelle personnalisés, ajoutés en appelant AddTimeseriesKey. Par défaut, les identifiants de série temporelle se composent du nom de la métrique, de la source de données et des tags. Pour plus d'informations, consultez la rubrique Spécifier des identifiants de série temporelle personnalisés et des champs de données personnalisés comme colonnes de clé primaire. Ce paramètre est requis lorsque vous spécifiez des identifiants de série temporelle personnalisés.

  • Champs de données spécifiés comme colonnes de clé primaire, ajoutés en appelant AddFieldPrimaryKey. Ce paramètre vous permet de stocker plusieurs lignes de données de séries temporelles ayant les mêmes identifiants de série temporelle et le même horodatage dans une table de séries temporelles. Pour plus d'informations, consultez la rubrique Spécifier des identifiants de série temporelle personnalisés et des champs de données personnalisés comme colonnes de clé primaire. Ce paramètre n'est requis que si vous souhaitez stocker plusieurs lignes de données de séries temporelles avec les mêmes identifiants et le même horodatage dans une table.

EnableAnalyticalStore

Indique s'il faut créer le magasin analytique par défaut, défini en appelant SetEnableAnalyticalStore. Valeur par défaut : true, ce qui signifie que le magasin analytique par défaut est créé.

Après avoir créé un magasin analytique, utilisez-le pour stocker les données de séries temporelles à moindre coût, ainsi que pour interroger et analyser ces données. Pour plus d'informations, consultez la rubrique Magasin analytique.

Si vous ne souhaitez pas créer de magasin analytique, définissez ce paramètre sur false.

AnalyticalStores

Configuration du magasin analytique, définie en appelant SetAnalyticalStores, comprenant les éléments suivants :

  • AnalyticalStoreName : nom du magasin analytique.

  • TimeToLive : durée de vie (TTL) du magasin analytique. Unité : secondes. Définissez TimeToLive sur -1 ou sur un entier positif int32 supérieur ou égal à 2592000. Une valeur de -1 indique que les données du magasin analytique n'expirent jamais. Une valeur de 2592000 correspond à 30 jours.

  • SyncOption : configuration de la synchronisation des données. La valeur de cet élément est fixée à SYNC_TYPE_FULL.

LastpointIndexNames

Noms des index Lastpoint à créer conjointement avec la table de séries temporelles, définis en appelant SetLastpointIndexNames. Vous pouvez créer au maximum un index Lastpoint lors de la création d'une table de séries temporelles. Pour plus d'informations, consultez la rubrique Index Lastpoint.

Exemples

Créer une table de séries temporelles sans magasin analytique

L'exemple de code suivant montre comment créer une table de séries temporelles :

/**
 * CreateTimeseriesTableSample is used to create a time series table. timeseriesTableName is used to specify the name of the time series table and timeTolive is used to specify the TTL of the time series table.
 */
func CreateTimeseriesTableSample(client *tablestore.TimeseriesClient, timeseriesTableName string , timeToLive int64) {
    fmt.Println("[Info]: Begin to create timeseries table: " , timeseriesTableName)

    // Construct the configuration information of the time series table.
    timeseriesTableOptions := tablestore.NewTimeseriesTableOptions(timeToLive) 

    // Construct the metadata information of the table.
    // Specify the name of the time series table.
    timeseriesTableMeta := tablestore.NewTimeseriesTableMeta(timeseriesTableName) 
    // Specify the configuration information of the time series table.
    timeseriesTableMeta.SetTimeseriesTableOptions(timeseriesTableOptions)    

    // Construct the request to create the time series table.
    createTimeseriesTableRequest := tablestore.NewCreateTimeseriesTableRequest()   
    createTimeseriesTableRequest.SetTimeseriesTableMeta(timeseriesTableMeta)
    // Specify that the default analytical store is not created.
    createTimeseriesTableRequest.SetEnableAnalyticalStore(false)  

    // Call the client to create the time series table.
    createTimeseriesTableResponse , err := client.CreateTimeseriesTable(createTimeseriesTableRequest) 
    if err != nil {
        fmt.Println("[Error]: Failed to create timeseries table with error: " , err)
        return
    }
    fmt.Println("[Info]: CreateTimeseriesTable finished! RequestId: " , createTimeseriesTableResponse.RequestId)
}

Créer une table de séries temporelles et un magasin analytique

Lors de la création d'une table de séries temporelles, vous pouvez créer le magasin analytique par défaut ou un magasin analytique personnalisé.

Créer une table de séries temporelles et le magasin analytique par défaut

L'exemple de code suivant montre comment créer simultanément une table de séries temporelles et le magasin analytique par défaut. Dans cet exemple, le nom du magasin analytique par défaut est fixé à default_analytical_store et les données qu'il contient n'expirent jamais.

/**
 * CreateTimeseriesTableSample is used to create a time series table. timeseriesTableName is used to specify the name of the time series table and timeTolive is used to specify the TTL of the time series table.
 */
func CreateTimeseriesTableSample(client *tablestore.TimeseriesClient, timeseriesTableName string , timeToLive int64) {
    fmt.Println("[Info]: Begin to create timeseries table: " , timeseriesTableName)

    // Construct the configuration information of the time series table.
    timeseriesTableOptions := tablestore.NewTimeseriesTableOptions(timeToLive)        

    // Construct the metadata information of the table.
    // Specify the name of the time series table.
    timeseriesTableMeta := tablestore.NewTimeseriesTableMeta(timeseriesTableName)  
    // Specify the configuration information of the time series table.
    timeseriesTableMeta.SetTimeseriesTableOptions(timeseriesTableOptions)      

    // Construct the request to create the time series table.
    createTimeseriesTableRequest := tablestore.NewCreateTimeseriesTableRequest()    
    createTimeseriesTableRequest.SetTimeseriesTableMeta(timeseriesTableMeta)

    // Call the client to create the time series table.
    createTimeseriesTableResponse , err := client.CreateTimeseriesTable(createTimeseriesTableRequest)    
    if err != nil {
        fmt.Println("[Error]: Failed to create timeseries table with error: " , err)
        return
    }
    fmt.Println("[Info]: CreateTimeseriesTable finished! RequestId: " , createTimeseriesTableResponse.RequestId)
}

Créer une table de séries temporelles et un magasin analytique personnalisé

L'exemple de code suivant montre comment créer simultanément une table de séries temporelles et un magasin analytique personnalisé. Dans cet exemple, le nom du magasin analytique personnalisé est test_analytical_store et les données qu'il contient n'expirent jamais.

/**
 * CreateTimeseriesTableSample is used to create a time series table. timeseriesTableName is used to specify the name of the time series table and timeTolive is used to specify the TTL of the time series table. In this example, an analytical store named test_analytical_store is created.
 */
func CreateTimeseriesTableSample(client *tablestore.TimeseriesClient, timeseriesTableName string , timeToLive int64) {
    fmt.Println("[Info]: Begin to create timeseries table: " , timeseriesTableName)

    // Construct the configuration information of the time series table.
    timeseriesTableOptions := tablestore.NewTimeseriesTableOptions(timeToLive)    

    // Construct the metadata information of the table.
    // Specify the name of the time series table.
    timeseriesTableMeta := tablestore.NewTimeseriesTableMeta(timeseriesTableName)  
    // Specify the configuration information of the time series table.
    timeseriesTableMeta.SetTimeseriesTableOptions(timeseriesTableOptions)  

    // Construct the request to create the time series table.
    createTimeseriesTableRequest := tablestore.NewCreateTimeseriesTableRequest() 
    createTimeseriesTableRequest.SetTimeseriesTableMeta(timeseriesTableMeta)

    // Construct the configuration information of the analytical store.
    createTimeseriesTableRequest.SetAnalyticalStores([]*tablestore.TimeseriesAnalyticalStore{
        tablestore.NewTimeseriesAnalyticalStore("test_analytical_store"),
    })

    // Call the client to create the time series table.
    createTimeseriesTableResponse , err := client.CreateTimeseriesTable(createTimeseriesTableRequest) 
    if err != nil {
        fmt.Println("[Error]: Failed to create timeseries table with error: " , err)
        return
    }
    fmt.Println("[Info]: CreateTimeseriesTable finished! RequestId: " , createTimeseriesTableResponse.RequestId)
}

Spécifier des identifiants de série temporelle personnalisés et des champs de données personnalisés comme colonnes de clé primaire d'une table de séries temporelles

Important

La dernière version du SDK Tablestore pour Go vous permet de spécifier des identifiants de série temporelle personnalisés et des champs de données personnalisés comme colonnes de clé primaire d'une table de séries temporelles. Lorsque vous utilisez cette fonctionnalité, assurez-vous d'utiliser la version appropriée du SDK Tablestore pour Go.

L'exemple de code suivant montre comment créer une table de séries temporelles dont les identifiants de série temporelle sont composés de pk1 et pk2, et où les champs de données field1 (Integer), field2 (String) et field3 (Binary) sont spécifiés comme colonnes de clé primaire :

/**
 * CreateTimeseriesTableSample is used to create a time series table. timeseriesTableName is used to specify the name of the time series table and timeTolive is used to specify the TTL of the time series table.
 */
func CreateTimeseriesTableSample(client *tablestore.TimeseriesClient, timeseriesTableName string, timeToLive int64) {
	fmt.Println("[Info]: Begin to create timeseries table: ", timeseriesTableName)

	timeseriesTableOptions := tablestore.NewTimeseriesTableOptions(timeToLive)
	timeseriesTableMeta := tablestore.NewTimeseriesTableMeta(timeseriesTableName)
	timeseriesTableMeta.SetTimeseriesTableOptions(timeseriesTableOptions)
	// Add custom time series identifiers.
	timeseriesTableMeta.AddTimeseriesKey("pk1")
	timeseriesTableMeta.AddTimeseriesKey("pk2")
	// Add data fields that are specified as the primary key columns of the time series table.
	timeseriesTableMeta.AddFieldPrimaryKey("field1", tablestore.PrimaryKeyType_INTEGER)
	timeseriesTableMeta.AddFieldPrimaryKey("field1", tablestore.PrimaryKeyType_STRING)
	timeseriesTableMeta.AddFieldPrimaryKey("field3", tablestore.PrimaryKeyType_BINARY)
	// Construct the request to create the time series table.
	createTimeseriesTableRequest := tablestore.NewCreateTimeseriesTableRequest()
	createTimeseriesTableRequest.SetTimeseriesTableMeta(timeseriesTableMeta)

	createTimeseriesTableResponse, err := client.CreateTimeseriesTable(createTimeseriesTableRequest)
	if err != nil {
		fmt.Println("[Error]: Failed to create timeseries table with error: ", err)
		return
	}
	fmt.Println("[Info]: CreateTimeseriesTable finished! RequestId: ", createTimeseriesTableResponse.RequestId)
}

Créer une table de séries temporelles et un index Lastpoint

Important

La dernière version du SDK Tablestore pour Go prend en charge la fonctionnalité d'index Lastpoint. Lorsque vous utilisez cette fonctionnalité, assurez-vous d'utiliser la version appropriée du SDK Tablestore pour Go.

L'exemple de code suivant montre comment créer simultanément une table de séries temporelles et un index Lastpoint nommé index1 pour cette table :

func createTimeseriesTable(client *tablestore.TimeseriesClient) {
	timeseriesTableMeta := tablestore.NewTimeseriesTableMeta("test_timeseries_table")
	timeseriesTableMeta.SetTimeseriesTableOptions(tablestore.NewTimeseriesTableOptions(-1))
	request := tablestore.NewCreateTimeseriesTableRequest()
	request.SetTimeseriesTableMeta(timeseriesTableMeta)
	request.SetLastpointIndexNames([]string{"index1"})
	_, err := client.CreateTimeseriesTable(request)
	if err != nil {
		log.Fatal(err)
	}
}

Références