gerenciar locais externos
Este artigo descreve como listar, view, atualizar, conceder permissões, ativar eventos de arquivos e excluir locais externos.
A Databricks recomenda controlar o acesso aos arquivos usando volumes. Consulte O que são volumes do Unity Catalog?
Descreva um local externo
Para ver as propriedades de um local externo, inclusive as permissões e o acesso workspace, o senhor pode usar o Catalog Explorer ou um comando SQL.
- Catalog Explorer
- SQL
- Na barra lateral, clique em
Catálogo .
- Na página de acesso rápido , clique no botão External data > para acessar o site External Locations tab.
- Clique no nome de um local externo para acessar view suas propriedades.
Execute o seguinte comando em um Notebook ou no editor Databricks SQL. Substitua <location-name>
pelo nome do local externo.
DESCRIBE EXTERNAL LOCATION <location-name>;
Mostrar subsídios em um local externo
Para mostrar as concessões em um local externo, use um comando como o seguinte. Opcionalmente, você pode filtrar os resultados para mostrar somente as concessões para o principal especificado.
SHOW GRANTS [<principal>] ON EXTERNAL LOCATION <location-name>;
Substitua os valores temporários:
<location-name>
: O nome do local externo que autoriza a leitura e a gravação no bucket GCS em sua nuvem tenant.<principal>
: O endereço email de um usuário de nível accountou o nome de um grupo de nível account.
Se um grupo ou nome de usuário contiver um espaço ou símbolo @
, use acentos (
) ao redor dele, não apóstrofos.
Conceder permissões em um local externo
Esta seção descreve como conceder e revogar permissões em um local externo usando o Catalog Explorer e SQL comando em uma consulta do Notebook ou SQL. Para obter informações sobre como usar o Databricks CLI ou Terraform, consulte a documentaçãoDatabricks Terraform e What is the Databricks CLI?
Você pode conceder as seguintes permissões em um local externo:
CREATE EXTERNAL TABLE
CREATE EXTERNAL VOLUME
CREATE MANAGED STORAGE
Permissões necessárias : o privilégio CREATE EXTERNAL LOCATION
na metastore e na credencial de armazenamento referenciada no local externo ou o privilégio MANAGE
no local externo. Os administradores do metastore têm CREATE EXTERNAL LOCATION
no metastore em default.
Para conceder permissão para usar um local externo:
- Catalog Explorer
- SQL
- Na barra lateral, clique em
Catálogo .
- Na página de acesso rápido , clique no botão External data > para acessar o site External Locations tab.
- Clique no nome de um local externo para abrir suas propriedades.
- Clique em Permissões .
- Para conceder permissão a usuários ou grupos, selecione cada identidade e clique em Conceder .
- Para revogar permissões de usuários ou grupos, selecione cada identidade e clique em Revogar .
Execute o seguinte comando SQL em um editor de consultas do Notebook ou SQL. Esse exemplo concede a capacidade de criar uma tabela externa que faça referência ao local externo:
GRANT CREATE EXTERNAL TABLE ON EXTERNAL LOCATION <location-name> TO <principal>;
Substitua os valores temporários:
<location-name>
: O nome do local externo que autoriza a leitura e a gravação no bucket GCS em sua nuvem tenant.<principal>
: O endereço email de um usuário de nível accountou o nome de um grupo de nível account.
Se um grupo ou nome de usuário contiver um espaço ou símbolo @
, use marcações invertidas ao redor dele (não apóstrofos). Por exemplo, equipe financeira .
Alterar o proprietário de um local externo
O criador de um local externo é seu proprietário inicial. Para alterar o proprietário para um usuário ou grupo de nível accountdiferente, execute o seguinte comando em um Notebook ou no editor Databricks SQL ou use o Catalog Explorer.
Permissões necessárias : proprietário do local externo ou usuário com o privilégio MANAGE
.
Substitua os valores temporários:
<location-name>
: nome da credencial.<principal>
: O endereço email de um usuário de nível accountou o nome de um grupo de nível account.
ALTER EXTERNAL LOCATION <location-name> OWNER TO <principal>
Marcar um local externo como somente para leitura
Se quiser que os usuários tenham acesso somente para leitura a um local externo, você pode usar o Catalog Explorer para marcar o local externo como somente para leitura.
Tornando locais externos somente para leitura:
- Impede que os usuários gravem em arquivos nesses locais externos, independentemente de quaisquer permissões de gravação concedidas pelo serviço account subjacente à credencial de armazenamento e independentemente das permissões Unity Catalog concedidas nesse local externo.
- Impede que os usuários criem tabelas ou volumes gerenciáveis nesses locais externos.
- Permite que o sistema valide adequadamente a localização externa no momento da criação.
Você pode marcar locais externos como somente para leitura ao criá-los.
Você também pode usar o Catalog Explorer para alterar o status somente para leitura após criar um local externo:
- Na barra lateral, clique em
Catálogo .
- Na página de acesso rápido , clique no botão External data > para acessar o site External Locations tab.
- Selecione o local externo, clique no
menu ao lado do botão Testar conexão e selecione Editar .
- Na caixa de diálogo de edição, clique em Opções avançadas e selecione a opção Limitar para uso somente para leitura .
- Clique em Atualizar .
(Recomendado) Habilitar eventos de arquivo para um local externo
Visualização
Esse recurso está em Public Preview.
Se o senhor quiser ingerir notificações de alteração que são enviadas pelo provedor de nuvem, habilitar a gerenciar eventos de arquivo para o local externo tem as seguintes vantagens:
- Facilita a configuração de notificações de arquivos para o Auto Loader. Especificamente, ele permite a descoberta de arquivos incrementais com desempenho semelhante ao da notificação no Auto Loader, definindo
cloudFiles.useManagedFileEvents
comotrue
. Consulte O que é o modo de notificação de arquivo do Auto Loader? - Melhora a eficiência e a capacidade dos acionadores de chegada de arquivos para o trabalho. Consulte Trigger Job quando novos arquivos chegarem.
Antes de começar
Se o senhor quiser que o Databricks configure filas no GCS em seu nome, seu local externo deverá fazer referência a uma credencial de armazenamento que forneça as permissões adequadas para isso. Consulte a próxima etapa para obter instruções.
Se o senhor quiser criar suas próprias filas no GCS, a identidade representada pela credencial de armazenamento deverá ter a seguinte permissão nessas filas:
pubsub.subscriptions.consume
Etapa 1: confirmar se o Databricks tem acesso aos eventos de arquivo no GCS
Antes de ativar os eventos de arquivo para o objeto securizável de local externo, o senhor deve garantir que o site GCS account esteja configurado para dar a Databricks acesso aos eventos de arquivo que ele emite. Se quiser que o Databricks configure eventos de arquivo no GCS para o senhor, também é necessário garantir que o Databricks tenha o acesso adequado.
A atribuição desse acesso é uma etapa opcional quando o senhor configura um serviço account que pode acessar os buckets GCS usando Databricks e Unity Catalog. Para verificar se o Databricks pode configurar e assinar as notificações de eventos do seu bucket:
-
Obtenha o endereço do serviço account email .
-
Na barra lateral, clique em
Catálogo .
-
Na página de acesso rápido , clique no botão External data > para acessar o site External Locations tab.
-
Selecione o local externo.
-
Na Visão geral tab, clique no nome da credencial .
-
Na credencial de armazenamento tabOverview, copie o account endereço de e-mail do serviço.
Você usará isso na próxima etapa.
-
-
Faça login em seu site GCP account.
-
Acesse IAM & Admin > Roles (Funções ).
-
Localize o serviço account cujo endereço email o senhor copiou na etapa 1.
-
Confirme se foi atribuída uma função personalizada que inclui as seguintes configurações:
pubsub.subscriptions.consume
pubsub.subscriptions.create
pubsub.subscriptions.delete
pubsub.subscriptions.get
pubsub.subscriptions.list
pubsub.subscriptions.update
pubsub.topics.attachSubscription
pubsub.topics.create
pubsub.topics.delete
pubsub.topics.get
pubsub.topics.list
pubsub.topics.update
storage.buckets.update -
Se o serviço account não tiver uma função com essas configurações, crie uma função personalizada que tenha e atribua-a ao serviço account. Para obter instruções, consulte (Recomendado) Configurar permissões para eventos de arquivo.
Etapa 2: Habilitar eventos de arquivo para o local externo usando o Catalog Explorer
Para ativar eventos de arquivo:
-
Na barra lateral, clique em
Catálogo .
-
Na página de acesso rápido , clique no botão External data > para acessar o site External Locations tab.
-
Selecione o local externo.
-
Clique no
menu kebab ao lado do botão Testar conexão e selecione Editar.
-
Na caixa de diálogo de edição, clique em Opções avançadas .
-
Selecione Habilitar eventos de arquivo .
-
Selecione o tipo de evento Arquivo :
Automático : (Recomendado) selecione esta opção se quiser que o Databricks configure a inscrição e os eventos para o senhor.
Fornecido : Selecione essa opção se o senhor já tiver configurado uma inscrição no Google Cloud Pub/Sub.
-
Se o senhor selecionou o tipo de evento Arquivo fornecido , digite o nome da inscrição Pub/Sub existente:
projects/<project-id>/subscriptions/<subscription-name>
. -
Clique em Atualizar .
-
Aguarde alguns segundos e clique em Testar conexão na página principal de edição de localização externa para confirmar se os eventos do arquivo foram habilitados com êxito.
Limitações de eventos de arquivo
Os eventos de arquivo gerenciar têm as seguintes limitações:
-
A taxa de transferência de eventos é limitada a 2000 arquivos ingeridos por segundo.
-
Com eventos de arquivo gerenciar, o senhor não pode marcar o recurso de nuvem usando a opção
resourceTags
. Em vez disso, o senhor pode marcar o recurso usando o console na nuvem depois que o serviço Auto Loader criar a fila e o recurso de inscrição. -
O senhor não pode configurar notificações de arquivo para o local de armazenamento raiz do metastore do Unity Catalog.
Especificamente, o senhor não pode configurar notificações de arquivo usando eventos de arquivo em locais de armazenamento que não tenham um objeto de local externo definido no Unity Catalog. As implementações mais antigas do Unity Catalog incluem um local de armazenamento raiz do metastore que não está associado a um local externo. Em implementações mais recentes, especificamente aquelas no espaço de trabalho que foram ativadas para Unity Catalog automaticamente, o armazenamento no nível do metastore tem um local externo definido para ele, e os eventos de arquivo gerenciar são suportados nesse local de armazenamento. Se o senhor estiver tão confuso quanto eu, consulte Ativação automática do Unity Catalog.
Modificar um local externo
O proprietário de um local externo ou um usuário com o privilégio MANAGE
pode renomear, alterar o URI e alterar a credencial de armazenamento do local externo.
Para renomear um local externo, faça o seguinte:
Execute o seguinte comando em um notebook ou no editor Databricks SQL. Substitua os valores temporários:
<location-name>
: O nome do local.<new-location-name>
: Um novo nome para o local.
ALTER EXTERNAL LOCATION <location-name> RENAME TO <new-location-name>;
Para alterar o URI para o qual um local externo aponta em seu locatário de nuvem, faça o seguinte:
Execute o seguinte comando em um notebook ou no editor Databricks SQL. Substitua os valores temporários:
<location-name>
: O nome do local externo.<url>
: o novo URL de armazenamento ao qual o local deve autorizar o acesso em seu locatário de nuvem.
ALTER EXTERNAL LOCATION location_name SET URL '<url>' [FORCE];
A opção FORCE
altera o URL mesmo se as tabelas externas dependerem do local externo.
Para alterar a credencial de armazenamento usada por um local externo, faça o seguinte:
Execute o seguinte comando em um notebook ou no editor Databricks SQL. Substitua os valores temporários:
<location-name>
: O nome do local externo.<credential-name>
: o nome da credencial de armazenamento que concede acesso à URL do local em seu locatário de nuvem.
ALTER EXTERNAL LOCATION <location-name> SET STORAGE CREDENTIAL <credential-name>;
Excluir um local externo
Para excluir (descartar) um local externo, você deve ser seu proprietário ou ter o privilégio MANAGE
no local externo. Para excluir um local externo, faça o seguinte:
Execute o seguinte comando em um Notebook ou no editor Databricks SQL. Os itens entre colchetes são opcionais. Substitua <location-name>
pelo nome do local externo.
DROP EXTERNAL LOCATION [IF EXISTS] <location-name>;