Notebooks particulares¶
Na Snowsight, é possível criar um notebook privado, de propriedade do usuário. Esse notebook particular é armazenado no seu banco de dados pessoal: um espaço de trabalho dedicado onde você pode criar, modificar e gerenciar seus notebooks particulares. Diferentemente da propriedade baseada em função, os objetos em um banco de dados pessoal são de propriedade de um usuário individual. É possível criar notebooks privados em um banco de dados pessoal sem precisar esperar que alguém lhe conceda os privilégios adequados.
Nota
O ciclo de vida de um banco de dados pessoal está diretamente ligado ao seu proprietário. Se um usuário for removido da conta Snowflake, seu banco de dados pessoal também será excluído. Portanto, o Snowflake não recomenda o uso de bancos de dados pessoais para cargas de trabalho críticas para os negócios ou para a produção.
Seu banco de dados pessoal recebe o nome de seu nome de usuário no formato USER$username
(por exemplo, USER$JOHNDOE
). Você também pode fazer referência a ele com o prefixo USER$
. É possível visualizar os detalhes de seu banco de dados pessoal em Data » Databases.
Um notebook privado permite que você realize as seguintes tarefas:
Desenvolva códigos de forma interativa e faça experimentos com dados e modelos.
Implemente esses projetos duplicando notebooks de bancos de dados pessoais para bancos de dados regulares e não pessoais.
Nota
Os usuários não podem criar tabelas ou outros objetos em um banco de dados pessoal. Para obter uma lista completa de limitações e restrições, consulte Limitações.
Pré-requisitos para usar notebooks privados¶
Antes de criar e usar notebooks privados, um administrador com a função ACCOUNTADMIN deve concluir as seguintes tarefas:
- Ative o recurso de banco de dados pessoal no nível da conta ou para usuários específicos.
Os bancos de dados pessoais são objetos do Snowflake que possibilitam que os notebooks se comportem como notebooks privados. Para obter informações sobre como concluir essa tarefa, consulte as seções a seguir:
- Se necessário, defina adequadamente as funções secundárias para os usuários que criarão notebooks privados.
Para obter informações sobre a conclusão dessa tarefa, que pode depender da ativação de pacotes BCR recentes, consulte Ativação de todas as funções secundárias para usuários de notebooks privados.
Importante
Depois que o administrador tiver ativado os bancos de dados pessoais, os usuários afetados deverão sair e entrar novamente para ver o novo comportamento da interface do usuário.
Para obter detalhes sobre a criação de um notebook privado, consulte Criação de um novo notebook.
Ativação de todas as funções secundárias para usuários de notebooks privados¶
Antes de criar um notebook privado, todas as funções secundárias devem estar ativadas. Isso ocorre porque os notebooks privados são de propriedade do usuário, não de sua função principal.
Para ativar todas as funções secundárias de um usuário por padrão, o usuário ou um administrador pode usar o comando ALTER USER para cancelar a definição da propriedade do objeto DEFAULT_SECONDARY_ROLES ou defini-la como (“ALL”) para o usuário.
Por exemplo:
ALTER USER my_user UNSET DEFAULT_SECONDARY_ROLES;
ALTER USER my_user SET DEFAULT_SECONDARY_ROLES = ('ALL');
Depois que o usuário ou um administrador executar a instrução SQL acima, o usuário poderá criar um notebook particular na Snowsight (Projetos » Notebooks) ou executando os comandos SQL em uma planilha nova.
Um usuário que deseja executar comandos SQL em uma planilha existente deve executar a seguinte instrução SQL antes de criar um notebook privado:
USE SECONDARY ROLES ALL;
Ativar e desativar notebooks privados para a conta¶
Para ativar ou desativar notebooks privados em uma conta Snowflake, use o parâmetro ENABLE_PERSONAL_DATABASE.
Propriedades de ENABLE_PERSONAL_DATABASE:
- Tipo:
Usuário – Pode ser definido para Conta > Usuário
- Tipo de dados:
Booliano
- Descrição:
Controla se os usuários têm acesso a notebooks privados.
- Valores:
TRUE
: permite que os usuários acessem seus bancos de dados pessoais.FALSE
: impede que os usuários acessem seus bancos de dados pessoais.- Padrão:
FALSE
Exemplos¶
Para ativar notebooks privados para a conta, use o comando ALTER ACCOUNT para definir o parâmetro ENABLE_PERSONAL_DATABASE como TRUE. Por exemplo:
ALTER ACCOUNT SET ENABLE_PERSONAL_DATABASE = TRUE;
Você não pode alterar uma conta diferente; só pode alterar a conta atual. Para obter mais informações sobre esse comando, consulte ALTER ACCOUNT.
Para desativar os notebooks privados da conta, execute o mesmo comando, mas defina o parâmetro como FALSE. Por exemplo:
ALTER ACCOUNT SET ENABLE_PERSONAL_DATABASE = FALSE;
Para verificar o valor atual do parâmetro ENABLE_PERSONAL_DATABASE, execute o seguinte comando SHOW PARAMETERS:
SHOW PARAMETERS LIKE 'ENABLE_PERSONAL_DATABASE' IN ACCOUNT;
Depois que o administrador ativar o parâmetro para a conta, o usuário deverá sair e entrar novamente. Em seguida, o usuário pode verificar se o banco de dados pessoal foi criado executando um comando USE DATABASE:
USE DATABASE USER$;
É possível nomear explicitamente o usuário atual especificando o prefixo USER$
seguido do nome de usuário de login. Por exemplo:
USE DATABASE USER$bobr;
Esses comandos são bem-sucedidos quando o banco de dados pessoal do usuário atual existe. O comando USE DATABASE retorna um erro se o banco de dados pessoal não existir (porque as tarefas de pré-requisito não foram concluídas) ou se não for o banco de dados pessoal do usuário atual. Por exemplo, se jlap
não for o usuário atual, a seguinte mensagem será exibida:
USE DATABASE USER$jlap;
ERROR: Insufficient privileges to operate on database 'USER$JLAP'
Nota
Os bancos de dados pessoais não têm um proprietário específico; eles são objetos de propriedade do sistema.
Você não pode criar bancos de dados pessoais por conta própria. Eles são «criados lentamente» em segundo plano para os usuários existentes quando a conta é ativada para notebooks privados. Na primeira vez que um usuário executa um comando com resolução explícita de nome USER$, o banco de dados pessoal é criado. Por exemplo, a execução do comando USE DATABASE USER$ resulta na criação lenga do banco de dados pessoal para o usuário atual.
Ativação e desativação de notebooks privados para usuários individuais¶
Os administradores podem querer que usuários específicos da conta tenham acesso pessoal ao banco de dados, em vez de todos os usuários da conta. Para permitir o acesso de determinados usuários, use o comando ALTER USER para definir o parâmetro ENABLE_PERSONAL_DATABASE como TRUE para esses usuários. Por exemplo, habilite o acesso para três usuários:
ALTER USER bobr SET ENABLE_PERSONAL_DATABASE = TRUE;
ALTER USER amya SET ENABLE_PERSONAL_DATABASE = TRUE;
ALTER USER jlap SET ENABLE_PERSONAL_DATABASE = TRUE;
Se você ativar bancos de dados pessoais no nível da conta, poderá desativar bancos de dados pessoais para usuários individuais, conforme necessário. Para desativar os usuários, execute o mesmo comando, mas defina o parâmetro como FALSE. Por exemplo:
ALTER USER jlap SET ENABLE_PERSONAL_DATABASE = FALSE;
Se o usuário jlap
especificar o prefixo USER$
em qualquer comando, o comando falhará porque o banco de dados pessoal não existe.
NotebookSqlException: Failed to fetch a pandas Dataframe. The error is: 060109 (0A000): Personal Database is not enabled for user JLAP.
Please contact an account administrator to enable it and try again.
Nota
Se você ativar e depois desativar bancos de dados pessoais para um usuário específico, ele perderá o acesso ao banco de dados pessoal criado, mas o banco de dados continuará existindo.
Criar um notebook privado¶
Para criar um novo notebook privado, siga estas etapas:
Faça login no Snowsight.
Selecione Projects » Notebooks no menu de navegação do lado esquerdo.
Selecione + Notebook.
Selecione seu nome de usuário na lista Owner.
Insira um nome para seu notebook.
Nota
Se estiver usando uma região do AWS, você pode especificar o ambiente de tempo de execução do notebook: Warehouse Runtime ou Container Runtime.
Selecione um Notebook location. Este é o banco de dados e o esquema nos quais você armazenará seu notebook. Este parâmetro não pode ser alterado após a criação do notebook. Se você criar um notebook privado depois que os bancos de dados pessoais estiverem ativados para sua conta, o banco de dados pessoal será pré-preenchido por padrão em Notebook location. No entanto, se você estiver criando um notebook privado e houver apenas um esquema no banco de dados pessoal, as opções de Notebook location não estarão disponíveis.
Nota
O menu suspenso Notebook location pode não mostrar bancos de dados que foram criados depois que você abriu a caixa de diálogo Create Notebook. Se você não conseguir encontrar o banco de dados, esquema ou warehouse criado recentemente, tente recarregar a janela do navegador.
A consulta de dados no notebook não está restrita a esse local. No notebook, é possível consultar dados em qualquer local ao qual você tenha acesso. Para especificar o local, execute USE WAREHOUSE e USE SCHEMA.
Selecione Run on warehouse ou Run on container como seu ambiente Python.
Opcional Selecione um Query warehouse para executar qualquer consulta SQL e consultas do Snowpark geradas pelo notebook.
Selecione um Notebook warehouse para executar tarefas específicas do notebook. O Snowflake recomenda que você use SYSTEM$STREAMLIT_NOTEBOOK_WH, um warehouse gerenciado pelo Snowflake que é provisionado em cada conta para executar notebooks.
Selecione Create para criar e abrir seu notebook.
Organizar seus notebooks privados¶
É possível criar e usar esquemas como um meio de organizar seus notebooks privados. Por padrão, os bancos de dados pessoais contêm os esquemas padrão denominados PUBLIC e INFORMATION_SCHEMA.
Crie e use novos esquemas da maneira usual, mas certifique-se de que esteja usando seu banco de dados pessoal ao criar esquemas. Por exemplo:
USE DATABASE USER$bobr;
CREATE SCHEMA bobr_schema;
USE SCHEMA bobr_schema;
Você também pode usar o comando ALTER SCHEMA em esquemas de bancos de dados pessoais e pode usar o comando SHOW SCHEMAS para ver os esquemas que pertencem a bancos de dados pessoais. Por exemplo:
ALTER SCHEMA bobr_schema RENAME TO bobr_personal_schema;
SHOW TERSE SCHEMAS;
+-------------------------------+----------------------+------+---------------+-------------+
| created_on | name | kind | database_name | schema_name |
|-------------------------------+----------------------+------+---------------+-------------|
| 2024-10-28 19:33:18.437 -0700 | BOBR_PERSONAL_SCHEMA | NULL | USER$BOBR | NULL |
| 2024-10-29 14:11:33.267 -0700 | INFORMATION_SCHEMA | NULL | USER$BOBR | NULL |
| 2024-10-28 12:47:21.502 -0700 | PUBLIC | NULL | USER$BOBR | NULL |
+-------------------------------+----------------------+------+---------------+-------------+
Como disponibilizar um notebook privado para uso geral¶
Em algum momento do desenvolvimento, você pode querer recriar o notebook fora de seu banco de dados pessoal. Para fazer essa alteração, duplique o notebook original usando o comando CREATE NOTEBOOK. Ao fazer isso, o notebook fica visível para outros usuários.
Por exemplo:
CREATE NOTEBOOK bobr_prod_notebook
FROM 'snow://notebook/USER$BOBR.PUBLIC.bobr_private_notebook/versions/version$1/'
QUERY_WAREHOUSE = 'PUBLIC_WH'
MAIN_FILE = 'notebook_app.ipynb'
COMMENT = 'Duplicated from personal database';
Notebook BOBR_PROD_NOTEBOOK successfully created.
Você também pode criar um notebook privado a partir de um notebook criado em um banco de dados de produção.
Nota
Não é possível concluir essa tarefa por meio da interface de usuário Snowsight; é necessário usar um comando SQL explícito (em uma célula SQL de um bloco de notas ou em uma planilha, por exemplo).
FROM 'source_location'
Especifica que o notebook deve ser criado a partir de um arquivo
.ipynb
no local de estágio especificado:Para criar o notebook a partir de um arquivo em um estágio, defina
source_location
como o local do estágio do arquivo e defina o parâmetro MAIN_FILE como o nome do arquivo.Para criar o bloco de notas a partir de um bloco de notas privado (por exemplo, para disponibilizar um bloco de notas privado para uso compartilhado), defina esse parâmetro como:
'snow://notebook/USER$username.schema.notebook/versions/version$1/'
Onde:
username
é o seu nome de usuário.schema
é o nome do esquema com o notebook privado.notebook
é o nome do notebook privado.
Se esse parâmetro não for especificado, o objeto notebook será criado a partir de um notebook modelo.
Exibição de informações sobre notebooks privados e bancos de dados pessoais¶
Usuários individuais podem usar a Snowsight para visualizar informações sobre seus notebooks. Vá para Projects » Notebooks. O proprietário do notebook é listado como o usuário.
Para obter informações sobre bancos de dados, incluindo bancos de dados pessoais, acesse Data » Databases. É possível ver facilmente quais bancos de dados são pessoais porque eles têm o prefixo USER$
.
Visibilidade do administrador¶
As funções com o privilégio MANAGE GRANTS têm visibilidade de todos os objetos da conta, inclusive objetos pessoais de propriedade de usuários individuais. Por exemplo, funções como ACCOUNTADMIN podem visualizar todos os bancos de dados, inclusive os pessoais, por padrão. Essas funções também podem acessar detalhes sobre esquemas e notebooks privados em bancos de dados pessoais.
Para visualizar os detalhes de todos os bancos de dados pessoais em uma conta, consulte a exibição DATABASES Account Usage:
SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.DATABASES;
Os administradores podem usar DESCRIBE NOTEBOOK para visualizar as propriedades de um notebook privado específico:
DESCRIBE NOTEBOOK USER$.PUBLIC.bobr_private_notebook;
Na página Projects » Notebooks na Snowsight, os administradores não podem ver os objetos do notebook privado que pertencem a outros usuários na lista Notebooks.
Para mostrar o banco de dados pessoal de um usuário atual:
SHOW DATABASES LIKE 'USER$BOBR';
Para bancos de dados pessoais, o valor na coluna kind
é PERSONAL DATABASE
.
Limitações¶
Limitações de notebook privado¶
Os notebooks privados não podem ser agendados.
Limitações do banco de dados pessoal¶
Os usuários só podem criar notebooks e esquemas privados dentro de um banco de dados pessoal. Por exemplo, as tabelas não podem ser criadas e carregadas.
Os usuários não podem alterar, clonar ou replicar seu banco de dados pessoal.
Os usuários não podem mover esquemas entre bancos de dados pessoais e não pessoais.
Os bancos de dados pessoais não podem ser compartilhados com funções.
Os administradores não podem adicionar um banco de dados pessoal a um grupo de replicação para fins de replicação.
Os usuários não podem compartilhar objetos em bancos de dados pessoais.
Os usuários não podem adicionar um banco de dados pessoal a aplicativos nativos (pacotes de aplicativos).
Os usuários e administradores não podem remover e/ou renomear o esquema
USER$.PUBLIC
.
Limitações de colaboração¶
Os administradores não podem criar funções de banco de dados.
Os usuários e administradores não podem conceder privilégios de
CREATE <objeto>
em seus esquemas a outras pessoas.Os usuários não podem conceder privilégios em seus objetos a compartilhamentos ou a pacotes de aplicativos.
Os usuários não podem conceder o privilégio
REFERENCE_USAGE
em seu banco de dados pessoal para compartilhamentos ou pacotes.Os usuários não podem adicionar um banco de dados pessoal a um compartilhamento (para fins de compartilhamento entre contas).