Estatísticas da tabela

O Bigtable fornece estatísticas de tabela (metadados sobre uma tabela) que fornecem informações resumidas sobre a tabela, como o número de linhas ou o número médio de células por coluna.

Neste documento, descrevemos as estatísticas da tabela e explicamos como obtê-las por meio da Google Cloud CLI. Antes de ler esta página, você precisa entender o modelo de armazenamento do Bigtable e conhecer as práticas recomendadas de design de esquemas e a coleta de lixo.

As estatísticas da tabela fornecem observabilidade com relação a uma tabela do Bigtable. Elas podem ser úteis no caso de soluções para problemas de desempenho ou armazenamento ou ao determinar a origem dos custos de armazenamento. Também podem ajudar a determinar se você está armazenando mais dados do que o necessário.

Precisão esperada

Quando você recupera estatísticas de uma tabela, os dados recebidos são aproximados. As estatísticas da tabela refletem o estado dela em um dos clusters da instância de acordo com a compactação mais recente.

Um conjunto completo de estatísticas da tabela só estará disponível após a compactação inicial, que geralmente ocorre cerca de uma semana após a criação da tabela. As estatísticas da tabela são precisas de acordo com a compactação mais recente, que pode ser de até uma semana atrás.

Campos de estatísticas da tabela

Uma solicitação das estatísticas de uma tabela retorna os campos a seguir. Veja detalhes e exemplos na próxima seção.

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 ver detalhes, consulte Contagem de linhas.
Número médio de colunas por linha average_columns_per_row O número médio de colunas em cada linha da tabela inteira. Para ver mais 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 mais detalhes, consulte 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. Veja mais detalhes em Dados lógicos em bytes.

As estatísticas da tabela também incluem os seguintes campos para cada grupo de colunas na tabela.

Campo de estatísticas do grupo 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 no grupo de colunas. 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 de células em cada coluna, com base na média de todas as linhas que têm colunas no grupo de colunas. Para ver detalhes e um exemplo, consulte Número médio de células por coluna.
Dados lógicos em bytes logical_data_bytes Espaço total ocupado pelo grupo de colunas. Para ver mais detalhes, consulte Dados lógicos em bytes.

Detalhes do campo de estatísticas da tabela

Número de linhas

A contagem de linhas é o número de linhas na tabela. Cada linha é identificada por uma 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.

Como exemplo, considere a tabela a seguir. A primeira linha tem três colunas, e a segunda tem duas.

Chave de linha Grupo de colunas family-A Grupo de colunas family-B
Chave de linha 1 family-A:qualifier-W family-A:qualifier-X family-B:qualifier-Y
Chave de linha 2 family-A:qualifier-W family-B:qualifier-Z

A tabela tem cinco colunas e duas linhas, portanto, o número médio de colunas por linha é 2.5.

Essas estatísticas indicam de maneira geral se a tabela é alta e estreita (algumas colunas por linha) ou curta e larga (muitas colunas em cada linha).

Número médio de células por coluna

Para saber o número médio de células por coluna em uma tabela, o Bigtable usa o número total de células armazenadas nela e o divide pelo número de colunas.

Dependendo do design do esquema e das políticas de coleta de lixo, a tabela pode ter várias células em uma coluna ou apenas uma. O número de células que podem ser armazenadas está vinculado aos limites de tamanho de dados descritos na página "Cotas e limites" em Tamanho dos dados nas tabelas.

Se esse número for maior que o esperado, examine as regras de coleta de lixo para ver se você está retendo mais células do que o necessário. Você também pode se perguntar se os padrões de esquema e gravação precisam ser ajustados.

Dados lógicos em bytes (tabela)

Esse valor representa o número aproximado de bytes que seriam necessários para ler toda a tabela. Essas estatísticas da tabela dão uma ideia de quantos bytes estão armazenados nela. Saber os dados lógicos em bytes pode ajudar você a entender o impacto da compactação na tabela. Por exemplo, se o tamanho da tabela relatado no Cloud Monitoring é igual ou maior que os dados lógicos em bytes da tabela, é possível que você esteja armazenando seus dados em um formato que não seja compactado com facilidade.

Detalhes do campo de estatísticas do grupo de colunas

As estatísticas de uma tabela incluem os campos a seguir para cada grupo de colunas nela.

Número médio de colunas por linha

Esse número é calculado pela divisão do número de colunas no grupo de colunas pelo número de linhas na tabela.

Como exemplo, considere a tabela a seguir. A tabela tem três linhas com colunas nos grupos de colunas family-A e family-B.

Chave de linha Grupo de colunas family-A Grupo de colunas family-B
Chave de linha 1 family-A:qualifier-W family-A:qualifier-X family-B:qualifier-Y
Chave de linha 2 family-A:qualifier-W
Chave de linha 3 family-A:qualifier-W family-A:qualifier-X family-B:qualifier-Y family-B:qualifier-Z

O grupo de colunas family-A tem um total de cinco colunas na tabela. Dividido por três linhas, isso significa que o número médio de células por coluna de family-A é 1.67 (arredondado aqui para duas casas decimais).

O grupo de colunas family-B tem um total de três colunas na tabela. Divido por três linhas, o número médio de colunas por linha de family-A é 1.

Número médio de células por coluna

Para determinar o número médio de células por coluna em um grupo de colunas, o Bigtable divide a contagem de todas as células nele em todas as linhas da tabela pelo número de linhas na tabela.

Por exemplo, considere as linhas a seguir no grupo de colunas family-D.

Chave de linha Grupo de colunas family-D
Chave de linha 1 family-D:qualifier-W (3 células) family-D:qualifier-X (uma célula)
Chave de linha 2 family-D:qualifier-X (10 células)
Chave de linha 3 family-D:qualifier-W (7 células) family-D:qualifier-Y (6 células)

A contagem de células no grupo de colunas é 3 + 1 + 10 + 7 + 6 = 27. Esse valor dividido por 3 (o número de linhas) indica que o grupo de colunas family-D tem uma média de células por coluna de 9.

Dados lógicos em bytes (grupo de colunas)

Os dados lógicos em bytes refletem o espaço ocupado pelo grupo de colunas. Esse valor é aproximadamente o número de bytes que você precisa para ler todos os dados no grupo de colunas no momento em que as estatísticas da tabela são retornadas.

Exemplo usando a CLI gcloud

Para acessar as estatísticas de uma tabela chamada sample-table, use o comando bigtable instances table describe:

gcloud bigtable instances tables describe TABLE_ID \
    --instance=INSTANCE_ID --view stats

Substitua:

  • TABLE_ID: identificador permanente da tabela;
  • INSTANCE_ID: identificador permanente da instância

O resultado será assim:

  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

A seguir