Criar e gerenciar visualizações parametrizadas
É possível criar uma visualização parametrizada de uma visualização lógica no Bigtable e realizar operações nela.
Antes de ler esta página, familiarize-se com a Visão geral das visualizações parametrizadas.
Antes de começar
Se você planeja usar a Google Cloud CLI, siga estas etapas:
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
Funções exigidas
Para receber as permissões necessárias para criar e gerenciar visualizações parametrizadas, peça ao administrador para conceder a você o papel de Administrador do Bigtable (roles/bigtable.admin) na instância.
Como alternativa, você pode pedir as seguintes permissões no nível da instância:
- Criar:
bigtable.logicalViews.create - Atualizar:
bigtable.logicalViews.update - Excluir:
bigtable.logicalViews.delete - Lista:
bigtable.logicalViews.list
Para criar uma visualização parametrizada, você também precisa ter pelo menos a permissão bigtable.tables.readRows na tabela de origem.
Criar uma visualização parametrizada
Uma visualização parametrizada é uma tabela virtual definida por uma instrução SQL SELECT que pode incluir a função VIEW_PARAMETERS().
Console
No console do Google Cloud , abra a lista de instâncias do Bigtable.
Na lista, selecione uma instância.
No painel de navegação, clique em Bigtable Studio.
Abra uma nova guia clicando em Menu "Nova guia" e selecione Editor.
No editor de consultas, escreva sua consulta SQL. A definição de consulta precisa chamar a função
VIEW_PARAMETERS()para especificar um ou mais parâmetros de visualização. Exemplo:SELECT * FROM TABLE_ID WHERE STARTS_WITH(_key, CAST(VIEW_PARAMETERS('PARAM_NAME') AS BYTES))Substitua:
TABLE_ID: o ID da tabela de origem.PARAM_NAME: o nome do parâmetro de visualização, entre aspas simples, a ser transmitido como argumento para a funçãoVIEW_PARAMETERS(). Isso define o nome do parâmetro, não o valor dele no tempo de execução. Você fornece o valor de tempo de execução ao consultar a visualização parametrizada.
Se a consulta for um SQL válido, uma mensagem Válida vai aparecer.
Opcional: para formatar sua instrução no estilo SQL, clique em Formatar.
Clique em Salvar e selecione Salvar como visualização lógica.
Na caixa de diálogo Salvar sua visualização lógica, insira um nome para a visualização e clique em Salvar.
A visualização aparece no painel Explorer, na lista Visualizações lógicas, com um ícone de visualização parametrizada variable_add.
Para mais informações sobre como usar o editor de consultas, consulte Gerenciar seus dados com o Bigtable Studio.
gcloud
Para criar uma visualização parametrizada, use o 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))"
Substitua:
VIEW: um ID de até 128 caracteres para a nova visualização parametrizada. O ID precisa ser exclusivo entre os IDs de tabela e de visualização na instância.INSTANCE: o ID da instância em que a visualização parametrizada será criada.TABLE_ID: o ID da tabela de origem.PARAM_NAME: o nome do parâmetro de visualização, entre aspas simples, a ser transmitido como argumento para a funçãoVIEW_PARAMETERS(). Isso define o nome do parâmetro, não o valor dele no tempo de execução. Você fornece o valor de tempo de execução ao consultar a visualização parametrizada.
Opcional:
- Para proteger a visualização parametrizada contra exclusão, adicione o comando com a flag
--deletion-protection. Se você não aplicar essa configuração, a visualização poderá ser excluída. Para permitir explicitamente a exclusão da visualização, basta anexar--no-deletion-protection. Para mais informações, consulte a seção Atualizar uma visualização parametrizada deste documento.
Criar uma visualização parametrizada com uma chave de linha estruturada
Se a tabela usar uma chave de linha estruturada, será possível filtrar um segmento específico dela. Para mais informações, consulte Gerenciar chave de linha linha.
Por exemplo, se uma chave de linha em uma tabela de histórico de compras armazenar o usuário, o carimbo de data/hora
da data da compra e o ID do pedido, delimitados por um símbolo #, especifique
o esquema de linha da seguinte maneira:
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 "#" }
}
Em seguida, crie uma vista da propriedade que filtre o campo "User-ID":
Console
No Bigtable Studio, abra o editor de consultas e insira a consulta SQL que filtra o segmento da chave de linha:
SELECT * FROM TABLE_ID WHERE user_id = CAST(VIEW_PARAMETERS('user_id') AS BYTES)Substitua
TABLE_IDpelo ID da tabela de origem.Clique em Salvar e selecione Salvar como visualização lógica.
Na caixa de diálogo Salvar sua visualização lógica, insira um nome para a visualização e clique em Salvar.
A visualização aparece no painel Explorer, na lista Visualizações lógicas, com um ícone de visualização parametrizada variable_add.
gcloud
Para criar uma visualização parametrizada com uma chave de linha estruturada, use o 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)"
Substitua:
VIEW: um ID de até 128 caracteres para a nova visualização parametrizada. O ID precisa ser exclusivo entre os IDs de tabela e de visualização na instância.INSTANCE: o ID da instância em que a visualização parametrizada será criada.TABLE_ID: o ID da tabela de origem.
Atualizar uma visualização parametrizada
Você atualiza uma visualização parametrizada da mesma forma que atualiza uma visualização lógica.
Excluir uma visualização parametrizada
Você exclui uma visualização parametrizada da mesma forma que exclui uma visualização lógica.
Ver informações sobre visualizações parametrizadas
Você vê uma lista de visualizações parametrizadas da mesma forma que uma lista de visualizações lógicas para uma instância.
Console
No console do Google Cloud , abra a lista de instâncias do Bigtable.
Na lista, selecione uma instância.
No painel de navegação, clique em Bigtable Studio.
No painel Explorer, expanda Visualizações lógicas.
As visualizações parametrizadas aparecem na lista com um ícone variable_add de visualização parametrizada que as diferencia das visualizações lógicas padrão.
Se a instância tiver mais de 10 visualizações, clique em Mostrar mais para carregar as próximas 10.
gcloud
Para ver uma lista de visualizações lógicas de uma instância, use o comando
gcloud bigtable logical-views list.
gcloud bigtable logical-views list --instance=INSTANCE
Substitua INSTANCE pelo ID da instância.
Consultar visualizações parametrizadas
Você consulta visualizações parametrizadas de maneira semelhante às tabelas regulares, mas fornece o mapa view_parameters na solicitação.
Console
No console do Google Cloud , abra a lista de instâncias do Bigtable.
Na lista, selecione uma instância.
No painel de navegação, clique em Bigtable Studio.
No painel Explorer, expanda Visualizações lógicas.
Ao lado da visualização parametrizada que você quer consultar, clique no menu more_vert Ações da visualização e clique em Consultar visualização.
Um painel Parâmetros é aberto com os nomes de parâmetros de visualização pré-preenchidos.
Em Parâmetros de visualização, insira os valores de tempo de execução para cada parâmetro obrigatório nos campos Valor.
Os valores de parâmetro são transmitidos como strings. Se um parâmetro na definição da sua visualização for convertido em outro tipo (como um número inteiro ou bytes), insira o valor da string bruta.
Opcional: para adicionar mais parâmetros, clique em Adicionar parâmetro e insira o nome e o valor do parâmetro. Os nomes dos parâmetros precisam ser exclusivos nos parâmetros de visualização.
Clique em Salvar.
No editor de consultas, clique em Executar.
Os resultados da consulta aparecem na tabela Resultados.
Se você executar a consulta sem fornecer os parâmetros de visualização obrigatórios, uma mensagem de erro vai aparecer na seção de resultados com um botão Editar parâmetros. Clique em Editar parâmetros para abrir o painel Parâmetros e insira os valores de parâmetro ausentes.
Os valores de parâmetro são configurados para cada guia do editor de consultas. Se você sair do Bigtable Studio durante a sessão e voltar, as guias abertas, as consultas, os resultados e os parâmetros configurados serão preservados.
Java
O exemplo a seguir mostra como consultar uma
visualização parametrizada chamada purchase_history_pv, que filtra dados com base em
um ID de usuário:
// 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
);
Isso impede que o usuário veja ou manipule o parâmetro user_id
na própria consulta, oferecendo uma separação lógica limpa.