Crea y administra vistas parametrizadas
Puedes crear una vista con parámetros a partir de una vista lógica en Bigtable y, luego, realizar operaciones en vistas con parámetros.
Antes de leer esta página, familiarízate con la descripción general de las vistas parametrizadas.
Antes de comenzar
Si planeas usar Google Cloud CLI, sigue estos pasos:
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
Roles obligatorios
Para obtener los permisos que necesitas para crear y administrar vistas parametrizadas, pídele a tu administrador que te otorgue el rol de administrador de Bigtable (roles/bigtable.admin) en la instancia.
Como alternativa, puedes solicitar los siguientes permisos a nivel de la instancia:
- Crear:
bigtable.logicalViews.create - Actualización:
bigtable.logicalViews.update - Borrar:
bigtable.logicalViews.delete - Lista:
bigtable.logicalViews.list
Para crear una vista parametrizada, también debes tener al menos el permiso bigtable.tables.readRows en la tabla de origen.
Crea una vista parametrizada
Una vista parametrizada es una tabla virtual definida por una instrucción SELECT de SQL que puede incluir la función VIEW_PARAMETERS().
Console
En la consola de Google Cloud , abre la lista de instancias de Bigtable.
En la lista, selecciona una instancia.
En el panel de navegación, haz clic en Bigtable Studio.
Haz clic en Menú de pestaña nueva y, luego, selecciona Editor para abrir una pestaña nueva.
En el editor de consultas, escribe tu consulta en SQL. La definición de la consulta debe llamar a la función
VIEW_PARAMETERS()para especificar uno o más parámetros de vista. Por ejemplo:SELECT * FROM TABLE_ID WHERE STARTS_WITH(_key, CAST(VIEW_PARAMETERS('PARAM_NAME') AS BYTES))Reemplaza lo siguiente:
TABLE_ID: Es el ID de la tabla de origen.PARAM_NAME: Es el nombre del parámetro de vista, entre comillas simples, que se pasará como argumento a la funciónVIEW_PARAMETERS(). Esto define el nombre del parámetro, no su valor de tiempo de ejecución. Proporcionas el valor del tiempo de ejecución cuando consultas la vista parametrizada.
Si la consulta es un código SQL válido, aparecerá el mensaje Válida.
Opcional: Para darle formato a tu instrucción en estilo SQL, haz clic en Formato.
Haz clic en Guardar y, luego, selecciona Guardar como vista lógica.
En el diálogo Save your logical view, ingresa un nombre para la vista y, luego, haz clic en Save.
La vista aparece en el panel Explorador, en la lista Vistas lógicas, con un ícono de vista parametrizada variable_add.
Para obtener más información sobre cómo usar el editor de consultas, consulta Administra tus datos con Bigtable Studio.
gcloud
Para crear una vista parametrizada, usa el comando gcloud bigtable logical-views create.
gcloud bigtable logical-views create VIEW \
--instance=INSTANCE \
--query="SELECT * FROM TABLE_ID WHERE STARTS_WITH(_key, CAST(VIEW_PARAMETERS('PARAM_NAME') AS BYTES))"
Reemplaza lo siguiente:
VIEW: Es un ID de hasta 128 caracteres de longitud para la nueva vista parametrizada. El ID debe ser único entre los IDs de tabla y los IDs de vista de la instancia.INSTANCE: Es el ID de la instancia en la que se creará la vista parametrizada.TABLE_ID: Es el ID de la tabla de origen.PARAM_NAME: Es el nombre del parámetro de vista, entre comillas simples, que se pasará como argumento a la funciónVIEW_PARAMETERS(). Esto define el nombre del parámetro, no su valor de tiempo de ejecución. Proporcionas el valor del tiempo de ejecución cuando consultas la vista parametrizada.
Opcional:
- Para proteger la vista parametrizada contra la eliminación, agrega la marca
--deletion-protectional comando. Si no aplicas este parámetro de configuración, se podrá borrar la vista. También puedes permitir explícitamente la eliminación de vistas agregando--no-deletion-protection. Para obtener más información, consulta la sección Actualiza una vista parametrizada de este documento.
Crea una vista parametrizada con una clave de fila estructurada
Si tu tabla usa una clave de fila estructurada, puedes filtrar un segmento específico de la clave de fila. Para obtener más información, consulta Administra clave de fila de fila.
Por ejemplo, si una clave de fila en una tabla de historial de compras almacena el usuario, la marca de tiempo de la fecha de compra y el ID de pedido, delimitados por un símbolo #, puedes especificar el esquema de fila de la siguiente manera:
field {
field_name: "user_id"
type: { bytesType { encoding { raw {} } } }
}
field {
field_name: "reversed_timestamp"
type: { timestampType { encoding { unixMicrosInt64 { encoding: { orderedCodeBytes: {} } } } } }
}
field {
field_name: "order_id"
type: { stringType { encoding { utf8Bytes {} } } }
}
encoding {
delimitedBytes { delimiter "#" }
}
Luego, puedes crear una vista que filtre el campo ID de usuario:
Console
En Bigtable Studio, abre el editor de consultas y, luego, ingresa la consulta en SQL que filtra el segmento de la clave de fila:
SELECT * FROM TABLE_ID WHERE user_id = CAST(VIEW_PARAMETERS('user_id') AS BYTES)Reemplaza
TABLE_IDpor el ID de la tabla de origen.Haz clic en Guardar y, luego, selecciona Guardar como vista lógica.
En el diálogo Save your logical view, ingresa un nombre para la vista y, luego, haz clic en Save.
La vista aparece en el panel Explorador, en la lista Vistas lógicas, con un ícono de vista parametrizada variable_add.
gcloud
Para crear una vista parametrizada con una clave de fila estructurada, usa el comando gcloud bigtable logical-views create.
gcloud bigtable logical-views create VIEW \
--instance=INSTANCE \
--query="SELECT * FROM TABLE_ID WHERE user_id = CAST(VIEW_PARAMETERS('user_id') AS BYTES)"
Reemplaza lo siguiente:
VIEW: Es un ID de hasta 128 caracteres para la nueva vista parametrizada. El ID debe ser único entre los IDs de tablas y los IDs de vistas de la instancia.INSTANCE: Es el ID de la instancia en la que se creará la vista parametrizada.TABLE_ID: Es el ID de la tabla de origen.
Actualiza una vista parametrizada
Actualizas una vista parametrizada de la misma manera en que actualizas una vista lógica.
Borra una vista parametrizada
Puedes borrar una vista parametrizada de la misma manera en que borras una vista lógica.
Consulta información sobre las vistas parametrizadas
Puedes ver una lista de vistas parametrizadas de la misma manera que ves una lista de vistas lógicas para una instancia.
Console
En la consola de Google Cloud , abre la lista de instancias de Bigtable.
En la lista, selecciona una instancia.
En el panel de navegación, haz clic en Bigtable Studio.
En el panel Explorador, expande Vistas lógicas.
Las vistas parametrizadas aparecen en la lista con un ícono de vista parametrizada variable_add que las distingue de las vistas lógicas estándar.
Si la instancia tiene más de 10 vistas, haz clic en Mostrar más para cargar las siguientes 10.
gcloud
Para ver una lista de las vistas lógicas de una instancia, usa el comando gcloud bigtable logical-views list.
gcloud bigtable logical-views list --instance=INSTANCE
Reemplaza INSTANCE por el ID de la instancia.
Consulta vistas parametrizadas
Las vistas parametrizadas se consultan de manera similar a las tablas normales, pero se proporciona el mapa view_parameters en la solicitud.
Console
En la consola de Google Cloud , abre la lista de instancias de Bigtable.
En la lista, selecciona una instancia.
En el panel de navegación, haz clic en Bigtable Studio.
En el panel Explorador, expande Vistas lógicas.
Junto a la vista parametrizada que deseas consultar, haz clic en el menú more_vert Ver acciones y, luego, en Consultar vista.
Se abre un panel Parámetros con los nombres de los parámetros de vista completados previamente.
En Ver parámetros, ingresa los valores de tiempo de ejecución para cada parámetro obligatorio en los campos Valor.
Los valores de los parámetros se pasan como cadenas. Si un parámetro en la definición de tu vista se convierte en otro tipo (como un número entero o bytes), ingresa el valor de cadena sin procesar.
Opcional: Para agregar más parámetros, haz clic en Agregar parámetro y, luego, ingresa el nombre y el valor del parámetro. Los nombres de los parámetros deben ser únicos dentro de los parámetros de la vista.
Haz clic en Guardar.
En el editor de consultas, haz clic en Ejecutar.
Los resultados de tu búsqueda aparecen en la tabla Resultados.
Si ejecutas la consulta sin proporcionar los parámetros de vista obligatorios, aparecerá un mensaje de error en la sección de resultados con un botón Editar parámetros. Haz clic en Editar parámetros para abrir el panel Parámetros y, luego, ingresa los valores de los parámetros faltantes.
Los valores de los parámetros se configuran para cada pestaña del editor de consultas. Si sales de Bigtable Studio durante la sesión y vuelves, se conservarán las pestañas abiertas, las consultas, los resultados y los parámetros configurados.
Java
En el siguiente ejemplo, se muestra cómo consultar una vista parametrizada llamada purchase_history_pv, que filtra los datos según un ID de usuario:
// Assumes 'purchase_history_pv' was created with the definition:
// SELECT * FROM purchases WHERE user_id = CAST(VIEW_PARAMETERS('user_id') AS BYTES)
String query = "SELECT customer_info[email], order_details[status], order_info[items] from purchase_history_pv";
PreparedStatement preparedStatement = dataClient.prepareStatement(query);
BoundStatement boundStatement = preparedStatement.bind().build();
// The user ID is now passed out-of-band in a view parameters map.
Map<String, Value> viewParameters = new HashMap<>();
viewParameters.put("user_id", Value.newBuilder().setType(stringType()).setStringValue(userId).build());
// Execute the query, passing the view parameters using a proto field in the request.
ResultSet rs = dataClient.executeQuery(
boundStatement,
viewParameters
);
Esto evita que el usuario pueda ver o manipular el parámetro user_id dentro de la consulta, lo que proporciona una separación lógica clara.