Estatísticas do Datastore

O Firestore no modo Datastore mantém estatísticas sobre os dados armazenados referentes a um aplicativo, como o número de entidades existentes de um determinado tipo ou a quantidade de espaço usado por valores de propriedade de um tipo específico. Confira essas estatísticas no console do Google Cloud. Abra a página Painel ou execute uma consulta GQL na forma de SELECT * FROM __Stat_Kind__ na página Entidades.

Esses valores também podem ser acessados de modo programático no aplicativo pela consulta de entidades especialmente nomeadas usando a API do Datastore. Cada estatística é acessível como uma entidade cujo nome do tipo começa e termina com dois sublinhados. Por exemplo, cada aplicativo tem exatamente uma entidade do tipo __Stat_Total__ que representa estatísticas sobre todas as entidades no modo Datastore no total. Cada entidade de estatística tem as seguintes propriedades:

  • count, o número de itens considerados pela estatística (um número inteiro longo)
  • bytes, o tamanho total dos itens para essa estatística (um número inteiro longo)
  • timestamp, a hora da atualização mais recente na estatística (um valor de data e hora)

Alguns tipos de estatística também têm propriedades extras, listadas abaixo.

Quando o sistema de estatísticas cria novas entidades, as antigas não são excluídas imediatamente. A melhor maneira de conseguir uma visualização consistente das estatísticas é consultar a entidade de estatística com o timestamp mais recente e usar esse valor como filtro ao buscar outras entidades de estatística.

As entidades de estatística são incluídas nos valores de estatística calculados. Elas ocupam um espaço relativo ao número de tipos únicos e nomes de propriedades usados pelo aplicativo.

O sistema de estatísticas também criará estatísticas específicas para cada namespace. Porém, elas só serão criadas se o aplicativo usar namespaces. Essas estatísticas específicas encontram-se no namespace ao qual se referem. Os nomes de tipo das estatísticas específicas do namespace recebem o prefixo __Stat_Ns_ e têm o mesmo sufixo correspondente aos tipos de estatísticas do aplicativo inteiro.

Lista de estatísticas

Veja abaixo a lista completa de estatísticas disponíveis:

Estatística Tipo de entidade de estatística Descrição
todas as entidades __Stat_Total__
Entrada específica do namespace:
__Stat_Ns_Total__
Todas as entidades. Propriedades adicionais:

entity_bytes: o armazenamento na tabela de entidades medido em bytes.
builtin_index_bytes: o armazenamento em entradas de índice integrado medido em bytes.
builtin_index_count: a contagem de entradas de índice integrado.
composite_index_bytes: o armazenamento em entradas de índice composto medido em bytes.
composite_index_count: a contagem de entradas de índice composto.
todas as entidades em um namespace __Stat_Namespace__
As entidades __Stat_Namespace__ são criadas para cada namespace encontrado e são encontradas apenas no namespace de string vazia.
Todas as entidades de um namespace.

subject_namespace, o namespace representado (uma string)
entity_bytes: o armazenamento na tabela de entidades medido em bytes.
builtin_index_bytes: o armazenamento em entradas de índice integrado medido em bytes.
builtin_index_count: a contagem de entradas de índice integrado.
composite_index_bytes: o armazenamento em entradas de índice composto medido em bytes.
composite_index_count: a contagem de entradas de índice composto.
todas as entradas em índices definidos pelo aplicativo __Stat_Kind_CompositeIndex__
Entrada específica do namespace: __Stat_Ns_Kind_CompositeIndex__
Entradas na tabela do índice composto, uma entidade de estatística para cada tipo de entidade armazenada. Propriedades adicionais:

index_id, o código do índice.
kind_name, o nome do tipo representado (uma string)
entidades de um tipo __Stat_Kind__
Entrada específica do namespace:
__Stat_Ns_Kind__
As entidades de um tipo, uma entidade de estatística para cada tipo de entidade armazenado. Propriedades adicionais:

kind_name, o nome do tipo representado (uma string)
entity_bytes: o armazenamento na tabela de entidades medido em bytes.
builtin_index_bytes: o armazenamento em entradas de índice integrado medido em bytes.
builtin_index_count: a contagem de entradas de índice integrado.
composite_index_bytes: o armazenamento em entradas de índice composto medido em bytes.
composite_index_count: a contagem de entradas de índice composto.
entidades raiz de um tipo __Stat_Kind_IsRootEntity__
Entrada específica do namespace:
__Stat_Ns_Kind_IsRootEntity__
Entidades de um tipo que são entidades raiz de um grupo de entidades (sem pai ancestral), uma entidade de estatística para cada tipo de entidade armazenado. Propriedades adicionais:

kind_name, o nome do tipo representado (uma string)
entity_bytes: o armazenamento na tabela de entidades medido em bytes.
entidades não raiz de um tipo __Stat_Kind_NotRootEntity__
Entrada específica do namespace:
__Stat_Ns_Kind_NotRootEntity__
Entidades de um tipo que não são entidades raiz do grupo de entidades (com pai ancestral), uma entidade de estatística para cada tipo de entidade armazenado. Propriedades adicionais:

