Todos os produtos
Search
Central de documentação

Tablestore:Criar uma tabela de séries temporais

Última atualização: Aug 13, 2026

Chame a operação CreateTimeseriesTable para criar uma tabela de séries temporais. Durante a criação, defina o tempo de vida (TTL) dos dados, as configurações de metadados, os identificadores personalizados e os campos de dados customizados como colunas de chave primária. Também é possível criar um índice Lastpoint e um repositório analítico. O repositório analítico permite analisar dados de séries temporais com rapidez, enquanto o índice Lastpoint facilita a recuperação dos dados mais recentes das séries temporais na tabela.

Pré-requisitos

  • Crie uma instância para o modelo TimeSeries. Para mais informações, consulte Create an instance for the TimeSeries model.

    Importante

    Para utilizar o recurso de repositório analítico ou índice Lastpoint, crie a instância do modelo TimeSeries em uma região que ofereça suporte a esses recursos.

  • Inicialize um cliente. Para mais informações, consulte Initialize a Tablestore client.

Observações de uso

  • O nome da nova tabela de séries temporais não pode ser igual ao de uma tabela de dados existente.

    Nota

    Utilize a operação ListTimeseriesTable para consultar os nomes das tabelas de séries temporais em uma instância. Para mais detalhes, consulte List time series tables.

  • Crie apenas um repositório analítico por tabela de séries temporais.

  • A soma total de índices Lastpoint e repositórios analíticos em uma única tabela de séries temporais não pode ultrapassar 10.

  • Especifique até quatro campos de dados como colunas de chave primária da tabela.

  • Defina até seis campos como parte dos identificadores personalizados de séries temporais.

Parâmetros

Parâmetro

Descrição

TimeseriesTableMeta

Configurações da tabela de séries temporais, criadas pela chamada de NewTimeseriesTableMeta. Inclui:

  • TimeseriesTableName: nome da tabela de séries temporais.

  • TimeseriesMetaOptions: configurações dos metadados das séries temporais. Abrange os seguintes parâmetros:

    • MetaTimeToLive: TTL dos metadados das séries temporais. Unidade: segundos. O valor deve ser -1 ou maior ou igual a 604800. O valor -1 indica que os metadados nunca expiram. O valor 604800 corresponde a 7 dias.

    • AllowUpdateAttributes: define se as colunas de propriedade dos metadados podem ser modificadas.

  • TimeseriesTableOptions: configurações da tabela de séries temporais, geradas pela chamada de NewTimeseriesTableOptions. Contém o seguinte parâmetro:

    TimeToLive: TTL dos dados na tabela de séries temporais. Unidade: segundos. Defina como -1 caso não deseje que os dados expirem. A operação UpdateTimeseriesTable permite modificar esse parâmetro.

  • Identificadores personalizados de séries temporais, adicionados via AddTimeseriesKey. Por padrão, os identificadores são compostos pelo nome da métrica, source de dados e tags. Para mais informações, consulte Specify custom time series identifiers and custom data fields as the primary key columns. Este parâmetro é obrigatório ao definir identificadores customizados.

  • Campos de dados especificados como colunas de chave primária, inseridos através de AddFieldPrimaryKey. Permite armazenar múltiplas linhas de dados com os mesmos identificadores e timestamp na tabela. Consulte Specify custom time series identifiers and custom data fields as the primary key columns para detalhes. Utilize este parâmetro apenas quando precisar guardar várias linhas com identificadores e timestamp idênticos.

EnableAnalyticalStore

Define se o repositório analítico padrão será criado, configurado via SetEnableAnalyticalStore. Valor padrão: true, indicando a criação do repositório analítico padrão.

Após a criação, o repositório analítico possibilita o armazenamento econômico de dados, além de consultas e análises eficientes. Consulte Analytical store para mais detalhes.

Defina como false caso não queira criar um repositório analítico.

AnalyticalStores

Configurações do repositório analítico, definidas por SetAnalyticalStores, compostas pelos itens abaixo:

  • AnalyticalStoreName: nome do repositório analítico.

  • TimeToLive: TTL do repositório analítico. Unidade: segundos. Aceita -1 ou um inteiro positivo int32 maior ou igual a 2592000. O valor -1 significa que os dados nunca expiram. O valor 2592000 equivale a 30 dias.

  • SyncOption: configuração de sincronização de dados. O valor é fixo em SYNC_TYPE_FULL.

LastpointIndexNames

Nomes dos índices Lastpoint a serem criados junto com a tabela, definidos por SetLastpointIndexNames. É possível criar no máximo um índice Lastpoint durante a criação da tabela. Consulte Lastpoint index para mais informações.

Exemplos

Criar uma tabela de séries temporais sem repositório analítico

O código de exemplo abaixo demonstra como criar uma tabela de séries temporais:

/**
 * 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)
}

Criar uma tabela de séries temporais e um repositório analítico

Ao criar uma tabela de séries temporais, você pode gerar o repositório analítico padrão ou um personalizado.

Criar uma tabela de séries temporais e o repositório analítico padrão

O exemplo a seguir ilustra a criação simultânea de uma tabela de séries temporais e seu repositório analítico padrão. Neste cenário, o nome do repositório é fixado como default_analytical_store e os dados nele contidos nunca expiram.

/**
 * 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)
}

Criar uma tabela de séries temporais e um repositório analítico personalizado

Este trecho de código mostra como criar uma tabela de séries temporais juntamente com um repositório analítico customizado. Aqui, o repositório recebe o nome test_analytical_store e seus dados possuem validade permanente.

/**
 * 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)
}

Especificar identificadores personalizados e campos de dados como colunas de chave primária

Importante

A versão mais recente do Tablestore SDK for Go suporta a definição de identificadores e campos de dados customizados como chaves primárias. Certifique-se de utilizar a versão correta do SDK ao configurar esses elementos.

O código abaixo exemplifica a criação de uma tabela onde os identificadores são pk1 e pk2, e os campos field1 (Integer), field2 (String) e field3 (Binary) atuam como colunas de chave primária:

/**
 * 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)
}

Criar uma tabela de séries temporais e um índice Lastpoint

Importante

O recurso de índice Lastpoint está disponível na versão mais recente do Tablestore SDK for Go. Verifique se está usando a versão adequada do SDK para aproveitar essa funcionalidade.

Veja no exemplo a seguir como criar uma tabela de séries temporais e, simultaneamente, um índice Lastpoint chamado index1:

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)
	}
}

Referências