Montagem do armazenamento de objetos em nuvem na Databricks
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
.
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.
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.
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:
dbutils.fs.unmount("/mnt/<mount-name>")
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
- Scala
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")
)