kind_name, o nome do tipo representado (uma string)
entity_bytes: o armazenamento na tabela de entidades medido em bytes.
propriedades de um tipo __Stat_PropertyType__
Entrada específica do namespace:
__Stat_Ns_PropertyType__
Propriedades de um tipo de valor em todas as entidades, uma entidade de estatística por tipo de valor. Propriedades adicionais:

property_type, o nome do tipo de valor (uma string)
entity_bytes: o armazenamento na tabela de entidades medido em bytes.
builtin_index_bytes: o armazenamento em entradas de índice integrado medido em bytes.
builtin_index_count: a contagem de entradas de índice integrado.
propriedades de um tipo por tipo __Stat_PropertyType_Kind__
Entrada específica do namespace:
__Stat_Ns_PropertyType_Kind__
Propriedades de um tipo de valor nas entidades de determinado tipo, uma entidade de estatística por combinação de tipo de propriedade e tipo. Propriedades adicionais:

property_type, o nome do tipo de valor (uma string)
kind_name, o nome do tipo representado (uma string)
entity_bytes: o armazenamento na tabela de entidades medido em bytes.
builtin_index_bytes: o armazenamento no índice integrado medido em bytes.
builtin_index_count: a contagem de entradas de índice integrado.
propriedades com um nome __Stat_PropertyName_Kind__
Entrada específica do namespace:
__Stat_Ns_PropertyName_Kind__
Propriedades com determinado nome nas entidades de determinado tipo, uma entidade de estatística por combinação de nome de propriedade exclusivo e tipo. Propriedades adicionais:

property_name, o nome da propriedade (uma string)
kind_name, o nome do tipo representado (uma string)
entity_bytes: o armazenamento na tabela de entidades medido em bytes.
builtin_index_bytes: o armazenamento em entradas de índice integrado medido em bytes.
builtin_index_count: a contagem de entradas de índice integrado.
propriedades de um tipo e com um nome __Stat_PropertyType_PropertyName_Kind__
Entrada específica do namespace:
__Stat_Ns_PropertyType_PropertyName_Kind__
Propriedades com um determinado nome e de um tipo de valor específico nas entidades de um certo tipo. Uma entidade de estatística por combinação de nome de propriedade, tipo de valor e tipo existente no Cloud Datastore. Propriedades adicionais:

property_type, o nome do tipo de valor (uma string)
property_name, o nome da propriedade (uma string)
kind_name, o nome do tipo representado (uma string)
entity_bytes: o armazenamento na tabela de entidades medido em bytes.
builtin_index_bytes: o armazenamento em entradas de índice integrado medido em bytes.
builtin_index_count: a contagem de entradas de índice integrado.

Algumas estatísticas se referem a tipos de valor de propriedade por nome, como strings. Veja estes nomes:

  • "Blob"
  • "BlobKey"
  • "Boolean"
  • "Category"
  • "Date/Time"
  • "Email"
  • "Float"
  • "GeoPt"
  • "IM"
  • "Integer"
  • "Key"
  • "Link"
  • "NULL"
  • "PhoneNumber"
  • "PostalAddress"
  • "Rating"
  • "ShortBlob"
  • "String"
  • "Text"
  • "User"

Ordem de descarte de entidades de estatísticas

Aplicativos com milhares de namespaces, tipos ou nomes de propriedade exigem um grande número de entidades de estatísticas. Para reduzir a sobrecarga do armazenamento e da atualização das estatísticas, os bancos de dados do Firestore no modo Datastore descartam progressivamente as entidades de estatísticas, de acordo com os pedidos abaixo.

O Firestore no modo Datastore rastreia o tamanho de entidades de estatísticas de tipo e não tipo separadamente. O tamanho de entidades de estatísticas sem tipo não afeta quando as estatísticas de tipo são descartadas.

As entidades de estatísticas de resumo __Stat_Kind_CompositeIndex__, __Stat_PropertyType__ e __Stat_Total__ nunca são descartadas.

Ordem de descarte para entidades de estatísticas de tipo

As estatísticas de entidade de tipo são descartadas na seguinte ordem:

  • estatísticas por namespace, por tipo

    • __Stat_Ns_Kind__
    • __Stat_Ns_Kind_IsRootEntity__
    • __Stat_Ns_Kind_NotRootEntity__
    • __Stat_Ns_PropertyType_Kind__
  • estatísticas por tipo

    • __Stat_Kind__
    • __Stat_Kind_IsRootEntity__
    • __Stat_Kind_NotRootEntity__
    • __Stat_PropertyType_Kind__

Ordem de descarte para entidades de estatísticas sem tipo

As estatísticas de entidades não relacionadas ao tipo são descartadas na seguinte ordem:

  • estatísticas por namespace, por tipo e por propriedade:

    • __Stat_Ns_PropertyName_Kind__
    • __Stat_Ns_PropertyType_PropertyName_Kind__
  • estatísticas por tipo e por propriedade

    • __Stat_PropertyName_Kind__
    • __Stat_PropertyType_PropertyName_Kind__
  • estatísticas por namespace

    • __Stat_Namespace__
    • __Stat_Ns_Kind_CompositeIndex__
    • __Stat_Ns_PropertyType__
    • __Stat_Ns_Total__

Ver também