Pular para o conteúdo principal

Montagem do armazenamento de objetos em nuvem na Databricks

important

As montagens são um padrão de acesso legado. A Databricks recomenda o uso do Unity Catalog para gerenciar todo o acesso aos dados. Consulte Conectar-se ao serviço e armazenamento de objetos na nuvem usando Unity Catalog.

O Databricks permite que os usuários montem o armazenamento de objetos em cloud no Databricks File System (DBFS) para simplificar os padrões de acesso a dados para usuários que não estão familiarizados com os conceitos de cloud. Dados montados não funcionam com o Unity Catalog, e o Databricks recomenda migrar para o gerenciamento da governança de dados com o Unity Catalog em vez de usar montagens.

Como a Databricks monta o armazenamento de objetos na nuvem?

As montagens do Databricks criam um link entre um workspace e o armazenamento de objetos em cloud, o que permite que você interaja com o armazenamento de objetos em cloud usando caminhos de arquivo familiares relativos ao sistema de arquivos do Databricks. As montagens funcionam criando um alias local no diretório /mnt que armazena as seguintes informações:

  • Localização do armazenamento de objetos em cloud.
  • Especificações do driver para conectar-se à account de armazenamento ou ao contêiner.
  • Credenciais de segurança necessárias para acessar os dados.

Qual é a sintaxe para montar o armazenamento?

O source especifica o URI do armazenamento de objetos (e pode, opcionalmente, codificar credenciais de segurança). mount_point especifica o caminho local no diretório /mnt . Algumas fontes de armazenamento de objetos suportam um argumento encryption_type opcional. Para alguns padrões de acesso, você pode passar especificações de configuração adicionais como um dicionário para extra_configs.

nota

Databricks recomenda definir configurações específicas de Spark e Hadoop para o mount como opções usando extra_configs. Isso garante que as configurações estejam vinculadas ao mount e não ao cluster ou sessão.

Python
dbutils.fs.mount(
source: str,
mount_point: str,
encryption_type: Optional[str] = "",
extra_configs: Optional[dict[str:str]] = None
)

Verifique com os administradores do seu workspace e de cloud antes de configurar ou alterar as montagens de dados, pois uma configuração inadequada pode fornecer acesso inseguro a todos os usuários do seu workspace.

nota

Além das abordagens descritas neste artigo, o senhor pode automatizar a montagem de um bucket com o provedorDatabricks Terraform e databricks_mount.

desmontar um ponto de montagem

Para desmontar um ponto de montagem, use o seguinte comando:

Python
dbutils.fs.unmount("/mnt/<mount-name>")
atenção

Para evitar erros, nunca modifique um ponto de montagem enquanto outros trabalhos estiverem lendo ou gravando nele. Depois de modificar uma montagem, sempre execute dbutils.fs.refreshMounts() em todos os outros clusters em execução para propagar quaisquer atualizações de montagem. Consulte o comando refreshMounts (dbutils.fs.refreshMounts).

Acessar um bucket GCS por meio do DBFS

Para trabalhar com montagens DBFS, o nome do seu bucket não deve conter um sublinhado. Para gravar em um bucket do GCS, você deve fornecer um ProjectId do Google Cloud para o bucket.

O senhor deve usar o endereço do serviço account email ao configurar a segurança do seu clustering.

O senhor pode montar um bucket no What is DBFS? A montagem é um ponteiro para um local do GCS, portanto, os dados nunca são sincronizados localmente.

O exemplo a seguir mostra a sintaxe básica para montar um bucket GCS:

Python
bucket_name = "my-gcs-bucket"
mount_name = "my-mount"
dbutils.fs.mount(
f"gs://{bucket_name}",
f"/mnt/databricks/{mount_name}",
extra_configs = {"fs.gs.project.id": "my-project-id"}
)