Pular para o conteúdo principal

gerenciar locais externos

Esta página descreve como listar, view, atualizar, conceder permissões, ativar eventos de arquivo e excluir locais externos.

nota

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.

  1. Na barra lateral, clique em Ícone de dados. Catálogo .
  2. Na página de acesso rápido , clique no botão External data > para acessar o site External Locations tab.
  3. Clique no nome de um local externo para acessar view suas propriedades.

Mostrar subsídios em um local externo

view Para acessar as concessões em um local externo, é possível utilizar o Catalog Explorer ou um comando SQL.

  1. Na barra lateral, clique em Ícone de dados. Catálogo .
  2. Na página de acesso rápido , clique no botão External data > para acessar o site External Locations tab.
  3. Clique no nome de um local externo.
  4. Clique em Permissões .

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?

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:

  1. Na barra lateral, clique em Ícone de dados. Catálogo .
  2. Na página de acesso rápido , clique no botão External data > para acessar o site External Locations tab.
  3. Clique no nome de um local externo para abrir suas propriedades.
  4. Clique em Permissões .
  5. Para conceder permissão a usuários ou grupos, selecione cada identidade e clique em Conceder .
  6. Para revogar permissões de usuários ou grupos, selecione cada identidade e clique em Revogar .

Atribuir um local externo a um espaço de trabalho específico

Em default, um local externo é acessível a partir de todo o espaço de trabalho no metastore. Isso significa que, se um usuário tiver recebido um privilégio (como READ FILES) nesse local externo, ele poderá exercer esse privilégio em qualquer workspace anexado ao metastore. Se o senhor usa o espaço de trabalho para isolar o acesso aos dados do usuário, talvez queira permitir o acesso a um local externo somente a partir de um espaço de trabalho específico. Esse recurso é conhecido como workspace binding ou isolamento de local externo.

Os casos de uso típicos para vincular um local externo a um espaço de trabalho específico incluem:

  • Garantir que o engenheiro de dados que tem o privilégio CREATE EXTERNAL TABLE em um local externo que contém dados de produção possa criar tabelas externas nesse local somente em uma produção workspace.
  • Garantir que o engenheiro de dados que tem o privilégio READ FILES em um local externo que contém dados confidenciais só possa usar um espaço de trabalho específico para acessar esses dados.

Para obter mais informações sobre como restringir outros tipos de acesso a dados pelo site workspace, consulte Limitar o acesso do catálogo a um espaço de trabalho específico.

important

Os vínculos do espaço de trabalho são referenciados no momento em que os privilégios em relação ao local externo são exercidos. Por exemplo, se um usuário criar uma tabela externa emitindo a instrução CREATE TABLE myCat.mySch.myTable LOCATION 'gs://mybucket/<path>' a partir do site myWorkspace workspace, as seguintes verificações de vinculação workspace serão realizadas, além das verificações regulares de privilégio do usuário:

  • A localização externa que cobre 'gs://mybucket/<path>' está vinculada a myWorkspace?
  • O catálogo myCat está vinculado a myWorkspace com o nível de acesso Read & Write?

Se a localização externa for subseqüentemente desvinculada de myWorkspace, a tabela externa continuará funcionando.

Esse recurso também permite que o senhor preencha um catálogo a partir de um site central workspace e o disponibilize para outros espaços de trabalho usando associações de catálogos, sem precisar disponibilizar o local externo nesses outros espaços de trabalho.

Vincular um local externo a um ou mais espaços de trabalho

Para atribuir um local externo a um espaço de trabalho específico, o senhor pode usar o Catalog Explorer ou o site Databricks CLI.

Permissões necessárias : administrador do Metastore, proprietário do local externo ou MANAGE no local externo.

nota

