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> ]
Copy

Parâmetros obrigatórios

name

Cadeia 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 .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.

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 arquivo ipynb.

QUERY_WAREHOUSE = warehouse_name

Especifica 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_seconds

Nú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' (default): Runs the notebook in a Snowflake warehouse (Warehouse Runtime only).

  • 'SYSTEM$BASIC_RUNTIME': Runs the notebook in a Snowpark Container Services (SPCS) container using a CPU runtime (Container Runtime only).

  • 'SYSTEM$GPU_RUNTIME': Runs the notebook in a Snowpark Container Services (SPCS) container using a GPU runtime (Container Runtime only).

When specifying a Container Runtime (SYSTEM$BASIC_RUNTIME or SYSTEM$GPU_RUNTIME), you must also include the COMPUTE_POOL parameter. SYSTEM$WAREHOUSE_RUNTIME is for Warehouse Runtime only.

COMPUTE_POOL = compute_pool_name

(Container Runtime only) Specifies the compute pool that hosts the notebook when using a Container Runtime. This parameter is required when RUNTIME_NAME is set to SYSTEM$BASIC_RUNTIME or SYSTEM$GPU_RUNTIME.

For more information about compute pools, see Snowpark Container Services: como trabalhar com pools de computação.

WAREHOUSE = warehouse_name

The warehouse is used to run:

  • For Warehouse Runtime: Both the notebook kernel and SQL queries (including Snowpark pushdown compute).

  • For Container Runtime: Only SQL queries (including Snowpark pushdown compute). The notebook kernel runs on the compute pool.

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

Operating on an object in a schema requires at least one privilege on the parent database and at least one privilege on the parent schema.

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

  • When creating a notebook that uses a Container Runtime, the notebook runs inside a Snowpark Container Services environment. Container runtime notebooks must specify both the RUNTIME_NAME and COMPUTE_POOL parameters.

  • 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;
Copy

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;
Copy

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;
Copy

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';
Copy

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';
Copy