Estatísticas da tabela
O Bigtable fornece estatísticas da tabela, ou seja, metadados sobre uma tabela, que lhe dão informações resumidas sobre a tabela, como o número de linhas ou o número médio de células por coluna.
Este documento descreve as estatísticas das tabelas e explica como obtê-las através da CLI do Google Cloud. Antes de ler esta página, deve compreender o modelo de armazenamento do Bigtable e estar familiarizado com as práticas recomendadas de design de esquemas e a recolha de lixo.
As estatísticas da tabela oferecem observabilidade numa tabela do Bigtable. Podem ser úteis quando está a resolver problemas de desempenho ou armazenamento, ou quando quer determinar a origem dos custos de armazenamento. Também podem ajudar a determinar se está a armazenar mais dados do que precisa.
Precisão esperada
Quando obtém estatísticas de tabelas para uma tabela, os dados que recebe são aproximados. As estatísticas de tabelas refletem o estado da sua tabela num dos clusters da sua instância a partir da compactação mais recente.
Um conjunto completo de estatísticas da tabela só está disponível após a compactação inicial, que ocorre normalmente cerca de uma semana após a criação da tabela. As estatísticas da tabela são precisas a partir da compactação mais recente, que pode ter sido há uma semana.
Campos de estatísticas da tabela
Um pedido de estatísticas de tabelas de uma tabela devolve os seguintes campos. Pode encontrar detalhes e exemplos na secção seguinte.
Campo de estatísticas da tabela | Nome da API | Descrição |
---|---|---|
Número de linhas | row_count |
O número de linhas na tabela. Para obter detalhes, consulte a secção Número de linhas. |
Número médio de colunas por linha | average_columns_per_row |
O número médio de colunas em cada linha para toda a tabela. Para ver detalhes e um exemplo, consulte Número médio de colunas por linha |
Número médio de células por coluna | average_cells_per_column |
O número médio de células armazenadas em todas as colunas em todas as linhas. Para ver detalhes, consulte o artigo Número médio de células por coluna. |
Dados lógicos em bytes | logical_data_bytes |
A quantidade de espaço que a tabela ocupa. Para ver detalhes, consulte o artigo Dados lógicos em bytes. |
As estatísticas da tabela também incluem os seguintes campos para cada família de colunas na tabela.
Campo de estatísticas da família de colunas | Nome da API | Descrição |
---|---|---|
Número médio de colunas por linha | average_columns_per_row |
O número médio de colunas por linha na família de colunas. Para ver detalhes e um exemplo, consulte o artigo Número médio de colunas por linha. |
Número médio de células por coluna | average_cells_per_column |
O número de células em cada coluna, com a média de todas as linhas que têm colunas na família de colunas. Para ver detalhes e um exemplo, consulte o artigo Número médio de células por coluna. |
Dados lógicos em bytes | logical_data_bytes |
A quantidade de espaço que a família de colunas ocupa. Para ver os detalhes, consulte o artigo Dados lógicos em bytes. |
Detalhes dos campos de estatísticas da tabela
Número de linhas
A contagem de linhas é o número de linhas na tabela. Cada linha é identificada pela respetiva chave de linha.
Número médio de colunas por linha
Para chegar ao número médio de colunas por linha de uma tabela, o Bigtable conta o número de colunas em toda a tabela e divide esse valor pelo número de linhas na tabela.
Por exemplo, considere a seguinte tabela. A primeira linha tem três colunas e a segunda linha tem duas colunas.
Chave da linha | Família de colunas family-A | Família de colunas family-B | ||
---|---|---|---|---|
chave da linha 1 | family-A:qualifier-W | family-A:qualifier-X | family-B:qualifier-Y | |
chave da linha 2 | family-A:qualifier-W | family-B:qualifier-Z |
A tabela tem cinco colunas e duas linhas, pelo que o número médio de colunas por linha é 2.5
.
Esta estatística da tabela dá-lhe uma ideia geral sobre se a tabela é alta e estreita (poucas colunas por linha) ou curta e larga (muitas colunas em cada linha).
Número médio de células por coluna
Para obter o número médio de células por coluna de uma tabela, o Bigtable usa o número total de células armazenadas na tabela e divide-o pelo número de colunas na tabela.
Consoante a estrutura do esquema e as políticas de recolha de lixo, a sua tabela pode ter várias células numa coluna ou apenas uma. O número de células que pode armazenar está limitado pelos limites de tamanho dos dados descritos na página Quotas e limites em Tamanho dos dados nas tabelas.
Se verificar que este número é superior ao esperado, examine as regras de recolha de lixo para ver se está a reter mais células do que precisa. Também pode perguntar se o esquema e os padrões de escrita devem ser ajustados.
Dados lógicos em bytes (tabela)
Este valor representa o número aproximado de bytes necessários para ler toda a tabela. Esta estatística da tabela dá-lhe uma ideia de quantos bytes estão armazenados na tabela. Conhecer os dados lógicos em bytes pode ajudar a compreender o impacto da compressão na tabela. Por exemplo, se o tamanho da tabela comunicado no Cloud Monitoring for igual ou superior aos dados lógicos em bytes da tabela, pode estar a armazenar os dados num formato que não é facilmente comprimido.
Detalhes do campo de estatísticas da família de colunas
As estatísticas da tabela para uma tabela incluem os seguintes campos para cada família de colunas na tabela.
Número médio de colunas por linha
Este número é calculado dividindo o número de colunas na família de colunas pelo número de linhas na tabela.
Por exemplo, considere a seguinte tabela. A tabela tem três linhas com colunas nas famílias de colunas family-A
e family-B
.
Chave da linha | Família de colunas family-A | Família de colunas family-B | ||
---|---|---|---|---|
chave da linha 1 | family-A:qualifier-W | family-A:qualifier-X | family-B:qualifier-Y | |
chave da linha 2 | family-A:qualifier-W | |||
chave da linha 3 | family-A:qualifier-W | family-A:qualifier-X | family-B:qualifier-Y | family-B:qualifier-Z |
A família de colunas family-A
tem um total de cinco colunas na tabela. Dividido por três linhas, isto significa que o número médio de células por coluna para
family-A
é 1.67
(arredondado aqui a duas casas decimais).
A família de colunas family-B
tem um total de três colunas na tabela. Dividido por
três linhas, o número médio de colunas por linha para family-A
é 1
.
Número médio de células por coluna
Para determinar o número médio de células por coluna de uma família de colunas, o Bigtable tem em conta todas as células na família de colunas em todas as linhas da tabela e divide-o pelo número de linhas na tabela.
Por exemplo, considere as seguintes linhas na família de colunas family-D
.
Chave da linha | Família de colunas family-D | ||
---|---|---|---|
chave da linha 1 | family-D:qualifier-W (3 células) | family-D:qualifier-X (1 célula) | |
chave da linha 2 | family-D:qualifier-X (10 células) | ||
chave da linha 3 | family-D:qualifier-W (7 células) | family-D:qualifier-Y (6 células) |
A contagem de células na família de colunas é 3 + 1 + 10 + 7 + 6 = 27. Esse valor, dividido por 3 (o número de linhas), significa que a família de colunas family-D
tem uma média de células por coluna de 9
.
Dados lógicos em bytes (família de colunas)
Os dados lógicos em bytes refletem o espaço que a família de colunas ocupa. Este valor é aproximadamente o número de bytes que tem de ler para todos os dados na família de colunas no momento em que as estatísticas da tabela foram devolvidas.
Exemplo de utilização da CLI gcloud
Para obter estatísticas da tabela para uma tabela denominada sample-table
, use o comando bigtable instances table describe
:
gcloud bigtable instances tables describe TABLE_ID \
--instance=INSTANCE_ID --view stats
Substitua o seguinte:
TABLE_ID
: o identificador permanente da tabelaINSTANCE_ID
: o identificador permanente da instância
O resultado é semelhante ao seguinte:
columnFamilies: my-family: stats: averageCellsPerColumn: 12.34 averageColumnsPerRow: 56.78 logicalDataBytes: 314159 name: projects/my-project/instances/INSTANCE_ID/tables/TABLE_ID stats: averageCellsPerColumn: 12.34 averageColumnsPerRow: 56.78 logicalDataBytes: 314159 rowCount: 271828
O que se segue?
- Monitorize os seus recursos do Bigtable.
- Use o Key Visualizer para analisar os seus padrões de utilização.