Por padrão, os identificadores de série temporal no modelo TimeSeries são compostos pelo nome da métrica, pela source de dados e pelas tags. Você pode especifique identificadores de série temporal personalizados de acordo com suas necessidades de negócio. Em uma tabela de série temporal, cada linha de dados é identificada de forma exclusiva pela combinação dos identificadores de série temporal e do timestamp. É possível especifique campos de dados personalizados como colunas de chave primária para armazenar múltiplas linhas com os mesmos identificadores de série temporal e timestamp, porém com dados de série temporal distintos. Este tópico descreve como especifique identificadores de série temporal personalizados e campos de dados personalizados como colunas de chave primária de uma tabela de série temporal.
Observações de uso
É possível especifique identificadores de série temporal personalizados e campos de dados personalizados como colunas de chave primária de uma tabela de série temporal nas seguintes regiões: China (Hangzhou), China (Shanghai), China (Beijing) e China (Zhangjiakou). Para isso, crie uma instância do modelo TimeSeries em uma dessas regiões.
Cenários
Especifique identificadores de série temporal personalizados
Identificadores de série temporal personalizados são úteis em cenários que exigem posicionamento temporal preciso, consultas por intervalo, análise de tendências e associação de eventos. Os itens a seguir descrevem esses cenários:
-
Solução de problemas e análise de causa raiz
Em operações de TI e monitoramento de equipamentos industriais, identificadores de série temporal personalizados ajudam a marcar com precisão o momento em que falhas ocorrem. Combinados com outros dados de série temporal (como status do dispositivo e informações de log), eles possibilitam localizar rapidamente as causas dos problemas para análise de causa raiz.
-
Análise de comportamento do usuário
Em aplicações de Internet, identificadores de série temporal personalizados permitem analisar períodos de atividade dos usuários, durações de sessão e caminhos de comportamento por meio do registro de horários de login, durações de visualização de página e sequências de operações. Essa abordagem baseada em dados facilita a otimização da experiência do usuário e as recomendações inteligentes de conteúdo.
-
Auditoria de transações financeiras
No setor financeiro, cada transação exige um timestamp preciso. Os identificadores de série temporal personalizados garantem a sequência e a integridade das transações e também viabilizam análises antifraude, como a identificação de padrões anômalos de transação e o rastreamento de fluxos financeiros.
Ao especifique identificadores de série temporal personalizados, você pode agrupar, filtrar e analisar dados de série temporal de forma flexível, viabilizando o gerenciamento granular e insights mais profundos em diversos cenários de negócio.
Dados de série temporal de exemplo
A tabela a seguir apresenta dados de série temporal de exemplo para monitoramento de temperatura e umidade de dispositivos industriais.
As colunas measurement, data_source, area e _tags são campos dos identificadores de série temporal personalizados e armazenam, respectivamente, o nome da métrica, a source de dados, a região e as tags.
A coluna _time armazena o timestamp.
As colunas temperature e humidity armazenam, respectivamente, a temperatura e a umidade.
|
measurement |
data_source |
area |
_tags |
_time |
temperature |
humidity |
|
temperature |
sensorA001 |
production |
["sensor_type=typeA", "sensor_version=1.0"] |
1712476514000000 |
24,5 |
|
|
temperature |
sensorA002 |
production |
["sensor_type=typeA", "sensor_version=1.0"] |
1712476524000000 |
24,5 |
|
|
temperature |
sensorA002 |
maintenance |
["sensor_type=typeA", "sensor_version=1.1"] |
1712476534000000 |
23,0 |
|
|
humidity |
sensorB001 |
production |
["sensor_type=typeB", "sensor_version=1.0"] |
1712476514000000 |
0,55 |
|
|
humidity |
sensorB001 |
maintenance |
["sensor_type=typeB", "sensor_version=1.0"] |
1712476524000000 |
0,50 |
Especifique campos de dados personalizados como colunas de chave primária
Para armazenar múltiplas linhas de dados de série temporal com os mesmos identificadores de série temporal e timestamp, especifique campos de dados personalizados como colunas de chave primária da tabela de série temporal. Os itens a seguir descrevem esses cenários:
-
Análise de associação de eventos
Em cenários complexos de análise, pode ser necessário associar dados de série temporal com base em campos de dados diferentes dos identificadores de série temporal. Ao especifique campos de dados personalizados como colunas de chave primária, você localiza rapidamente os dados de um dispositivo específico em timestamps determinados. Essa abordagem é adequada para solução de problemas e análise de comportamento.
-
Indexação multidimensional
Em aplicações avançadas de bancos de dados de série temporal, quando é necessário realizar consultas e filtragem multidimensionais nos dados, especifique campos de dados personalizados como colunas de chave primária melhora a eficiência das consultas. Essa abordagem permite localizar com mais precisão os dados de série temporal relevantes, especialmente ao processar grandes volumes de dados.
-
Gerenciamento de dados de série temporal multi-tenant
Ao fornecer serviços de armazenamento de dados de série temporal para múltiplos clientes, você pode especifique o id do tenant como uma das colunas de chave primária na tabela de série temporal, formando uma chave primária composta com o timestamp. Essa abordagem garante o isolamento dos dados e o acesso eficiente para diferentes tenants.
Dados de série temporal de exemplo
Ao monitorar a utilização de CPU de servidores, você precisa dos identificadores de série temporal para localizar cada servidor, mas cada servidor possui múltiplos núcleos. Nesse caso, especifique o id do núcleo como coluna de chave primária. A tabela a seguir apresenta os dados de série temporal de exemplo.
As colunas _m_name, _data_source e _tags são campos dos identificadores de série temporal personalizados e armazenam, respectivamente, o nome da métrica, a source de dados e as tags.
A coluna _time armazena o timestamp.
A coluna processor armazena o id do núcleo do servidor. Esse campo de dados é especificado como coluna de chave primária.
A coluna cpu_usage armazena a utilização de CPU.
|
_m_name |
_data_source |
_tags |
_time |
processor |
cpu_usage |
|
cpu |
host_1 |
["region=hangzhou"] |
1712476524000000 |
0 |
10,0 |
|
cpu |
host_1 |
["region=hangzhou"] |
1712476524000000 |
1 |
10,0 |
|
cpu |
host_1 |
["region=hangzhou"] |
1712476524000000 |
2 |
10,0 |
Métodos
É possível especifique identificadores de série temporal personalizados e campos de dados personalizados como colunas de chave primária de uma tabela de série temporal pelo console do Tablestore ou por meio dos SDK do Tablestore.
Antes de especifique identificadores de série temporal personalizados e campos de dados personalizados como colunas de chave primária de uma tabela de série temporal, verifique se os seguintes preparativos foram concluídos:
-
Uma conta Alibaba Cloud ou um usuário Resource Access Management (RAM) com permissões de operação do Tablestore foi criado. Para informações sobre como conceder permissões de operação do Tablestore a um usuário RAM, consulte Use a RAM policy to grant permissions to a RAM user.
Ao utilizar os SDK do Tablestore, se nenhum par de AccessKey estiver disponível, crie um par de AccessKey para a conta Alibaba Cloud ou o usuário RAM. Para mais informações, consulte Create an AccessKey.
AvisoSe o par de AccessKey da sua conta Alibaba Cloud for vazado, a segurança de todos os seus recursos ficará comprometida. Para garantir a segurança da conta, recomendamos utilizar o par de AccessKey de um usuário RAM e não crie nem utilizar o par de AccessKey de uma conta Alibaba Cloud.
-
Uma instância do modelo TimeSeries foi criada. Para mais informações, consulte Create an instance for the TimeSeries model.
ImportantePara especifique identificadores de série temporal personalizados e campos de dados personalizados como colunas de chave primária de uma tabela de série temporal, crie a instância do modelo TimeSeries na região China (Hangzhou), China (Shanghai), China (Beijing) ou China (Zhangjiakou).
Ao utilizar os SDK do Tablestore, inicialize um TimeseriesClient. Para mais informações, consulte Initialize a Tablestore client.
Especifique identificadores de série temporal personalizados
Por padrão, os identificadores de série temporal no modelo TimeSeries são compostos pelo nome da métrica, pela source de dados e pelas tags. Em uma tabela de série temporal, esses identificadores correspondem aos campos _m_name, _data_source e _tags. As tags consistem em múltiplos pares de chave-valor do tipo String.
Quando os nomes padrão dos campos dos identificadores de série temporal não atendem às suas necessidades de negócio, você pode especifique identificadores de série temporal personalizados para se adequar melhor aos cenários reais da aplicação, melhorando a intuitividade e a eficiência do processamento e análise de dados. Por exemplo, ao monitorar a utilização de CPU de servidores, você pode usar identificadores de série temporal para localizar cada núcleo de CPU. Após especifique os identificadores personalizados, ainda é possível usar os nomes padrão dos identificadores de série temporal para operações de dados.
Especifique os identificadores de série temporal personalizados ao crie a tabela de série temporal. Em seguida, grave dados na tabela com base nos identificadores personalizados. O processo é o seguinte:
Usar o console do Tablestore
Ao crie uma tabela de série temporal, especifique os identificadores de série temporal personalizados. Para mais informações, consulte Manage time series tables.
-
Grave dados na tabela de série temporal com base nos identificadores de série temporal personalizados.
Ao gravar dados na tabela de série temporal, os campos dos identificadores de série temporal personalizados no cliente são passados ao servidor do Tablestore como pares de chave-valor. O servidor primeiro extrai o nome da métrica e a source de dados dos pares de chave-valor, e então utiliza os pares restantes como tags da série temporal. Para mais informações, consulte Write time series data.
ImportanteSe os campos dos identificadores de série temporal personalizados não incluírem o campo _tags ao crie a tabela de série temporal, mas ainda restarem pares de chave-valor após exclua o nome da métrica, a source de dados e os campos personalizados durante a gravação dos dados, a gravação falhará.
-
Leia dados da tabela de série temporal.
-
Crie uma tabela de mapeamento SQL para a tabela de série temporal. Para mais informações, consulte Create mapping tables in the multi-value model for time series tables.
Na página Manage Time Series Table, clique em na aba Query by Executing SQL Statement.
No lado esquerdo da aba Query by Executing SQL Statement, clique em no ícone + ao lado do nome da instância do modelo TimeSeries.
-
Na caixa de diálogo Create Mapping Table, configure os parâmetros. A tabela a seguir descreve os parâmetros.
Parâmetro
Descrição
Table Name
O nome da tabela de série temporal.
Mapping Table Name
O nome da tabela de mapeamento.
NotaAo crie uma tabela de mapeamento SQL para uma tabela de série temporal, o sistema adiciona automaticamente o prefixo
time series table name::ao nome da tabela de mapeamento.Enable Analytical Store
O recurso de analytical store é utilizado em cenários nos quais você deseja armazenar dados de série temporal por longos períodos e analisá-los. Com o analytical store, é possível armazenar dados de série temporal com custos reduzidos, além de consultar e analisar os dados de forma eficiente. Para mais informações, consulte Analytical store.
Por padrão, Enable Analytical Store está desativado. Configure o parâmetro de acordo com suas necessidades de negócio.
-
Se não desejar utilizar um analytical store para armazenar e analisar dados de série temporal, mantenha a configuração padrão do parâmetro Enable Analytical Store.
-
Se desejar armazenar dados de série temporal com custos reduzidos ou consultar e analisar dados de série temporal de forma eficiente, certifique-se de que um analytical store foi criado e que Enable Analytical Store está ativado.
Importante-
O recurso de analytical store está disponível nas seguintes regiões: China (Hangzhou), China (Shanghai), China (Beijing) e China (Zhangjiakou). Para utilizar esse recurso, crie uma instância do modelo TimeSeries em uma dessas regiões. Para mais informações, consulte Create an instance for the TimeSeries model.
-
Se você crie uma tabela de mapeamento com Enable Analytical Store ativado, ao exclua o analytical store, será necessário exclua a tabela de mapeamento ao mesmo tempo. Caso contrário, a exclusão do analytical store falhará.
-
-
Clique em Generate SQL Statement. O sistema gera automaticamente a instrução SQL para crie a tabela de mapeamento.
Após especifique os identificadores de série temporal personalizados, ao crie uma tabela de mapeamento SQL, defina os identificadores de série temporal personalizados e os campos de dados personalizados usados como colunas de chave primária da tabela de série temporal como colunas de chave primária da tabela de mapeamento SQL.
Clique em Execute SQL Statement(F8).
-
Execute a instrução SELECT para consultar dados. Para mais informações, consulte Query data.
Insira a instrução SQL no editor SQL do console e clique em Execute SQL Statement(F8).
A instrução SQL de exemplo a seguir demonstra como consultar informações das séries temporais em que o valor de cpu_usage excede 90,0 em uma tabela de série temporal por meio da tabela de mapeamento chamada
cpu::ts1:SELECT `host`, `processor`, `_tags` , `_time` FROM `cpu::ts1` WHERE cpu_usage > 90.0;
-
Usar os SDK do Tablestore
É possível especifique identificadores de série temporal personalizados usando o Tablestore SDK for Java V5.17.1 ou posterior, a versão mais recente do Tablestore SDK for Go ou o Tablestore SDK for Python V6.1.0 ou posterior. Ao especifique identificadores de série temporal personalizados, certifique-se de usar a versão correta do SDK do Tablestore.
Ao gravar dados de série temporal com base em identificadores personalizados, se não for necessário adicionar um nome de métrica ou source de dados, deixe o campo correspondente vazio.
Neste exemplo, o Tablestore SDK for Java é utilizado.
-
Ao crie uma tabela de série temporal, especifique os identificadores de série temporal personalizados.
O código de exemplo a seguir demonstra como crie uma tabela de série temporal sem analytical store e especifique identificadores de série temporal personalizados:
private static void createTimeseriesTable(TimeseriesClient client) { TimeseriesTableMeta timeseriesTableMeta = new TimeseriesTableMeta(""); timeseriesTableMeta.setTimeseriesTableOptions(new TimeseriesTableOptions(-1)); // Specify custom time series identifiers. The host field stores the metric name, the processor field stores the data source, and the _tags field stores the tags. timeseriesTableMeta.addTimeseriesKey("host"); timeseriesTableMeta.addTimeseriesKey("processor"); timeseriesTableMeta.addTimeseriesKey("_tags"); CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(timeseriesTableMeta); request.setEnableAnalyticalStore(false); client.createTimeseriesTable(request); } -
Grave dados na tabela de série temporal com base nos identificadores de série temporal personalizados.
Ao gravar dados na tabela de série temporal, os campos dos identificadores de série temporal personalizados no cliente são passados ao servidor do Tablestore como pares de chave-valor. O servidor primeiro extrai o nome da métrica e a source de dados dos pares de chave-valor, e então utiliza os pares restantes como tags da série temporal.
ImportanteSe os campos dos identificadores de série temporal personalizados não incluírem o campo _tags ao crie a tabela de série temporal, mas ainda restarem pares de chave-valor após exclua o nome da métrica, a source de dados e os campos personalizados durante a gravação dos dados de série temporal, a gravação falhará.
O código de exemplo a seguir demonstra como gravar três linhas de dados de série temporal em uma tabela de série temporal com base nos identificadores de série temporal personalizados.
private static void putTimeseriesData(TimeseriesClient client) { long timeInUs = System.currentTimeMillis() * 1000; List rows = new ArrayList(); for (int i = 0; i < 3; i++) { Map tags = new HashMap<>(); // Add fields of the custom time series identifiers. tags.put("host", "host_" + i); tags.put("processor", String.valueOf(i)); // Key-value pairs that do not correspond to custom time series identifiers are used as tags of the time series. tags.put("region", "hangzhou"); TimeseriesKey timeseriesKey = new TimeseriesKey("", "", tags); TimeseriesRow row = new TimeseriesRow(timeseriesKey, timeInUs); row.addField("cpu_usage", ColumnValue.fromDouble(10.0)); row.addField("cpu_sys", ColumnValue.fromDouble(5.0)); rows.add(row); } String tableName = ""; PutTimeseriesDataRequest putTimeseriesDataRequest = new PutTimeseriesDataRequest(tableName); putTimeseriesDataRequest.setRows(rows); client.putTimeseriesData(putTimeseriesDataRequest); }A tabela a seguir apresenta os dados de série temporal na tabela após a gravação bem-sucedida.
host
processor
_tags
_time
cpu_usage
cpu_sys
host_0
0
["region=hangzhou"]
1712476524000000
10,0
5,0
host_1
1
["region=hangzhou"]
1712476524000000
10,0
5,0
host_2
2
["region=hangzhou"]
1712476524000000
10,0
5,0
-
Execute instruções SQL para ler dados da tabela de série temporal.
-
Crie uma tabela de mapeamento SQL para a tabela de série temporal. Para mais informações, consulte Create mapping tables in the multi-value model for time series tables.
Após especifique os identificadores de série temporal personalizados, ao crie uma tabela de mapeamento SQL, defina os campos dos identificadores de série temporal personalizados e o campo de timestamp como colunas de chave primária da tabela de mapeamento SQL.
Configurações de exemplo:
CREATE TABLE `cpu::ts1` ( `host` VARCHAR(1024), `processor` VARCHAR(1024), `_tags` VARCHAR(1024), `_time` BIGINT(20), `cpu_usage` DOUBLE, `cpu_sys` DOUBLE, PRIMARY KEY(`host`,`processor`,`_tags`,`_time`) ); -
Execute a instrução SELECT para consultar dados. Para mais informações, consulte Query data.
A instrução SQL de exemplo a seguir demonstra como consultar informações das séries temporais em que o valor de cpu_usage excede 90,0 em uma tabela de série temporal por meio da tabela de mapeamento chamada
cpu::ts1:SELECT `host`, `processor`, `_tags` , `_time` FROM `cpu::ts1` WHERE cpu_usage > 90.0;
-
Especifique campos de dados personalizados como colunas de chave primária
Em uma tabela de série temporal, cada linha de dados é identificada de forma exclusiva pelos identificadores de série temporal e pelo timestamp. Isso significa que duas linhas de dados de série temporal não podem ter os mesmos identificadores de série temporal e timestamp.
Para armazenar múltiplas linhas de dados de série temporal com os mesmos identificadores de série temporal e timestamp, especifique campos de dados personalizados como colunas de chave primária da tabela de série temporal. Por exemplo, ao monitorar a utilização de CPU de servidores, você precisa dos identificadores de série temporal para localizar cada servidor, mas cada servidor possui múltiplos núcleos. Nesse caso, especifique o id do núcleo como coluna de chave primária.
Primeiro, especifique os campos de dados personalizados como colunas de chave primária ao crie a tabela de série temporal. Em seguida, informe os valores dos campos de dados definidos como colunas de chave primária ao gravar dados na tabela. O processo é o seguinte:
Usar o console do Tablestore
Ao crie uma tabela de série temporal, especifique os campos de dados personalizados como colunas de chave primária da tabela. Para mais informações, consulte Gerencie time series tables.
-
Grave dados de série temporal na tabela.
Ao gravar dados em uma tabela de série temporal, os campos de dados definidos como colunas de chave primária não podem ficar vazios. Para armazenar múltiplas linhas de dados de série temporal com os mesmos identificadores e timestamp, especifique campos de dados personalizados como colunas de chave primária. Para mais informações, consulte Write time series data.
-
Leia dados da tabela de série temporal.
-
Crie uma tabela de mapeamento SQL para a tabela de série temporal. Para mais informações, consulte Create mapping tables in the multi-value model for time series tables.
Na página Manage Time Series Table, clique em na aba Query by Executing SQL Statement.
No lado esquerdo da aba Query by Executing SQL Statement, clique em no ícone + ao lado do nome da instância do modelo TimeSeries.
-
Na caixa de diálogo Create Mapping Table, configure os parâmetros. A tabela a seguir descreve os parâmetros.
Parâmetro
Descrição
Table Name
O nome da tabela de série temporal.
Mapping Table Name
O nome da tabela de mapeamento.
NotaAo crie uma tabela de mapeamento SQL para uma tabela de série temporal, o sistema adiciona automaticamente o prefixo
time series table name::ao nome da tabela de mapeamento.Enable Analytical Store
O recurso de analytical store é utilizado em cenários nos quais você deseja armazenar dados de série temporal por longos períodos e analisá-los. Com o analytical store, é possível armazenar dados de série temporal com custos reduzidos, além de consultar e analisar os dados de forma eficiente. Para mais informações, consulte Analytical store.
Por padrão, Enable Analytical Store está desativado. Configure o parâmetro de acordo com suas necessidades de negócio.
-
Se não desejar utilizar um analytical store para armazenar e analisar dados de série temporal, mantenha a configuração padrão do parâmetro Enable Analytical Store.
-
Se desejar armazenar dados de série temporal com custos reduzidos ou consultar e analisar dados de série temporal de forma eficiente, certifique-se de que um analytical store foi criado e que Enable Analytical Store está ativado.
Importante-
O recurso de analytical store está disponível nas seguintes regiões: China (Hangzhou), China (Shanghai), China (Beijing) e China (Zhangjiakou). Para utilizar esse recurso, crie uma instância do modelo TimeSeries em uma dessas regiões. Para mais informações, consulte Create an instance for the TimeSeries model.
-
Se você crie uma tabela de mapeamento com Enable Analytical Store ativado, ao exclua o analytical store, será necessário exclua a tabela de mapeamento ao mesmo tempo. Caso contrário, a exclusão do analytical store falhará.
-
-
Clique em Generate SQL Statement. O sistema gera automaticamente a instrução SQL para crie a tabela de mapeamento.
Após especifique campos de dados personalizados como colunas de chave primária de uma tabela de série temporal, ao crie uma tabela de mapeamento SQL, defina os identificadores de série temporal e os campos de dados personalizados usados como colunas de chave primária da tabela de série temporal como colunas de chave primária da tabela de mapeamento SQL.
Clique em Execute SQL Statement(F8).
-
Execute a instrução SELECT para consultar dados. Para mais informações, consulte Query data.
Insira a instrução SQL no editor SQL do console e clique em Execute SQL Statement(F8).
A instrução SQL de exemplo a seguir demonstra como consultar informações das séries temporais em que o valor de cpu_usage excede 90,0 em uma tabela de série temporal por meio da tabela de mapeamento chamada
cpu::ts1:SELECT `host`, `processor`, `_tags` , `_time` FROM `cpu::ts1` WHERE cpu_usage > 90.0;
-
Usar os SDK do Tablestore
É possível especifique campos de dados personalizados como colunas de chave primária usando o Tablestore SDK for Java V5.17.1 ou posterior, a versão mais recente do Tablestore SDK for Go ou o Tablestore SDK for Python V6.1.0 ou posterior. Ao especifique campos de dados personalizados como colunas de chave primária, certifique-se de usar a versão correta do SDK do Tablestore.
Neste exemplo, o Tablestore SDK for Java é utilizado.
-
Ao crie uma tabela de série temporal, especifique os campos de dados personalizados como colunas de chave primária da tabela.
O código de exemplo a seguir demonstra como crie uma tabela de série temporal sem analytical store e especifique campos de dados personalizados como colunas de chave primária da tabela:
private static void createTimeseriesTable(TimeseriesClient client) { TimeseriesTableMeta timeseriesTableMeta = new TimeseriesTableMeta(""); timeseriesTableMeta.setTimeseriesTableOptions(new TimeseriesTableOptions(-1)); // Specify custom data fields as the primary key columns. timeseriesTableMeta.addFieldPrimaryKey("processor", PrimaryKeyType.INTEGER); CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(timeseriesTableMeta); request.setEnableAnalyticalStore(false); client.createTimeseriesTable(request); } -
Grave dados de série temporal na tabela.
Ao gravar dados em uma tabela de série temporal, os campos de dados definidos como colunas de chave primária não podem ficar vazios. Para armazenar múltiplas linhas de dados de série temporal com os mesmos identificadores e timestamp, especifique campos de dados personalizados como colunas de chave primária.
O código de exemplo a seguir demonstra como gravar três linhas de dados de série temporal com os mesmos identificadores e timestamp em uma tabela de série temporal:
private static void putTimeseriesData(TimeseriesClient client) { long timeInUs = System.currentTimeMillis() * 1000; List rows = new ArrayList(); for (int i = 0; i < 3; i++) { Map tags = new HashMap<>(); tags.put("region", "hangzhou"); TimeseriesKey timeseriesKey = new TimeseriesKey("cpu", "host_" + i, tags); TimeseriesRow row = new TimeseriesRow(timeseriesKey, timeInUs); // The data fields that are specified as the primary key columns cannot be left empty. row.addField("processor", ColumnValue.fromLong(i)); row.addField("cpu_usage", ColumnValue.fromDouble(10.0)); row.addField("cpu_sys", ColumnValue.fromDouble(5.0)); rows.add(row); } String tableName = "<TIMESERIES_TABLE_NAME>"; PutTimeseriesDataRequest putTimeseriesDataRequest = new PutTimeseriesDataRequest(tableName); putTimeseriesDataRequest.setRows(rows); client.putTimeseriesData(putTimeseriesDataRequest); }A tabela a seguir apresenta os dados de série temporal na tabela após a gravação bem-sucedida.
_m_name
_data_source
_tags
_time
processor
cpu_usage
cpu_sys
cpu
host_0
["region=hangzhou"]
1712476524000000
0
10,0
5,0
cpu
host_1
["region=hangzhou"]
1712476524000000
1
10,0
5,0
cpu
host_2
["region=hangzhou"]
1712476524000000
2
10,0
5,0
-
Execute instruções SQL para ler dados da tabela de série temporal.
-
Crie uma tabela de mapeamento SQL para a tabela de série temporal. Para mais informações, consulte Create mapping tables in the multi-value model for time series tables.
Após especifique campos de dados personalizados como colunas de chave primária de uma tabela de série temporal, ao crie uma tabela de mapeamento SQL, defina os identificadores de série temporal e os campos de dados personalizados usados como colunas de chave primária da tabela de série temporal como colunas de chave primária da tabela de mapeamento SQL.
Configurações de exemplo:
CREATE TABLE `cpu::ts1` ( `_m_name` VARCHAR(1024), `_data_source` VARCHAR(1024), `_tags` VARCHAR(1024), `_time` BIGINT(20), `processor` BIGINT, `cpu_usage` DOUBLE, `cpu_sys` DOUBLE, PRIMARY KEY(`_m_name`,`_data_source`,`_tags`,`_time`,`processor`) ); -
Execute a instrução SELECT para consultar dados. Para mais informações, consulte Query data.
A instrução SQL de exemplo a seguir demonstra como consultar informações das séries temporais em que o valor de cpu_usage excede 90,0 em uma tabela de série temporal por meio da tabela de mapeamento chamada
cpu::ts1:SELECT `_m_name`, `_data_source`, `_tags` , `_time`, `processor` FROM `cpu::ts1` WHERE cpu_usage > 90.0;
-