Os administradores do metastore podem ver todos os locais externos em um metastore usando o Catalog Explorer, e os proprietários de locais externos podem ver todos os locais externos que possuem em um metastore, independentemente de o local externo estar atribuído ao workspace atual. Os locais externos que não estão atribuídos ao workspace aparecem em cinza.

  1. Efetue login em um workspace vinculado ao metastore.

  2. Na barra lateral, clique em Ícone de dados. Catálogo .

  3. Na página de acesso rápido , clique no botão External data > para acessar o site External Locations tab.

  4. Selecione o local externo e acesse o espaço de trabalho tab.

  5. Na guia Workspaces , desmarque a caixa de seleção Todos os workspaces têm acesso .

    Se o local externo já estiver vinculado a um ou mais espaços de trabalho, essa caixa de seleção já estará desmarcada.

  6. Clique em Atribuir a workspaces e digite ou localize os workspaces que deseja atribuir.

Para revogar o acesso, vá para a tab Workspaces , selecione o workspace e clique em Revogar . Para permitir o acesso de todos os workspaces, marque a caixa de seleção Todos os workspaces têm acesso .

Desvincular um local externo de um workspace

As instruções para revogar o acesso workspace a um local externo usando o Catalog Explorer ou o grupo de comando workspace-bindings CLI estão incluídas em Vincular um local externo a um ou mais espaços de trabalho.

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, é possível utilizar o Catalog Explorer ou um comando SQL.

Permissões necessárias : proprietário do local externo ou usuário com o privilégio MANAGE.

  1. Na barra lateral, clique em Ícone de dados. Catálogo .
  2. Na página de acesso rápido , clique no botão External data > para acessar o site External Locations tab.
  3. Clique no nome de um local externo.
  4. Clique Ícone de edição ao lado de Proprietário .
  5. Digite para pesquisar um diretor e selecioná-lo.
  6. Clique em Salvar .

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.
  • Bloqueia a criação de catálogos usando locais externos somente para leitura.
  • 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:

  1. Na barra lateral, clique em Ícone de dados. Catálogo .
  2. Na página de acesso rápido , clique no botão External data > para acessar o site External Locations tab.
  3. Selecione o local externo, clique no Ícone do menu Kebab. menu ao lado do botão Testar conexão e selecione Editar .
  4. 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 .
  5. Clique em Atualizar .

Configurar um algoritmo de criptografia em um local externo (somente AWS S3)

AWS Oferece suporte à criptografia no lado do servidor (SSE) com Amazon S3 gerenciar chave (SSE-S3) ou AWS KMS chave (SSE-KMS) para proteger os dados em S3. Se o seu bucket S3 exigir criptografia SSE, o senhor poderá configurar um algoritmo de criptografia no local externo para permitir que tabelas e volumes externos no Unity Catalog acessem os dados no seu bucket S3. O SSE não é compatível com tabelas externas compartilhadas usando o Delta Sharing. Para obter mais informações, consulte Configurar criptografia para S3 com KMS.

  1. Na barra lateral, clique em Ícone de dados. Catálogo .

  2. Na parte superior do painel Catálogo , clique no ícone de Ícone de engrenagem. engrenagem e selecione Locais externos .

  3. Selecione o local externo. O local externo deve usar um IAM role para uma credencial de armazenamento.

  4. Clique no Ícone do menu Kebab. menu kebab ao lado do botão Testar conexão e selecione Editar.

  5. Na caixa de diálogo de edição, clique em Opções avançadas .

  6. Em Encryption Algorithm (Algoritmo de criptografia ), selecione SSE-SE ou SSE-KMS , dependendo de sua criptografia key.

    Para SSE-KMS , em Encryption KMS key , cole o ARN do KMS key referenciado pelos clientes ao acessar o local S3.

  7. Clique em Atualizar .

(Recomendado) Habilitar eventos de arquivo para um local externo

Se você quiser ingerir notificações de alteração enviadas pelo provedor de nuvem, habilitar eventos de arquivo para o local externo tem as seguintes vantagens:

Antes de começar

