As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Como trabalhar com linhas no Amazon Keyspaces
Esta seção fornece detalhes sobre como trabalhar com linhas no Amazon Keyspaces (para Apache Cassandra). As tabelas são as principais estruturas de dados no Amazon Keyspaces e os dados nas tabelas são organizados em colunas e linhas.
Como calcular o tamanho da linha no Amazon Keyspaces
O Amazon Keyspaces fornece armazenamento totalmente gerenciado que oferece desempenho de leitura e gravação de milissegundos de um dígito e armazena dados de forma durável em várias zonas de disponibilidade. AWS O Amazon Keyspaces anexa metadados a todas as linhas e colunas de chave primária para oferecer suporte ao acesso eficiente aos dados e à alta disponibilidade.
Esta seção fornece detalhes sobre como estimar o tamanho codificado das linhas no Amazon Keyspaces. O tamanho codificado das linhas é usado ao calcular o uso da fatura e da cota. Você também deve usar o tamanho codificado das linhas ao calcular os requisitos de capacidade de throughput provisionada para tabelas. Para calcular o tamanho codificado das linhas no Amazon Keyspaces, é possível usar as diretrizes a seguir.
Para colunas regulares, que não são chaves primárias, colunas de clustering ou colunas
STATIC
, use o tamanho bruto dos dados da célula com base no tipo de dados e adicione os metadados necessários. Para obter mais informações sobre os tipos de dados suportados no Amazon Keyspaces, consulte Tipos de dados. Algumas diferenças importantes na forma como o Amazon Keyspaces armazena valores de tipos de dados e metadados estão listadas abaixo.O espaço necessário para cada nome de coluna é armazenado usando um identificador de coluna e adicionado a cada valor de dados armazenado na coluna. O valor de armazenamento do identificador da coluna depende do número geral de colunas em sua tabela:
1 a 62 colunas: 1 byte
63 a 124 colunas: 2 bytes
125 a 186 colunas: 3 bytes
Para cada 62 colunas adicionais, adicione 1 byte. Observe que, no Amazon Keyspaces, até 225 colunas regulares podem ser modificadas com uma única instrução
INSERT
ouUPDATE
. Para ter mais informações, consulte Service Quotas do Amazon Keyspaces.As chaves de partição podem conter até 2.048 bytes de dados. Cada coluna de chave na chave de partição requer até 3 bytes de metadados. Ao calcular o tamanho da sua linha, você deve assumir que cada coluna de chave de partição usa os 3 bytes completos de metadados.
As colunas de clustering podem armazenar até 850 bytes de dados. Além do tamanho do valor dos dados, cada coluna de clustering exige até 20% do tamanho do valor dos dados para metadados. Ao calcular o tamanho da sua linha, você deve adicionar 1 byte de metadados para cada 5 bytes do valor dos dados da coluna de clustering.
O Amazon Keyspaces armazena o valor dos dados de cada chave de partição e coluna de chave de clustering duas vezes. A sobrecarga extra é usada para consultas eficientes e indexação integrada.
Os tipos de dados string Cassandra
ASCII
,TEXT
eVARCHAR
são todos armazenados no Amazon Keyspaces usando Unicode com codificação binária UTF-8. O tamanho de uma string no Amazon Keyspaces é igual ao número de bytes codificados em UTF-8.Os tipos de dados Cassandra
INT
,BIGINT
,SMALLINT
eTINYINT
são armazenados no Amazon Keyspaces como valores de dados com comprimento variável, com até 38 dígitos significativos. Zeros iniciais e finais são cortados. O tamanho de qualquer um desses tipos de dados é de aproximadamente 1 byte por dois dígitos significativos + 1 byte.Um
BLOB
no Amazon Keyspaces é armazenado com o comprimento bruto do byte do valor.O tamanho de um valor
Null
ou valorBoolean
é de 1 byte.Uma coluna que armazena tipos de dados de coleção como
LIST
ouMAP
exige 3 bytes de metadados, independentemente de seu conteúdo. O tamanho de umLIST
ouMAP
é (id da coluna) + soma (tamanho dos elementos aninhados) + (3 bytes). O tamanho de umLIST
ouMAP
vazio é (id da coluna) + (3 bytes). Cada elemento individualLIST
ouMAP
também exige 1 byte de metadados.Os dados da coluna
STATIC
não contam para o tamanho máximo da linha de 1 MB. Para calcular o tamanho dos dados das colunas estáticas, consulte Como calcular o tamanho estático da coluna por partição lógica no Amazon Keyspaces.Os registros de data/hora do lado do cliente são armazenados para cada coluna em cada linha quando o atributo é ativado. Esses carimbos de data/hora ocupam aproximadamente 20 a 40 bytes (dependendo dos seus dados) e contribuem para o custo de armazenamento e throughput da linha. Para ter mais informações, consulte Como trabalhar com carimbos de data/hora do lado do cliente no Amazon Keyspaces.
Adicione 100 bytes ao tamanho de cada linha para os metadados da linha.
O tamanho total de uma linha de dados codificada é baseado na seguinte fórmula:
partition key columns + clustering columns + regular columns + row metadata = total encoded size of row
Importante
Todos os metadados da coluna, por exemplo, ids de coluna, metadados de chave de partição, metadados de colunas de agrupamento, bem como registros de data/hora do lado do cliente e metadados de linha, contam para o tamanho máximo de linha de 1 MB.
Considere o exemplo a seguir de uma tabela em que todas as colunas são do tipo inteiro. A tabela tem duas colunas de chave de partição, duas colunas de clustering e uma coluna regular. Como essa tabela tem cinco colunas, o espaço necessário para o identificador do nome da coluna é de 1 byte.
CREATE TABLE mykeyspace.mytable(pk_col1 int, pk_col2 int, ck_col1 int, ck_col2 int, reg_col1 int, primary key((pk_col1, pk_col2),ck_col1, ck_col2));
Neste exemplo, calculamos o tamanho dos dados quando escrevemos uma linha na tabela, conforme mostrado na instrução a seguir:
INSERT INTO mykeyspace.mytable (pk_col1, pk_col2, ck_col1, ck_col2, reg_col1) values(1,2,3,4,5);
Para estimar o total de bytes exigidos por essa operação de gravação, você pode usar as etapas a seguir.
Calcule o tamanho de uma coluna de chave de partição adicionando os bytes do tipo de dados armazenado na coluna e os bytes de metadados. Repita isso para todas as colunas da chave de partição.
Calcule o tamanho da primeira coluna da chave de partição (pk_col1):
(2 bytes for the integer data type) x 2 + 1 byte for the column id + 3 bytes for partition key metadata = 8 bytes
Calcule o tamanho da segunda coluna da chave de partição (pk_col2):
(2 bytes for the integer data type) x 2 + 1 byte for the column id + 3 bytes for partition key metadata = 8 bytes
Adicione as duas colunas para obter o tamanho total estimado das colunas da chave de partição:
8 bytes + 8 bytes = 16 bytes for the partition key columns
Calcule o tamanho de uma coluna de clustering adicionando os bytes do tipo de dados armazenado na coluna e os bytes de metadados. Repita isso para todas as colunas de clustering.
Calcule o tamanho da primeira coluna de clustering (ck_col1):
(2 bytes for the integer data type) x 2 + 20% of the data value (2 bytes) for clustering column metadata + 1 byte for the column id = 6 bytes
Calcule o tamanho da segunda coluna de clustering (ck_col2):
(2 bytes for the integer data type) x 2 + 20% of the data value (2 bytes) for clustering column metadata + 1 byte for the column id = 6 bytes
Adicione as duas colunas para obter o tamanho total estimado das colunas de clustering:
6 bytes + 6 bytes = 12 bytes for the clustering columns
Adicione o tamanho das colunas regulares. Neste exemplo, temos apenas uma coluna que armazena um número inteiro de um único dígito, o que requer 2 bytes com 1 byte para o id da coluna.
Por fim, para obter o tamanho total da linha codificada, some os bytes para todas as colunas e adicione os 100 bytes adicionais para os metadados da linha:
16 bytes for the partition key columns + 12 bytes for clustering columns + 3 bytes for the regular column + 100 bytes for row metadata = 131 bytes.
Para saber como monitorar recursos sem servidor com a Amazon CloudWatch, consulte. Monitorando o Amazon Keyspaces com a Amazon CloudWatch