Introducción a las vistas autorizadas

Las vistas autorizadas de las tablas de Bigtable te permiten controlar el acceso a tus datos de Bigtable de forma pormenorizada. Una vista autorizada es un subconjunto de una tabla que se configura para incluir datos específicos de la tabla. A continuación, concede acceso a la vista autorizada de forma independiente al acceso a la tabla.

Las vistas autorizadas son útiles para tablas multiinquilino u otras situaciones en las que la tabla contiene datos a los que no todos los usuarios deberían poder acceder. A diferencia de las vistas de otros servicios de bases de datos, las vistas autorizadas de Bigtable se pueden usar para controlar tanto el acceso de lectura como el de escritura. Puedes crear miles de vistas autorizadas mediante programación, de la misma forma que puedes hacerlo con lo que otros sistemas de almacenamiento denominan "vistas actualizables" o "alias filtrados".

En este documento se describen las vistas autorizadas y se proporcionan ejemplos de archivos de definición. Antes de leer este documento, debes familiarizarte con el modelo de almacenamiento de Bigtable. Para obtener instrucciones, consulta el artículo Crear y gestionar vistas autorizadas.

Qué define una vista autorizada

Cuando creas una vista autorizada, la defines especificando los datos que quieres incluir en ella mediante uno de los siguientes parámetros:

  • Prefijo de clave de fila: por ejemplo, todas las filas que empiezan por examplepetstore1|
  • Prefijo de calificador de columna: por ejemplo, todas las columnas cuyos calificadores empiecen por order# en la familia de columnas especificada.
  • Calificador de columna: por ejemplo, solo la columna order-examplepetstore de la familia de columnas especificada.
  • Una combinación de prefijo de clave de fila y calificador de columna

Si se usa el mismo calificador de columna en varias familias de columnas y quieres incluir todas las columnas con ese calificador en la vista, debes especificar cada combinación de calificador de columna y familia de columnas por separado al definir la vista.

Los valores de clave de fila y calificador de columna que usas para definir una vista autorizada se tratan como datos de servicio. Por este motivo, no crees una vista autorizada con valores de clave de fila o de calificador de columna que contengan información sensible. Para obtener información sobre cómo se tratan los datos del servicio, consulta el Aviso de Privacidad deGoogle Cloud .

Inclusión de columnas en una familia o en todas las filas

Si quiere asegurarse de que cualquier columna que se añada a una familia de columnas de la tabla subyacente también se incluya en su vista autorizada, debe especificar la cadena vacía ("") como prefijo de calificador de columna. Por ejemplo, un archivo de definición incluiría lo siguiente en el subconjunto de la familia: "qualifierPrefixes": [""].

Del mismo modo, si quiere definir una vista autorizada que incluya todas las filas de la tabla, especifique la cadena vacía ("") como prefijo de clave de fila. En un archivo de definición, se escribe como "rowPrefixes": [""] en el subconjunto de la vista.

Para evitar vistas autorizadas excesivamente complejas, Bigtable te permite especificar un máximo de 10 prefijos de calificador distintos. Esto significa que una vista autorizada puede especificar una familia de columnas con 10 prefijos de calificador, 10 familias de columnas con un solo prefijo de calificador o cualquier valor intermedio, siempre que el número total de calificadores sea como máximo 10.

Como práctica recomendada, especifica una clave solo una vez por objeto JSON. Si especifica una clave, como un nombre de familia de columnas, más de una vez, la entrada final de la clave sobrescribe las entradas anteriores de la clave.

Ejemplos de archivos de definición

En esta sección se muestran ejemplos en formato JSON de archivos de definición de vistas autorizadas.

A continuación, se muestra un ejemplo de un archivo de definición de una vista autorizada que incluye la columna address de la familia de columnas customer y las columnas que empiezan por tel de las filas con el prefijo de clave de fila examplepetstore1#.

    {
      "subsetView":
      {
        "rowPrefixes": ["examplepetstore1#"],
        "familySubsets":
        {
          "customer":
          {
            "qualifiers":["address"],
            "qualifierPrefixes":["tel"]
          }
        }
      },
      "deletionProtection": true
    }

A continuación, se muestra un ejemplo de archivo de definición de una vista autorizada que incluye la columna skus de la familia de columnas order y todas las columnas de la familia de columnas customer.

    {
      "subsetView": {
        "rowPrefixes": [""],
        "familySubsets": {
          "order": {
            "qualifiers": ["skus"]
          },
          "customer": {
            "qualifierPrefixes": [""]
          }
        }
      }
    }

A continuación, se muestra un ejemplo de archivo de definición de una vista autorizada que incluye solo los datos de la columna skus de la familia de columnas order en las filas que tienen el prefijo de clave de fila examplepetstore1#.

    {
      "subsetView": {
        "rowPrefixes": ["examplepetstore1#"]
        "familySubsets": {
          "order": {
            "qualifiers": ["skus"]
          }
        }
      }
    }

A continuación, se muestra un ejemplo de archivo de definición de una vista autorizada que incluye solo los datos de las columnas skus y agents de la familia de columnas order y de las columnas dog, cat y bird de la familia de columnas pet_id.

    {
      "subsetView": {
        "rowPrefixes": [""]
        "familySubsets": {
          "order": {
            "qualifiers": ["skus", "agents"]
          "pet_id": {
            "qualifiers": ["dog", "cat", "bird"]
          }
          }
        }
      }
    }

Siguientes pasos