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 habilitar ou desabilitar notebooks privados em uma conta Snowflake, use o parâmetro ENABLE_NOTEBOOK_CREATION_IN_PERSONAL_DB.
Exemplos¶
Para habilitar notebooks privados na conta, use o comando ALTER ACCOUNT para definir o parâmetro ENABLE_NOTEBOOK_CREATION_IN_PERSONAL_DB como TRUE. Por exemplo:
ALTER ACCOUNT SET ENABLE_NOTEBOOK_CREATION_IN_PERSONAL_DB = 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_NOTEBOOK_CREATION_IN_PERSONAL_DB = FALSE;
Para verificar o valor atual do parâmetro ENABLE_NOTEBOOK_CREATION_IN_PERSONAL_DB, execute o seguinte comando SHOW PARAMETERS:
SHOW PARAMETERS LIKE 'ENABLE_NOTEBOOK_CREATION_IN_PERSONAL_DB' IN ACCOUNT;
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).