Montando o armazenamento de objetos em nuvem no Databricks

O Databricks permite que os usuários montem o armazenamento de objetos de nuvens 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 nuvens. Os dados montados não funcionam com o Unity Catalog, e a Databricks recomenda a migração do uso de montagens e, em vez disso, o gerenciamento da governança de dados com o Unity Catalog.

Como o Databricks monta o armazenamento de objetos em nuvem?

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

  • Localização do armazenamento de objetos cloud .

  • Especificações do driver para se conectar à account de armazenamento ou 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 objeto (e pode, opcionalmente, codificar credenciais de segurança). O mount_point especifica o caminho local no diretório /mnt . Algumas fontes de armazenamento de objeto 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.

Observação

A Databricks recomenda definir a configuração específica do Spark e do Hadoop como opções usando extra_configs. Isso garante que as configurações estejam vinculadas à montagem e não aos clusters ou à sessão.

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

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

Observação

Além das abordagens descritas neste artigo, você pode automatizar a montagem de um bucket com o provedor Databricks Terraform e databricks_mount.

Desmontar um ponto de montagem

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

dbutils.fs.unmount("/mnt/<mount-name>")

Aviso

Para evitar erros, nunca modifique um ponto de montagem enquanto outro Job estiver 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).

Acesse um bucket do GCS por meio do DBFS

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

Você deve usar o endereço da conta de serviço email ao configurar a segurança dos clusters.

Você pode montar um bucket em O que é o Databricks File System (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 do GCS:

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"}
)
val bucket_name = "my-gcs-bucket"
val mount_name = "my-mount"
dbutils.fs.mount(
  s"gs://${bucket_name}",
  s"/mnt/databricks/${mount_name}",
  extraConfigs=Map("fs.gs.project.id" -> "my-project-id")
)