Isolamento Notebook

O isolamento Notebook refere-se à visibilidade de variáveis e classes entre Notebook. Databricks oferece suporte a dois tipos de isolamento:

  • Isolamento de variável e classe

  • Isolamento da sessão do Spark

Observação

Databricks gerenciam o isolamento do usuário usando modos de acesso configurados em clusters.

  • Nenhum isolamento compartilhado: vários usuários podem usar os mesmos clusters. Os usuários compartilham credenciais definidas no nível clusters . Nenhum controle de acesso a dados é aplicado.

  • Único usuário: Somente o usuário nomeado pode usar os clusters. Execução de todos os comandos com os privilégios desse usuário. As ACLs de tabela no Hive metastore não são aplicadas. Este modo de acesso oferece suporte ao Unity Catalog.

  • Compartilhado: vários usuários podem usar os mesmos clusters. Os usuários são totalmente isolados uns dos outros e cada usuário executa comandos com seus próprios privilégios. As ACLs de tabela no Hive metastore são impostas. Este modo de acesso oferece suporte ao Unity Catalog.

Isolamento de variável e classe

Variáveis e classes estão disponíveis apenas no Notebook atual. Por exemplo, dois Notebook conectados aos mesmos clusters podem definir variáveis e classes com o mesmo nome, mas esses objetos são distintos.

Para definir uma classe visível para todos Notebook conectados aos mesmos clusters, defina a classe em uma célula de pacote. Em seguida, você pode acessar a classe usando seu nome totalmente qualificado, que é o mesmo que acessar uma classe em uma biblioteca Scala ou Java anexada.

Isolamento da sessão do Spark

Cada Notebook anexado a um clusters tem uma variável predefinida chamada spark que representa um SparkSession. SparkSession é o ponto de entrada para usar as APIs do Spark, bem como definir configurações Runtime .

O isolamento da sessão do Spark é habilitado por default. Você também pode usar temporária global view para compartilhar temporária view no Notebook. Consulte CREATE VIEW. Para desativar o isolamento de sessão do Spark, defina spark.databricks.session.share como true na configuração do Spark.

Importante

A definição de spark.databricks.session.share true interrompe o monitoramento usado pelas células Notebook transmitidas e Job transmitido. Especificamente:

  • Os gráficos nas células transmitidas não são exibidos.

  • Os jobs não bloqueiam enquanto a transmissão estiver rodando (eles apenas terminam “com sucesso”, interrompendo a transmissão).

  • transmissão no Job não são monitoradas para rescisão. Em vez disso, você deve chamar awaitTermination() manualmente.

  • Chamar Criar uma nova visualização em DataFrames transmitidos não funciona.

As células que acionam comandos em outros idiomas (ou seja, células que usam %scala, %python, %r e %sql) e células que incluem outro Notebook (ou seja, células que usam %run) fazem parte do Notebook atual. Assim, essas células estão na mesma sessão que as outras células Notebook . Por outro lado, um fluxo de trabalhoNotebook executa um Notebook com um SparkSession isolado, o que significa que view temporária definida em tal Notebook não é visível em outro Notebook.