Crie uma tabela de séries temporais e configure o tempo de vida (TTL) de dados e metadados, identificadores de séries temporais, chaves primárias de campos de dados, analytical stores e índices Lastpoint com o Tablestore SDK for Java.
Pré-requisitos
Instale o Tablestore SDK for Java e inicialize um cliente de séries temporais.
Descrição
Chame createTimeseriesTable para criar uma tabela de séries temporais que armazena dados e metadados. O nome da tabela de séries temporais deve ser único entre as tabelas de dados e as tabelas de séries temporais na instância.
public CreateTimeseriesTableResponse createTimeseriesTable(CreateTimeseriesTableRequest request)
O exemplo a seguir cria a tabela example_timeseries_table. Por padrão, o TTL dos dados de séries temporais é -1, o que significa que os dados não expiram e nenhum analytical store é criado.
TimeseriesClient timeseriesClient = client.asTimeseriesClient();
String tableName = "example_timeseries_table";
TimeseriesTableMeta tableMeta = new TimeseriesTableMeta(tableName);
CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(tableMeta);
timeseriesClient.createTimeseriesTable(request);
Parâmetros
CreateTimeseriesTableRequest contém os seguintes parâmetros.
|
Nome |
Tipo |
Descrição |
|
timeseriesTableMeta (obrigatório) |
|
Esquema da tabela de séries temporais. |
|
analyticalStores (opcional) |
|
Analytical stores personalizados. Valor padrão: lista vazia. Você pode criar no máximo um analytical store ao criar uma tabela de séries temporais. |
|
enableAnalyticalStore (opcional) |
|
Define se o analytical store padrão deve ser criado. Valor padrão: |
|
lastpointIndexes (opcional) |
|
Índices Lastpoint a serem criados junto com a tabela de séries temporais. Valor padrão: lista vazia. Você pode criar no máximo um índice Lastpoint durante a criação da tabela. Uma tabela de séries temporais pode ter até 10 índices Lastpoint e analytical stores no total. |
Esquema da tabela de séries temporais
timeseriesTableMeta é do tipo TimeseriesTableMeta e contém os seguintes parâmetros.
|
Nome |
Tipo |
Descrição |
|
timeseriesTableName (obrigatório) |
|
Nome da tabela de séries temporais. Deve ser único entre as tabelas de dados e as tabelas de séries temporais na instância. |
|
timeseriesTableOptions (opcional) |
|
Configurações de TTL dos dados de séries temporais. O sistema usa as configurações padrão caso você não especifique este parâmetro. |
|
timeseriesMetaOptions (opcional) |
|
Configurações de metadados das séries temporais, incluindo TTL dos metadados e atualização de atributos. |
|
timeseriesKeys (opcional) |
|
Campos que formam um identificador personalizado de série temporal. Você pode especificar até seis campos. Por padrão, um identificador de série temporal consiste no nome da métrica, na source de dados e nas tags. Para mais informações, consulte Customize time series identifiers and data field primary keys. |
|
fieldPrimaryKeys (opcional) |
|
Campos de dados a serem usados como chaves primárias. Você pode definir até quatro campos para armazenar várias linhas com o mesmo identificador de série temporal e timestamp. Para mais informações, consulte Customize time series identifiers and data field primary keys. |
Retenção de dados de séries temporais
timeseriesTableMeta.timeseriesTableOptions é do tipo TimeseriesTableOptions e contém o seguinte parâmetro.
|
Nome |
Tipo |
Descrição |
|
timeToLive (opcional) |
|
TTL dos dados de séries temporais em segundos. Valor padrão: |
Metadados de séries temporais
timeseriesTableMeta.timeseriesMetaOptions é do tipo TimeseriesMetaOptions e contém os seguintes parâmetros.
|
Nome |
Tipo |
Descrição |
|
metaTimeToLive (opcional) |
|
TTL dos metadados de séries temporais em segundos. Defina o valor como |
|
allowUpdateAttributes (opcional) |
|
Define se as colunas de atributos de metadados podem ser atualizadas. Quando |
Chaves primárias de campos de dados
Cada elemento em timeseriesTableMeta.fieldPrimaryKeys[] é do tipo PrimaryKeySchema e contém os seguintes parâmetros.
|
Nome |
Tipo |
Descrição |
|
name (obrigatório) |
|
Nome do campo de dados a ser usado como chave primária. |
|
type (obrigatório) |
|
Tipo do campo de dados. Valores válidos: |
Analytical store
Cada elemento em analyticalStores[] é do tipo TimeseriesAnalyticalStore e contém os seguintes parâmetros.
|
Nome |
Tipo |
Descrição |
|
analyticalStoreName (obrigatório) |
|
Nome do analytical store. |
|
timeToLive (opcional) |
|
TTL do analytical store em segundos. Valor padrão: |
|
syncOption (opcional) |
|
Modo de sincronização de dados. Valor padrão: |
Índice Lastpoint
Cada elemento em lastpointIndexes[] é do tipo CreateTimeseriesTableRequest.LastpointIndex e contém o seguinte parâmetro.
|
Nome |
Tipo |
Descrição |
|
indexName (obrigatório) |
|
Nome do índice Lastpoint. Para mais informações, consulte Lastpoint indexes. |
Exemplos
Configurar o TTL de metadados
O exemplo a seguir define o TTL dos dados de séries temporais como 7 dias, o TTL dos metadados como 14 dias e desativa as atualizações de atributos de metadados.
String tableName = "example_timeseries_table";
TimeseriesTableOptions tableOptions = new TimeseriesTableOptions(604800);
TimeseriesTableMeta tableMeta = new TimeseriesTableMeta(tableName, tableOptions);
TimeseriesMetaOptions metaOptions = new TimeseriesMetaOptions();
metaOptions.setMetaTimeToLive(1209600);
metaOptions.setAllowUpdateAttributes(false);
tableMeta.setTimeseriesMetaOptions(metaOptions);
CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(tableMeta);
timeseriesClient.createTimeseriesTable(request);
Personalizar identificadores de séries temporais e chaves primárias de campos de dados
Identificadores personalizados de séries temporais e chaves primárias de campos de dados exigem o Tablestore SDK for Java 5.17.1 ou posterior. Recomendamos o uso da versão mais recente do SDK. Antes de utilizar esses recursos, verifique se a região da instância oferece suporte a eles.
O exemplo a seguir usa pk1 e pk2 como identificadores de série temporal, e field1 e field2 como chaves primárias de campos de dados.
String tableName = "example_timeseries_table";
TimeseriesTableMeta tableMeta = new TimeseriesTableMeta(tableName);
tableMeta.addTimeseriesKey("pk1");
tableMeta.addTimeseriesKey("pk2");
tableMeta.addFieldPrimaryKey("field1", PrimaryKeyType.INTEGER);
tableMeta.addFieldPrimaryKey("field2", PrimaryKeyType.STRING);
CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(tableMeta);
timeseriesClient.createTimeseriesTable(request);
Criar um índice Lastpoint
Os índices Lastpoint exigem o Tablestore SDK for Java 5.17.1 ou posterior. Recomendamos o uso da versão mais recente do SDK. Para usar esse recurso, crie uma instância do modelo de séries temporais em uma região com suporte. Para ver as regiões com suporte, consulte Lastpoint indexes.
O exemplo a seguir cria o índice example_lastpoint_index juntamente com a tabela de séries temporais.
String tableName = "example_timeseries_table";
TimeseriesTableMeta tableMeta = new TimeseriesTableMeta(tableName);
CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(tableMeta);
request.addLastpointIndex(
new CreateTimeseriesTableRequest.LastpointIndex("example_lastpoint_index"));
timeseriesClient.createTimeseriesTable(request);
Criar um analytical store
Um analytical store oferece armazenamento e análise econômicos para dados de séries temporais. Para utilizar esse recurso, crie uma instância do modelo de séries temporais em uma região com suporte. Para detalhes sobre regiões com suporte e funcionalidades, consulte Analytical store.
Analytical store padrão
Defina enableAnalyticalStore como true para criar o analytical store padrão chamado default_analytical_store.
String tableName = "example_timeseries_table";
TimeseriesTableMeta tableMeta = new TimeseriesTableMeta(tableName);
CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(tableMeta);
request.setEnableAnalyticalStore(true);
timeseriesClient.createTimeseriesTable(request);
Analytical store personalizado
O exemplo a seguir cria o example_analytical_store junto com a tabela de séries temporais. Os dados no analytical store não expiram e a sincronização completa é utilizada.
String tableName = "example_timeseries_table";
TimeseriesTableMeta tableMeta = new TimeseriesTableMeta(tableName);
CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(tableMeta);
TimeseriesAnalyticalStore analyticalStore =
new TimeseriesAnalyticalStore("example_analytical_store");
analyticalStore.setTimeToLive(-1);
analyticalStore.setSyncOption(AnalyticalStoreSyncType.SYNC_TYPE_FULL);
request.setAnalyticalStores(Collections.singletonList(analyticalStore));
timeseriesClient.createTimeseriesTable(request);
Referências
Após criar uma tabela de séries temporais, write time series data na tabela.
Depois de gravar dados, read time series data da tabela.