Descripción general de las vistas autorizadas

Las vistas autorizadas en Bigtable te permiten otorgar acceso detallado a subconjuntos específicos de datos de la tabla por separado de la tabla subyacente.

Puedes usar estas vistas para aislar datos en tablas de múltiples usuarios y controlar el acceso de lectura y escritura. También puedes crear miles de vistas de forma programática, de manera similar a las vistas actualizables o los alias filtrados en otros sistemas de almacenamiento.

Antes de comenzar, asegúrate de conocer el modelo de almacenamiento de Bigtable. Para obtener instrucciones de configuración, consulta Crea y administra vistas autorizadas.

Qué define una vista autorizada

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

  • Prefijo de la clave de fila, por ejemplo, todas las filas que comienzan con examplepetstore1#
  • Prefijo del calificador de columna (por ejemplo, todas las columnas cuyos calificadores comienzan con order# en la familia de columnas especificada)
  • Calificador de columna, por ejemplo, solo la columna order-examplepetstore en 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 deseas 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 cuando definas 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 calificador de columna que contengan información sensible. Para obtener información sobre cómo se manejan los datos del servicio, consulta el Cloud de Confiance by S3NS Aviso de Privacidad.

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

Si deseas asegurarte de que cualquier columna que se agregue a una familia de columnas en la tabla subyacente también se incluya en tu vista autorizada, debes especificar la cadena vacía ("") como prefijo del 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 deseas definir una vista autorizada que incluya todas las filas de la tabla, especifica la cadena vacía ("") como prefijo de clave de fila. En un archivo de definición, esto se escribe como "rowPrefixes": [""] en el subconjunto de la vista.

Para evitar vistas autorizadas demasiado complejas, Bigtable te permite especificar un máximo de 10 prefijos de calificadores 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 combinación intermedia, siempre que la cantidad total de calificadores sea como máximo 10.

Como práctica recomendada, especifica una clave solo una vez por objeto JSON. Si especificas una clave, como un nombre de familia de columnas, más de una vez, la entrada final para la clave anula cualquier entrada anterior para la clave.

Ejemplos de archivos de definición

En esta sección, se presentan ejemplos con formato JSON de archivos de definición de vistas autorizadas.

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

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

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

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

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

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

A continuación, se muestra un ejemplo de un archivo de definición para una vista autorizada que incluye solo datos en las columnas skus y agents de la familia de columnas order, y 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"]
          }
          }
        }
      }
    }

¿Qué sigue?