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.
ImportantePara 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.
NotaUtilize 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
|
|
EnableAnalyticalStore |
Define se o repositório analítico padrão será criado, configurado via 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
|
|
LastpointIndexNames |
Nomes dos índices Lastpoint a serem criados junto com a tabela, definidos por |
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
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
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
Após criar a tabela, escreva e leia dados de séries temporais conforme descrito em Write time series data e Query time series data.
Para reduzir custos de armazenamento e acelerar consultas e análises, crie um repositório analítico associado à tabela. Saiba mais em Create an analytical store.
Modifique o TTL dos dados da tabela seguindo as orientações em Update a time series table.
Liste todas as tabelas de séries temporais da instância atual conforme explicado em Query the names of time series tables.
Obtenha informações detalhadas sobre uma tabela específica consultando Query information of a time series table.
Exclua tabelas de séries temporais desnecessárias seguindo os passos em Delete a time series table by using Go SDK.
Utilize o recurso Data Integration do DataWorks para sincronizar dados do Tablestore com o Object Storage Service (OSS), garantindo backup econômico ou exportação para dispositivos locais. Consulte Synchronize data from Tablestore to OSS.
Conecte o Tablestore ao Grafana para visualizar seus dados de séries temporais. Detalhes em Connect to Grafana.
Armazene resultados de processamento e análise do Realtime Compute for Apache Flink em tabelas de séries temporais do Tablestore. Consulte Tutorial (TimeSeries model).