Se o senhor quiser que o Databricks configure a inscrição Pub/Sub ou as filas SQS em seu nome, o 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 sua própria inscrição Pub/Sub, a identidade representada pela credencial de armazenamento deverá ter a seguinte permissão nessas inscrições Pub/Sub:

  • pubsub.subscriptions.consume

Se você quiser criar suas próprias filas SQS, a identidade representada pela credencial de armazenamento deve ter as seguintes permissões nessas filas SQS:

  • sqs:ReceiveMessage
  • sqs:DeleteMessage
  • sqs:PurgeQueue

Etapa 1: Confirme se o Databricks tem acesso aos eventos de arquivo no GCS ou no AWS S3

Antes de ativar os eventos de arquivo para o objeto securizável de local externo, o senhor deve garantir que o seu GCS ou AWS S3 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 ou no AWS S3 para o senhor, também é necessário garantir que o Databricks tenha o acesso adequado.

Atribuir esse acesso é uma etapa recomendada quando você configura as credenciais de armazenamento.

Para baldes GCS

Para verificar se o Databricks pode configurar e assinar as notificações de eventos do seu bucket:

  1. Obtenha o endereço do serviço account email .

    1. Na barra lateral, clique em Ícone de dados. Catálogo .

    2. Na página de acesso rápido , clique no botão External data > para acessar o site External Locations tab.

    3. Selecione o local externo.

    4. Na Visão geral tab, clique no nome da credencial .

    5. Na credencial de armazenamento tabOverview, copie o account endereço de e-mail do serviço.

      Você usará isso na próxima etapa.

  2. Faça login em seu site GCP account.

  3. Acesse IAM & Admin > Roles (Funções ).

  4. Localize o serviço account cujo endereço email o senhor copiou na etapa 1.

  5. 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
  6. Encontre o agente de serviço account email seguindo Obter o agente de serviço do Cloud Storage.

  7. No console do Google Cloud, navegue até IAM & Admin > IAM > Grant Access (Conceder acesso ).

  8. Confirme se o Cloud Storage serviço Agent tem a função Pub/Sub Publisher atribuída.

  9. Se o serviço account não tiver uma função com a configuração mencionada ou se o serviço de armazenamento em nuvem Agent não tiver a função Pub/Sub Publisher , siga as instruções em Criar uma credencial de armazenamento para se conectar a Google Cloud Storage.

Para buckets S3

Para verificar se o Databricks pode configurar e assinar as notificações de eventos do seu bucket:

  1. Obtenha o site IAM role.

    1. Na barra lateral, clique em Ícone de dados. Catálogo .

    2. Na página de acesso rápido , clique no botão External data > para acessar o site External Locations tab.

    3. Selecione o local externo.

    4. Na Visão geral tab, clique no nome da credencial .

    5. Na credencial de armazenamento Overview tab, copie o IAM role (ARN ).

      Você usará isso na próxima etapa.

  2. Faça login em seu site AWS account.

  3. Vá para o IAM e procure a função que o senhor copiou na etapa 1.

  4. Em Permissions policies (Políticas de permissões ), localize a política IAM ou as políticas associadas ao IAM role e abra-a.

  5. Abra a política ou políticas e confirme se há uma que inclua as seguintes propriedades.

    Essa política permite que o site Databricks account atualize a configuração de notificação de eventos do seu bucket, crie um tópico de SNS, crie uma fila de SQS e assine a fila de SQS no tópico de SNS.

    Substitua <BUCKET> pelo nome do seu bucket S3.

    JSON
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "ManagedFileEventsSetupStatement",
    "Effect": "Allow",
    "Action": [
    "s3:GetBucketNotification",
    "s3:PutBucketNotification",
    "sns:ListSubscriptionsByTopic",
    "sns:GetTopicAttributes",
    "sns:SetTopicAttributes",
    "sns:CreateTopic",
    "sns:TagResource",
    "sns:Publish",
    "sns:Subscribe",
    "sqs:CreateQueue",
    "sqs:DeleteMessage",
    "sqs:ReceiveMessage",
    "sqs:SendMessage",
    "sqs:GetQueueUrl",
    "sqs:GetQueueAttributes",
    "sqs:SetQueueAttributes",
    "sqs:TagQueue",
    "sqs:ChangeMessageVisibility",
    "sqs:PurgeQueue"
    ],
    "Resource": ["arn:aws:s3:::<BUCKET>", "arn:aws:sqs:*:*:csms-*", "arn:aws:sns:*:*:csms-*"]
    },
    {
    "Sid": "ManagedFileEventsListStatement",
    "Effect": "Allow",
    "Action": ["sqs:ListQueues", "sqs:ListQueueTags", "sns:ListTopics"],
    "Resource": ["arn:aws:sqs:*:*:csms-*", "arn:aws:sns:*:*:csms-*"]
    },
    {
    "Sid": "ManagedFileEventsTeardownStatement",
    "Effect": "Allow",
    "Action": ["sns:Unsubscribe", "sns:DeleteTopic", "sqs:DeleteQueue"],
    "Resource": ["arn:aws:sqs:*:*:csms-*", "arn:aws:sns:*:*:csms-*"]
    }
    ]
    }

    Consulte também a Etapa 1: Criar um IAM role.

  6. Se essa política estiver faltando, adicione-a ao site IAM role.

