O Tablestore cobra pelo armazenamento de dados por hora, com base no volume médio de dados da sua instância em cada hora.
Para obter as informações de preços mais recentes, consulte a página de preços do Tablestore.
As seções a seguir explicam como calcular o volume de dados de uma linha e de uma tabela.
Calcular o volume de dados de uma linha
Cada linha ocupa um espaço de armazenamento determinado por suas colunas de chave primária e colunas de atributo:
Row data volume = Data volume of primary key columns + Data volume of all attribute columns
Volume de dados das colunas de chave primária = Soma dos comprimentos dos nomes das colunas de chave primária + Soma dos tamanhos dos valores das colunas de chave primária
O volume de dados das colunas de atributo depende das configurações de MaxVersions e Time to Live (TTL). Consulte os exemplos abaixo.
Tamanhos de valores por tipo de dado
|
Tipo de dado |
Tamanho em bytes |
|
String |
O número de bytes ocupados pela string UTF-8. Strings vazias têm tamanho 0. |
|
Integer |
8 |
|
Double |
8 |
|
Boolean |
1 |
|
Binary |
O número de bytes ocupados pelos dados binários. |
Dica: Prefira nomes curtos para as colunas de atributo. Os nomes das colunas são contabilizados no faturamento de armazenamento — um nome de 4 caracteres comoNamecusta menos do que um nome de 12 caracteres comoCustomerName.
Exemplo: cálculo do volume de dados de uma linha
Considere uma tabela com uma coluna de chave primária chamada ID do tipo Integer. Todas as demais colunas são colunas de atributo.
|
ID |
Name |
Length |
Comments |
|
1 |
timestamp=1466676354000,value='zhangsan' |
timestamp=1466676354000,value=20 |
timestamp=1466676354000,value=String (100 bytes) timestamp=1466679954000,value=String (150 bytes) |
A coluna Comments possui duas versões armazenadas. O cálculo varia conforme as configurações de MaxVersions e TTL.
Cenário 1: MaxVersions = 2, TTL = 2592000
Quando múltiplas versões estão ativas (MaxVersions > 1) ou o TTL está definido (TTL > -1), cada número de versão é armazenado como um timestamp de 8 bytes.
-
Volume de dados de uma única coluna de atributo =
(column name length + 8) × number of versions + sum of all version value sizesnullEm cenários com múltiplas versões (isto é, Max versions > 1) ou com TTL ativo (isto é, TTL > -1), cada número de versão é um timestamp de 8 bytes.
O volume de dados desta linha é 10 + 20 + 22 + 282 = 334 bytes:
Coluna de chave primária (ID):
len('ID') + len(1) = 10 bytesColuna de atributo Name:
(len('Name') + 8) × 1 + len('zhangsan') = 20 bytesColuna de atributo Length:
(len('Length') + 8) × 1 + len(20) = 22 bytesColuna de atributo Comments (2 versões):
(len('Comments') + 8) × 2 + 100 + 150 = 282 bytes
-
Cenário 2: MaxVersions = 1, TTL = -1
Quando MaxVersions = 1 e TTL = -1 (TTL desativado), os números de versão não ocupam bytes.
Volume de dados da coluna de atributo =
column name length + column value sizenullIn scenarios where a single version is used (Max versions = 1) and TTL is not used (TTL = -1), the version number does not occupy any bytes.
Although the Comments column has two versions, only the latest version counts toward data volume because MaxVersions is set to 1.
O volume de dados desta linha é 10 + 12 + 14 + 158 = 194 bytes:
Coluna de chave primária (ID):
len('ID') + len(1) = 10 bytesColuna de atributo Name:
len('Name') + len('zhangsan') = 12 bytesColuna de atributo Length:
len('Length') + len(20) = 14 bytesColuna de atributo Comments (somente a versão mais recente):
len('Comments') + 150 = 158 bytes
Calcular o volume de dados de uma tabela
O volume de dados de uma tabela é a soma dos volumes de dados de todas as suas linhas. Considere uma tabela em que ID é a coluna de chave primária, todas as demais colunas são colunas de atributo, MaxVersions é 2 e TTL é -1.

Linha com ID=1: 292 bytes — 10 bytes para a chave primária + 282 bytes para a coluna Comments (duas versões).
Linha com ID=2: 248 bytes — 10 bytes para a chave primária + 216 bytes para a coluna Comments (uma versão) + 22 bytes para a coluna Length (uma versão).
O volume total de dados da tabela é 292 + 248 = 540 bytes. Se o volume de dados permanecer constante durante toda a hora, a taxa de armazenamento será calculada com base em 540 bytes.
O Tablestore não impõe limite de armazenamento por tabela — você paga apenas pelo que utiliza.
O Tablestore remove de forma assíncrona os dados expirados e as versões que excedem o MaxVersions de cada partição. Após a limpeza, o Tablestore recalcula o volume de dados daquela partição. Esse processo geralmente termina em até 24 horas, dependendo do volume total de dados. Os dados gravados após uma limpeza entram no cálculo do volume de dados do próximo ciclo de limpeza.
Período estatístico do volume de armazenamento
A medição do armazenamento não é instantânea. As estatísticas costumam ser atualizadas em até 24 horas, portanto há um atraso entre as alterações nos dados e sua reflexão nos relatórios de armazenamento.
Por que o atraso ocorre
O Tablestore utiliza uma arquitetura de Log-Structured Merge-tree (LSM tree). Os novos dados são gravados primeiro na memória e, em seguida, descarregados em arquivos menores em disco quando determinados limiares são atingidos. Atualizações e exclusões de uma mesma linha podem estar distribuídas em múltiplos arquivos. Somar os tamanhos brutos dos arquivos geraria uma contagem excessiva devido aos dados redundantes.
Para garantir uma medição precisa, o Tablestore aguarda a compactação — um processo periódico que mescla arquivos e remove dados redundantes — e então recalcula o volume de dados com base nos tamanhos dos arquivos mesclados.
Por isso, o tamanho reportado da tabela pode não mudar imediatamente após uma gravação, atualização ou exclusão. O período estatístico do volume de dados corresponde ao ciclo de compactação.