CREATE NOTEBOOK¶
Cria um novo notebook Snowflake ou substitui um notebook existente.
Sintaxe¶
CREATE [ OR REPLACE ] NOTEBOOK [ IF NOT EXISTS ] <name>
[ FROM '<source_location>' ]
[ MAIN_FILE = '<main_file_name>' ]
[ COMMENT = '<string_literal>' ]
[ QUERY_WAREHOUSE = <warehouse_to_run_nb_and_sql_queries_in> ]
[ IDLE_AUTO_SHUTDOWN_TIME_SECONDS = <number_of_seconds> ]
[ RUNTIME_NAME = '<runtime_name>' ]
[ COMPUTE_POOL = '<compute_pool_name>' ]
[ WAREHOUSE = <warehouse_to_run_notebook_python_runtime> ]
Parâmetros obrigatórios¶
nameCadeia de caracteres que especifica o identificador (ou seja, nome) do notebook; deve ser único para o esquema no qual o notebook é criado.
Além disso, o identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo,
"My object"). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.Para obter mais informações, consulte Requisitos para identificadores.
Parâmetros opcionais¶
FROM 'source_location'Especifica que o notebook deve ser criado a partir de um arquivo
.ipynbno local de estágio especificado. Para criar o notebook a partir de um arquivo em um estágio, definasource_locationcomo o local do estágio do arquivo e defina o parâmetro MAIN_FILE como o nome do arquivo.Se esse parâmetro não for especificado, o objeto notebook será criado a partir de um notebook modelo.
MAIN_FILE = 'main_file_name'Identificador especificado pelo usuário para o nome do arquivo do notebook. Isso é separado do nome do objeto do notebook, que é especificado no parâmetro
name. Este arquivo deve ser um arquivoipynb.QUERY_WAREHOUSE = warehouse_nameEspecifica o warehouse em que as consultas SQL no notebook são executadas. Este parâmetro é opcional. No entanto, é necessário executar o comando EXECUTE NOTEBOOK.
IDLE_AUTO_SHUTDOWN_TIME_SECONDS = number_of_secondsNúmero de segundos de tempo ocioso antes que o notebook seja desligado automaticamente. Este parâmetro só está disponível para notebooks em execução no Container Runtime. O valor deve ser um inteiro entre 60 e 259200 (72 horas).
Padrão: 3600 segundos
RUNTIME_NAME = runtime_name'SYSTEM$WAREHOUSE_RUNTIME'(padrão): executa o notebook em um warehouse do Snowflake (somente tempo de execução de warehouse).'SYSTEM$BASIC_RUNTIME': executa o notebook em um contêiner Snowpark Container Services (SPCS) usando uma CPU de tempo de execução (somente tempo de execução de contêiner).'SYSTEM$GPU_RUNTIME': executa o notebook em um contêiner Snowpark Container Services (SPCS) usando uma GPU de tempo de execução (somente tempo de execução de contêiner).
Ao especificar um tempo de execução de contêiner (
SYSTEM$BASIC_RUNTIMEouSYSTEM$GPU_RUNTIME), você também deve incluir o parâmetroCOMPUTE_POOL.SYSTEM$WAREHOUSE_RUNTIMEé somente para tempo de execução de warehouse.COMPUTE_POOL = compute_pool_name(Somente para tempo de execução de contêiner) Especifica o pool de computação que hospeda o notebook ao usar um tempo de execução de contêiner. Esse parâmetro é obrigatório quando
RUNTIME_NAMEestá definido comoSYSTEM$BASIC_RUNTIMEouSYSTEM$GPU_RUNTIME.Para obter mais informações sobre pools de computação, consulte Snowpark Container Services: como trabalhar com pools de computação.
WAREHOUSE = warehouse_nameO warehouse é utilizado para executar:
Para tempo de execução de warehouse: tanto o kernel do notebook quanto as consultas SQL (incluindo computação pushdown do Snowpark).
Para tempo de execução de contêiner: somente consultas SQL (incluindo computação pushdown do Snowpark). O kernel do notebook é executado no pool de computação.
If you don’t specify a warehouse when you create a notebook, Snowflake uses the default warehouse defined by the schema lineage parameter
DEFAULT_STREAMLIT_NOTEBOOK_WAREHOUSE. You can set this parameter at the schema, database, or account lineage level to define a preferred warehouse.
Requisitos de controle de acesso¶
A função usada para executar essa operação deve ter, no mínimo, os seguintes privilégios:
Privilégio |
Objeto |
|---|---|
USAGE |
Banco de dados |
USAGE ou OWNERSHIP |
Esquema |
CREATE NOTEBOOK |
Esquema |
A operação em um objeto de esquema requer pelo menos um privilégio no banco de dados pai e um privilégio no esquema pai.
Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.
Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.
Notas de uso¶
Ao criar um notebook que usa um tempo de execução de contêiner, o notebook é executado dentro de um ambiente Snowpark Container Services. Os notebooks de tempo de execução de contêiner devem especificar os parâmetros
RUNTIME_NAMEeCOMPUTE_POOL.Em relação aos metadados:
Atenção
Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.
As cláusulas OR REPLACE e IF NOT EXISTS são mutuamente exclusivas. Os dois não podem ser usados na mesma instrução.
Instruções CREATE OR REPLACE <object> são atômicas. Ou seja, quando um objeto é substituído, o objeto antigo é excluído e o novo objeto é criado em uma única transação.
Exemplos¶
O seguinte cria um notebook chamado mynotebook:
CREATE NOTEBOOK mynotebook;
Embora o parâmetro QUERY_WAREHOUSE seja opcional, é recomendável especificá-lo ao criar um novo notebook para que o EXECUTE NOTEBOOK possa ser executado no warehouse.
CREATE NOTEBOOK mynotebook
QUERY_WAREHOUSE = my_warehouse;
O exemplo a seguir cria um notebook a partir de um arquivo ipynb em um estágio:
CREATE NOTEBOOK mynotebook
FROM '@my_db.my_schema.my_stage'
MAIN_FILE = 'my_notebook_file.ipynb'
QUERY_WAREHOUSE = my_warehouse;
The following example creates a notebook using Container Runtime (CPU):
CREATE NOTEBOOK my_cpu_notebook
RUNTIME_NAME = 'SYSTEM$BASIC_RUNTIME'
COMPUTE_POOL = 'my_compute_pool';
The following example creates a notebook using Container Runtime (GPU):
CREATE NOTEBOOK my_gpu_notebook
RUNTIME_NAME = 'SYSTEM$GPU_RUNTIME'
COMPUTE_POOL = 'gpu_pool_1';