Etapa 2: Habilitar eventos de arquivo para o local externo usando o Catalog Explorer

Para ativar eventos de arquivo:

  1. Na barra lateral, clique em Ícone de dados. Catálogo .

  2. Na página de acesso rápido , clique no botão External data > para acessar o site External Locations tab.

  3. Selecione o local externo.

  4. Clique no Ícone do menu Kebab. menu kebab ao lado do botão Testar conexão e selecione Editar.

  5. Na caixa de diálogo de edição, clique em Opções avançadas .

  6. Selecione Habilitar eventos de arquivo .

  7. 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 fila do Google Cloud Pub/Sub inscrição ou SQS.

  8. Se o senhor selecionou o tipo de evento Arquivo fornecido , digite o nome da inscrição Pub/Sub existente ou o URL da fila de armazenamento.

    • Inscrição Pub/Sub: projects/<project-id>/subscriptions/<subscription-name>

    • Fila do AWS SQS: https://sqs.<region>.amazonaws.com/<account-ID>/<queue-name>

  9. Clique em Atualizar .

  10. 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 em locais externos têm as seguintes limitações:

  • A taxa de transferência de eventos é limitada a 2000 arquivos ingeridos por segundo.

  • O senhor não pode marcar recurso de nuvem usando a opção resourceTags. Em vez disso, marque 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 eventos de arquivo para o local de armazenamento raiz do metastore do Unity Catalog se nenhum local externo estiver definido para esse local de armazenamento.

    O senhor não pode configurar eventos de arquivo em locais de armazenamento que não tenham um objeto de local externo definido no Unity Catalog. Algumas implementações do Unity Catalog incluem um local de armazenamento raiz do metastore que não está associado a um local externo. Para determinar se esse é o caso do local de armazenamento raiz do seu metastore:

    1. Como administrador da conta, faça login no console da conta.

    2. Clique em Ícone de dados. Catálogo .

    3. Clique no nome da metastore.

    4. Acesse Configuration tab.

    5. Se houver um valor de caminho de bucket do GCS , então a raiz do metastore não tem um objeto de localização externa definido para ele.

      Para atualizar o armazenamento raiz do metastore para usar um local externo, clique no botão Remover . Um local externo será criado para você. Para obter detalhes, consulte Remover armazenamento em nível de metástore.

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.
SQL
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.
SQL
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 sua nuvem tenant.
SQL
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.

SQL
DROP EXTERNAL LOCATION [IF EXISTS] <location-name>;