Cálculos de tamaño de almacenamiento

En esta página, se describe el tamaño de almacenamiento de las entidades, claves, propiedades y entradas de índices en Google Cloud Datastore. Puedes obtener más información sobre los costos de este almacenamiento en Precios de Cloud Datastore.

Tamaño de una string

Los tamaños de las strings se calculan como la cantidad de bytes con codificación UTF-8 más 1.

Los siguientes se almacenan como strings:

  • Claves
  • Nombres de categorías
  • Nombres de espacios de nombres (el espacio de nombres predeterminado tiene un tamaño de 0)
  • Nombres de las propiedades
  • Valores de propiedad de las strings

Por ejemplo:

  • El nombre de la categoría Task utiliza 4 bytes + 1 byte, lo que suma 5 bytes.
  • El nombre de la propiedad description utiliza 11 bytes + 1 byte, lo que suma 12 bytes.
  • El nombre del espacio de nombres my_name_space utiliza 13 bytes + 1 byte, lo que suma 14 bytes.

Tamaño de la clave

El tamaño de una clave es la suma de lo siguiente:

  • El tamaño de la string del espacio de nombres (si no está en el espacio de nombres predeterminados)
  • El tamaño de la string de la ruta de la clave completa (los ID de números enteros utilizan 8 bytes cada uno)
  • 16 bytes

Para una clave de la categoría Task en el espacio de nombres predeterminado con un ID numérico y sin elemento principal:

Task id:5730082031140864

El tamaño de la clave es de 5 + 8 + 16 = 29 bytes:

  • 5 bytes para el nombre de la categoría Task
  • 8 bytes para el ID numérico
  • 16 bytes para una clave

Para una clave de categoría Task en el espacio de nombres predeterminado con un ID de string y sin elemento principal:

Task name:my_task_id

El tamaño de la clave es de 5 + 11 + 16 = 32 bytes:

  • 5 bytes para el nombre de la categoría Task
  • 11 bytes para el ID de la string my_task_id
  • 16 bytes para una clave

Para una entidad Task con un elemento principal TaskList en el espacio de nombres predeterminado:

TaskList id:5654313976201216 > Task id:5629499534213120

El elemento principal utiliza 9 + 8 = 17 bytes:

  • 9 bytes para el nombre de la categoría TaskList
  • 8 bytes para el ID numérico

Por lo tanto, el tamaño de la clave de una entidad Task con un elemento principal TaskList utiliza 17 + 5 + 8 + 16 = 46 bytes:

  • 17 bytes para el elemento principal
  • 5 bytes para el nombre de la categoría Task
  • 8 bytes para el ID numérico
  • 16 bytes para una clave

Si esta entidad se encuentra en el espacio de nombres my_name_space, el tamaño de la clave es 14 + 46 = 60 bytes, ya que el nombre my_name_space utiliza 14 bytes.

Tamaño de la propiedad

El tamaño de una propiedad es la suma de lo siguiente:

  • El tamaño de la string del nombre de la propiedad
  • El tamaño del valor de la propiedad

La siguiente tabla muestra el tamaño del valor de la propiedad por tipo.

Tipo Tamaño
Arreglo La suma de los tamaños de sus valores
Blob Longitud de bytes
Booleano 1 byte
Doble 8 bytes
Entidad incorporada el tamaño de la entidad
Punto geográfico 16 bytes
Entero 8 bytes
Clave el tamaño de la clave
Nulo 1 byte
String la cantidad de bytes con codificación UTF-8 + 1
Marca de tiempo 8 bytes

Por ejemplo, una propiedad llamada done con un tipo de booleano usaría 6 bytes:

  • 5 bytes para el nombre de la propiedad done
  • 1 byte para el valor booleano

Tamaño de la entidad

El tamaño de una entidad es la suma de lo siguiente:

Este ejemplo corresponde a una entidad de la categoría Task en el espacio de nombres predeterminados con un ID numérico y sin elemento principal:

Task id:5730082031140864
 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Google Cloud Datastore"

El tamaño total de las propiedades es de 78 bytes:

Nombre y valor de la propiedad Tamaño de la propiedad en bytes
"type": "Personal" 14
5 para el nombre de la propiedad + 9 por el valor de la string de la propiedad
"done": false 6
5 para el nombre de la propiedad + 1 por el valor booleano de la propiedad
"priority": 1 17
9 para el nombre de la propiedad + 8 por el valor de número entero de la propiedad
"description": "Learn Google Cloud Datastore" 41
12 para el nombre de la propiedad + 29 por el valor de la string de la propiedad

Por lo que el tamaño de la entidad es de 29 + 78 + 32 = 139 bytes:

  • 29 bytes para la clave
  • 78 bytes para las propiedades
  • 32 bytes para una entidad

Tamaño de una entrada del índice

El tamaño de la entrada de un índice se calcula de la siguiente manera para los índices integrados y compuestos.

Índices integrados

El tamaño de la entrada de un índice integrado es la suma de lo siguiente:

  • El tamaño de la clave de la entidad indexada
  • La suma de los nombres de la propiedad indexada
  • La suma de los valores de la propiedad indexados
  • El tamaño del nombre de la categoría de la entidad indexada
  • 32 bytes

Por ejemplo, toma una entidad de la categoría Task en el espacio de nombres predeterminados con un ID numérico y sin elementos principales:

Task id:5730082031140864
 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Google Cloud Datastore"

Si done es una propiedad indexada, la entrada del índice integrado para el índice de propiedad única done consta de la clave, el nombre y el valor de la propiedad done, el nombre de la categoría Task y los 32 bytes de una entrada del índice. El tamaño total de esta entrada del índice es de 72 bytes, según este desglose:

  • 29 para la clave
  • 6 para el nombre de la propiedad y el valor booleano done
  • 5 para el nombre de la categoría Task
  • 32 para una entrada de índice

Según la configuración predeterminada, Cloud Datastore predefine de manera automática dos índices de propiedad únicos para cada propiedad de cada categoría de entidad, uno en orden ascendente y otro en orden descendente. Por lo tanto, esta entidad tendría una entrada de índice de un tamaño de 72 bytes en un índice de propiedad único done en orden ascendente y tendría una entrada de índice de un tamaño de 72 bytes en el índice de propiedad único done en orden descendente.

Índices compuestos

El tamaño de la entrada del índice compuesto es la suma de lo siguiente:

Por ejemplo, toma una entidad de la categoría Task en el espacio de nombres predeterminados con un ID numérico y sin elementos principales:

indexes:
- kind: Task
  properties:
  - name: done
    direction: asc
  - name: priority
    direction: asc

Considera un índice compuesto que utilice done y las propiedades priority (ambas ascendentes):

El tamaño total de la entrada del índice en este índice es de 70 bytes:

  • 29 para la clave
  • 1 para el valor booleano de la propiedad done
  • 8 para el valor de número entero de la propiedad priority
  • 32 para una entrada de índice

Si no quieres que Cloud Datastore mantenga un índice para una propiedad, excluye la propiedad de tus índices. Ten en cuenta que si excluyes una propiedad, la quitarás de cualquier índice compuesto.

¿Qué sigue?

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Cloud Datastore