Gerenciar provedores do OpenSharing para destinatários de dados
Esta página descreve como usar o Unity Catalog para obter informação sobre provedores de dados que estão compartilhando dados com você usando OpenSharing. Também descreve o que é um objeto de provedor e quando você pode precisar criar um objeto de provedor em seu metastore do Unity Catalog, uma tarefa que a maioria dos destinatários nunca deveria precisar fazer.
Os destinatários dos dados devem ter acesso a um workspace do Databricks habilitado para o Unity Catalog para usar as funcionalidades descritas. Esta página não se aplica a destinatários que não têm workspaces habilitados para o Unity Catalog.
Os destinatários precisam criar objetos de provedor?
No OpenSharing no Databricks, o termo "provedor" pode significar tanto a organização que está compartilhando dados com você quanto um objeto protegível em um metastore do Unity Catalog de um destinatário que representa essa organização. A existência desse objeto protegível no metastore do Unity Catalog de um destinatário permite que os destinatários gerenciem o acesso de sua equipe aos dados compartilhados usando o Unity Catalog.
Como destinatário com acesso a um metastore do Unity Catalog, normalmente não é preciso criar objetos do provedor. Isso ocorre porque os dados devem ser compartilhados com você usando o compartilhamento Databricks-to-Databricks, e os objetos do provedor são criados automaticamente em seu metastore do Unity Catalog.
Se estiver recebendo dados de um provedor que não está compartilhando de um workspace do Databricks habilitado para o Unity Catalog, pode usar o Catalog Explorer para importar o arquivo de credenciais do provedor. Consulte Databricks: Ler dados compartilhados com conectores de compartilhamento aberto do Databricks.
Antes de começar
Para gerenciar provedores em seu workspace Databricks:
- Seu workspace deve estar habilitado para o Unity Catalog.
- Para visualizar um provedor, você deve ser um administrador de metastore, ou um administrador de metastore deve conceder a você o privilégio
USE PROVIDER. - Para criar um provedor, você deve ser um administrador do metastore, ou um administrador do metastore deve conceder a você o privilégio
CREATE PROVIDER. - Para atualizar um provedor, o senhor deve ser o proprietário do objeto do provedor e ter o privilégio
CREATE PROVIDER. Para obter detalhes, consulte Atualizar um provedor (renomear, alterar proprietário, comentar).
Por esse motivo, se o seu workspace foi criado sem um administrador de metastore, um administrador de conta do Databricks deve conceder a um usuário ou grupo a função de administrador de metastore antes que seja possível trabalhar com objetos de provedor no Databricks. Consulte Começar a usar o Unity Catalog e Administradores do metastore.
View de provedores
Para visualizar uma lista de provedores de dados disponíveis, pode-se usar o Catalog Explorer, a CLI do Databricks Unity Catalog, ou o comando SQL SHOW PROVIDERS em um notebook Databricks ou o editor de consultas Databricks SQL.
Permissões necessárias : É necessário ter o privilégio USE PROVIDER para visualizar todos os provedores na metastore. Outros usuários possuem acesso somente aos provedores dos quais são proprietários.
- Catalog Explorer
- SQL
- CLI
-
No seu Databricks workspace, clique em
Catálogo .
-
No topo do painel Catálogo , clique no ícone de
engrenagem e selecione OpenSharing .
Alternativamente, no canto superior direito, clique em **Share > OpenSharing**.
-
Na tab Compartilhado comigo , visualize todos os dados compartilhados com sua organização. Para cada compartilhamento, os seguintes detalhes são fornecidos:
- Nome: o nome da organização, conforme especificado pelo provedor.
- Tipo de autenticação: o método de compartilhamento usado pelo provedor.
- Proprietário: O nome ou email do provedor.
- Criado em: A data e a hora em que o compartilhamento foi criado.
- Descrição: a descrição do compartilhamento.
Execute o seguinte comando em um notebook ou no editor de consultas SQL do Databricks. Opcionalmente, substitua <pattern> por um LIKE predicado.
SHOW PROVIDERS [LIKE <pattern>];
Para mais detalhes sobre SHOW PROVIDERS, consulte SHOW PROVIDERS.
Execute o seguinte comando usando a CLI do Databricks.
databricks providers list
View detalhes do provedor
Para visualizar detalhes sobre um provedor, você pode usar o Catalog Explorer, a CLI do Databricks Unity Catalog, ou o comando SQL DESCRIBE PROVIDER em um Notebook do Databricks ou no editor de consultas do Databricks SQL.
Permissões necessárias : administrador do Metastore, usuário com o privilégio USE PROVIDER ou o proprietário do objeto do provedor.
Detalhes incluem:
- Compartilhamentos compartilhados pelo provedor (consulte Visualizar compartilhamentos que um provedor compartilhou com você).
- O criador do provedor, o carimbo de data/hora de criação, os comentários e o tipo de autenticação (
TOKENouDATABRICKS).TOKENrepresenta provedores que compartilharam dados com você usando o protocolo de compartilhamento OpenSharing Databricks-to-Open.DATABRICKSrepresenta provedores que compartilharam dados com você usando o protocolo de compartilhamento Databricks-to-Databricks. - Se o provedor usar o compartilhamento Databricks-to-Databricks: o cloud, a região e o ID do metastore do Unity Catalog do provedor.
- Se o provedor usar o compartilhamento Databricks-para-Open: o endpoint do seu perfil de destinatário, que é onde o servidor de compartilhamento do OpenSharing está hospedado.
- Catalog Explorer
- SQL
- CLI
-
No seu Databricks workspace, clique em
Catálogo .
-
No topo do painel Catálogo , clique no ícone de
engrenagem e selecione OpenSharing .
Alternativamente, no canto superior direito, clique em **Share > OpenSharing**.
-
Na tab **Compartilhados comigo**, localize e selecione o provedor.
Execute o seguinte comando em um notebook ou no editor de consultas SQL do Databricks.
DESC PROVIDER <provider-name>;
Para obter mais detalhes sobre DESC PROVIDER, consulte DESCRIBE PROVIDER.
Execute o seguinte comando usando a CLI do Databricks.
databricks providers get <provider-name>
Visualizar compartilhamentos que um provedor compartilhou com você
Para visualizar os compartilhamentos que um provedor compartilhou com você, você pode usar o Catalog Explorer, a CLI do Databricks Unity Catalog, ou o comando SQL SHOW SHARES IN PROVIDER em um Notebook do Databricks ou no editor de consultas SQL do Databricks.
Permissões necessárias : administrador do Metastore, usuário com o privilégio USE PROVIDER ou o proprietário do objeto do provedor.
- Catalog Explorer
- SQL
- CLI
-
No seu Databricks workspace, clique em
Catálogo .
-
No topo do painel Catálogo , clique no ícone de
engrenagem e selecione OpenSharing .
Alternativamente, no canto superior direito, clique em **Share > OpenSharing**.
-
Na tab **Compartilhados comigo**, localize e selecione o provedor.
Execute o seguinte comando em um notebook ou no editor de consultas SQL do Databricks. Opcionalmente, substitua <pattern> por um LIKE predicado.
SHOW SHARES IN PROVIDER [LIKE <pattern>];
Para obter mais detalhes sobre SHOW SHARES IN PROVIDER, consulte SHOW SHARES IN PROVIDER.
Execute o seguinte comando usando a CLI do Databricks.
databricks providers list-shares <provider-name>
Atualizar um provedor (renomear, alterar proprietário, comentar)
Você pode usar o Catalog Explorer, a CLI do Databricks Unity Catalog, ou o comando SQL ALTER PROVIDER em um Notebook do Databricks ou no editor de consultas do Databricks SQL para modificar o objeto do provedor em seu metastore do Unity Catalog:
- Renomeie o provedor para modificar a forma como os usuários veem o objeto do provedor em suas interfaces Databricks.
- Altere o proprietário do objeto provedor.
- Adicionar ou modificar comentários.
Permissões necessárias : Você precisa ser o proprietário do objeto do provedor para atualizar o proprietário. Você precisa ser administrador do metastore (ou usuário com o privilégio CREATE PROVIDER) e proprietário do provedor para atualizar o nome do provedor. Você precisa ser o proprietário para atualizar o comentário. O proprietário inicial é o administrador do metastore.
- Catalog Explorer
- SQL
- CLI
-
No seu Databricks workspace, clique em
Catálogo .
-
No topo do painel Catálogo , clique no ícone de
engrenagem e selecione OpenSharing .
Alternativamente, no canto superior direito, clique em **Share > OpenSharing**.
-
Na tab **Compartilhados comigo**, localize e selecione o provedor.
-
Na página de detalhes, atualize o proprietário, o comentário ou o nome do provedor.
Para renomear um provedor, clique no menu kebab
e selecione Renomear .
Execute o seguinte comando em um notebook ou no editor de consultas SQL do Databricks.
ALTER PROVIDER <provider-name> RENAME TO <new-provider-name>
OWNER TO <new-owner>
COMMENT "<comment>";
Para mais detalhes sobre ALTER PROVIDER, consulte ALTER PROVIDER.
Execute o seguinte comando usando a CLI do Databricks. Substitua <provider-name> pelo nome do provedor atual e <new-provider-name> pelo novo nome.
databricks providers update <provider-name> /
--new-name <new-provider-name> /
--comment "<new comment>" /
--owner <new-owner-name>
Altere as credenciais para destinatários abertos
Esta seção se aplica a objetos de provedor com o tipo de autenticação TOKEN, OAUTH_CLIENT_CREDENTIALS ou OIDC_FEDERATION. Provedores Databricks-to-Databricks (tipo de autenticação DATABRICKS) rotacionam automaticamente. Se for acessar dados sem um objeto de provedor, por exemplo, usando o conector delta-sharing Python ou Spark, aplique o novo arquivo de credenciais na sua configuração de conector. Consulte Ler dados compartilhados usando OpenSharing Databricks-to-compartilhamento aberto com tokens portadores.
Um provedor que usa o protocolo de compartilhamento aberto Databricks-to-Open pode renovar seu token de portador e enviar a você um novo arquivo de credenciais. Quando isso ocorre, utilize a API REST do Databricks para atualizar o objeto do provedor. Não exclua e recrie o provedor para aplicar uma nova credencial. Os catálogos vinculam-se ao ID interno do provedor, não ao seu nome. A recriação de um provedor com o mesmo nome rompe a conexão do catálogo com os dados compartilhados.
ALTER PROVIDER, a CLI do Databricks e o Catalog Explorer não oferecem suporte à atualização de credenciais do provedor.
Atualize a credencial
Envie uma solicitação PATCH para o endpoint do provedor com o conteúdo do novo arquivo de credencial no campo recipient_profile_str.
Permissões necessárias: Proprietário do objeto provedor ou administrador do metastore.
- Python
- curl
Execute o seguinte a partir de um notebook no workspace do destinatário. Substitua <provider-name> pelo nome do objeto do provedor em seu metastore e atualize new_profile com os valores do novo arquivo de credenciais.
import json
import requests
new_profile = {
"shareCredentialsVersion": 1,
"bearerToken": "<new-bearer-token>",
"endpoint": "https://<provider-workspace>.cloud.databricks.com/api/2.0/delta-sharing/metastores/<metastore-id>",
}
token = (
dbutils.notebook.entry_point.getDbutils()
.notebook()
.getContext()
.apiToken()
.get()
)
workspace_url = spark.conf.get("spark.databricks.workspaceUrl")
response = requests.patch(
f"https://{workspace_url}/api/2.1/unity-catalog/providers/<provider-name>",
headers={
"Authorization": f"Bearer {token}",
"Content-Type": "application/json",
},
json={"recipient_profile_str": json.dumps(new_profile)},
)
print(response.status_code)
print(response.json())
curl --request PATCH \
--header "Authorization: Bearer $DATABRICKS_TOKEN" \
--header "Content-Type: application/json" \
--url "https://<databricks-instance>/api/2.1/unity-catalog/providers/<provider-name>" \
--data '{
"recipient_profile_str": "<contents of the new credential file>"
}'
Uma rotação bem-sucedida retorna a seguinte resposta com os metadados atualizados do provedor.
{
"name": "<provider-name>",
"authentication_type": "TOKEN",
"owner": "user@example.com",
"recipient_profile": {
"share_credentials_version": 1,
"endpoint": "https://<provider-workspace>.cloud.databricks.com/api/2.0/delta-sharing/metastores/<metastore-id>"
},
"updated_at": 1775804332820,
"updated_by": "user@example.com",
"id": "abcd2a5b-c18e-46eb-ae11-3056cfe99bef"
}
Para obter detalhes, consulte a API REST Atualizar um provedor.
Verifique a rotação.
Confirme se o catálogo, os esquemas e as tabelas ainda estão acessíveis. O nome do catálogo deve ser o mesmo de antes da rotação.
- Catalog Explorer
- SQL
-
No seu Databricks workspace, clique em
Catálogo .
-
No topo do painel Catálogo , clique no ícone de
engrenagem e selecione OpenSharing .
Alternativamente, no canto superior direito, clique em **Share > OpenSharing**.
-
Na guia Compartilhados comigo , localize o provedor.
Os banners de erro anteriores devem desaparecer e os compartilhamentos devem ser listados novamente. O catálogo listado deve ser o mesmo que era anteriormente.
Execute o seguinte SQL em um Notebook ou no editor de consultas do Databricks SQL.
-- The catalog name should match what it was before rotation
SHOW CATALOGS;
-- Schemas in the shared catalog should still appear
SHOW SCHEMAS IN <catalog-name>;
-- Tables should still appear
SHOW TABLES IN <catalog-name>.<schema-name>;
-- A read from a shared table should return data
SELECT * FROM <catalog-name>.<schema-name>.<table-name> LIMIT 10;
Se as queries forem bem-sucedidas, a rotação estará completa e todas as queries, Jobs e painéis existentes continuarão funcionando.
Solução de problemas
Erro | Corrigir |
|---|---|
A solicitação retorna | Você deve ser o proprietário do provedor ou um administrador do metastore para rotacionar as credenciais. Peça a um administrador do metastore para aplicar a rotação ou transferir a propriedade. Consulte Atualizar um provedor (renomear, alterar proprietário, comentar). |
A solicitação retorna | O nome do provedor está incorreto. Execute |
A solicitação retorna | A API atualiza as credenciais apenas para os provedores |
Consultas retornam | O nome do catálogo pode estar incorreto ou a vinculação entre catálogo e provedor pode estar quebrada. Execute |
O Catalog Explorer mostra dados desatualizados ou erros após um | Você está vendo resultados em cache de antes da rotação. Atualize a página ou aguarde alguns minutos. |
Excluir um provedor
Para excluir um provedor, você pode usar o Catalog Explorer, a CLI do Databricks ou o comando SQL DROP PROVIDER em um Notebook do Databricks ou no editor de consultas SQL do Databricks. Você deve ser o proprietário do objeto do provedor para excluir o provedor.
Quando um provedor é excluído, o usuário e os usuários em sua organização (o destinatário) não conseguem mais acessar os dados compartilhados pelo provedor.
Permissões necessárias : Proprietário do objeto do provedor.
- Catalog Explorer
- SQL
- CLI
-
No seu Databricks workspace, clique em
Catálogo .
-
No topo do painel Catálogo , clique no ícone de
engrenagem e selecione OpenSharing .
Alternativamente, no canto superior direito, clique em **Share > OpenSharing**.
-
Na tab **Compartilhados comigo**, localize e selecione o provedor.
-
Clique no
menu kebab e selecione Excluir .
-
Na caixa de diálogo de confirmação, clique em Excluir .
Execute o seguinte comando em um notebook ou no editor de consultas SQL do Databricks.
DROP PROVIDER [IF EXISTS] <provider-name>;
Para mais detalhes sobre DROP PROVIDER, consulte DROP PROVIDER.
Execute o seguinte comando usando a CLI do Databricks.
databricks providers delete <provider-name>
Se a operação for bem-sucedida, nenhum resultado será retornado.