Cree una tabla de series temporales y configure el tiempo de vida (TTL) de los datos y metadatos, los identificadores de series temporales, las claves primarias de campos de datos, los almacenes analíticos y los índices Lastpoint con Tablestore SDK for Java.
Requisitos previos
Instale Tablestore SDK for Java e inicialice un cliente de series temporales.
Descripción
Llame a createTimeseriesTable para crear una tabla de series temporales que almacene datos y metadatos de series temporales. El nombre de la tabla de series temporales debe ser único entre las tablas de datos y las tablas de series temporales de la instancia.
public CreateTimeseriesTableResponse createTimeseriesTable(CreateTimeseriesTableRequest request)
El siguiente ejemplo crea example_timeseries_table. De forma predeterminada, el TTL de los datos de series temporales es -1, lo que significa que los datos no caducan y no se crea ningún almacén analítico.
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 contiene los siguientes parámetros.
|
Nombre |
Tipo |
Descripción |
|
timeseriesTableMeta (obligatorio) |
|
El esquema de la tabla de series temporales. |
|
analyticalStores (opcional) |
|
Los almacenes analíticos personalizados. Valor predeterminado: una lista vacía. Puede crear como máximo un almacén analítico al crear una tabla de series temporales. |
|
enableAnalyticalStore (opcional) |
|
Especifica si se debe crear el almacén analítico predeterminado. Valor predeterminado: |
|
lastpointIndexes (opcional) |
|
Los índices Lastpoint que se crearán junto con la tabla de series temporales. Valor predeterminado: una lista vacía. Puede crear como máximo un índice Lastpoint al crear una tabla de series temporales. Una tabla de series temporales puede tener hasta 10 índices Lastpoint y almacenes analíticos en total. |
Esquema de la tabla de series temporales
timeseriesTableMeta es del tipo TimeseriesTableMeta y contiene los siguientes parámetros.
|
Nombre |
Tipo |
Descripción |
|
timeseriesTableName (obligatorio) |
|
El nombre de la tabla de series temporales. Debe ser único entre las tablas de datos y las tablas de series temporales de la instancia. |
|
timeseriesTableOptions (opcional) |
|
La configuración del TTL de los datos de series temporales. Se utiliza la configuración predeterminada si no se configura este parámetro. |
|
timeseriesMetaOptions (opcional) |
|
La configuración de los metadatos de series temporales, que incluye el TTL de los metadatos y la configuración de actualización de atributos. |
|
timeseriesKeys (opcional) |
|
Los campos que forman un identificador de serie temporal personalizado. Puede especificar hasta seis campos. De forma predeterminada, un identificador de serie temporal consta del nombre de la métrica, el origen de datos y las etiquetas. Para obtener más información, consulte Customize time series identifiers and data field primary keys. |
|
fieldPrimaryKeys (opcional) |
|
Los campos de datos que se usarán como claves primarias. Puede especificar hasta cuatro campos para almacenar varias filas que tengan el mismo identificador de serie temporal y marca de tiempo. Para obtener más información, consulte Customize time series identifiers and data field primary keys. |
Retención de datos de series temporales
timeseriesTableMeta.timeseriesTableOptions es del tipo TimeseriesTableOptions y contiene el siguiente parámetro.
|
Nombre |
Tipo |
Descripción |
|
timeToLive (opcional) |
|
El TTL de los datos de series temporales en segundos. Valor predeterminado: |
Metadatos de series temporales
timeseriesTableMeta.timeseriesMetaOptions es del tipo TimeseriesMetaOptions y contiene los siguientes parámetros.
|
Nombre |
Tipo |
Descripción |
|
metaTimeToLive (opcional) |
|
El TTL de los metadatos de series temporales en segundos. Establezca el valor en |
|
allowUpdateAttributes (opcional) |
|
Especifica si se pueden actualizar las columnas de atributos de los metadatos. Si |
Claves primarias de campos de datos
Cada elemento en timeseriesTableMeta.fieldPrimaryKeys[] es del tipo PrimaryKeySchema y contiene los siguientes parámetros.
|
Nombre |
Tipo |
Descripción |
|
name (obligatorio) |
|
El nombre del campo de datos que se usará como clave primaria. |
|
type (obligatorio) |
|
El tipo de campo de datos. Valores válidos: |
Almacén analítico
Cada elemento en analyticalStores[] es del tipo TimeseriesAnalyticalStore y contiene los siguientes parámetros.
|
Nombre |
Tipo |
Descripción |
|
analyticalStoreName (obligatorio) |
|
El nombre del almacén analítico. |
|
timeToLive (opcional) |
|
El TTL del almacén analítico en segundos. Valor predeterminado: |
|
syncOption (opcional) |
|
El modo de sincronización de datos. Valor predeterminado: |
Índice Lastpoint
Cada elemento en lastpointIndexes[] es del tipo CreateTimeseriesTableRequest.LastpointIndex y contiene el siguiente parámetro.
|
Nombre |
Tipo |
Descripción |
|
indexName (obligatorio) |
|
El nombre del índice Lastpoint. Para obtener más información, consulte Lastpoint indexes. |
Ejemplos
Configurar el TTL de los metadatos
El siguiente ejemplo establece el TTL de los datos de series temporales en 7 días, el TTL de los metadatos en 14 días y deshabilita las actualizaciones de atributos de metadatos.
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 series temporales y claves primarias de campos de datos
Los identificadores de series temporales personalizados y las claves primarias de campos de datos requieren Tablestore SDK for Java 5.17.1 o posterior. Se recomienda utilizar la versión más reciente del SDK. Antes de usar estas funciones, asegúrese de que la región de la instancia sea compatible con ellas.
El siguiente ejemplo usa pk1 y pk2 como identificador de serie temporal, y utiliza field1 y field2 como claves primarias de campos de datos.
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);
Crear un índice Lastpoint
Los índices Lastpoint requieren Tablestore SDK for Java 5.17.1 o posterior. Se recomienda utilizar la versión más reciente del SDK. Para usar esta función, cree una instancia de modelo de series temporales en una región compatible. Para consultar las regiones compatibles, vea Lastpoint indexes.
El siguiente ejemplo crea example_lastpoint_index junto con la tabla de series temporales.
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);
Crear un almacén analítico
Un almacén analítico proporciona almacenamiento y análisis rentables para datos de series temporales. Para usar esta función, cree una instancia de modelo de series temporales en una región compatible. Para consultar las regiones compatibles y los detalles de la función, vea Analytical store.
Almacén analítico predeterminado
Establezca enableAnalyticalStore en true para crear el almacén analítico predeterminado llamado default_analytical_store.
String tableName = "example_timeseries_table";
TimeseriesTableMeta tableMeta = new TimeseriesTableMeta(tableName);
CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(tableMeta);
request.setEnableAnalyticalStore(true);
timeseriesClient.createTimeseriesTable(request);
Almacén analítico personalizado
El siguiente ejemplo crea example_analytical_store junto con la tabla de series temporales. Los datos en el almacén analítico no caducan y se utiliza la sincronización completa.
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);
Referencias
Después de crear una tabla de series temporales, write time series data a la tabla.
Después de escribir datos, read time series data de la tabla.