Gerenciar provedores Delta Sharing para destinatários de dados
Esta página descreve como usar Unity Catalog para obter informações sobre provedores de dados que compartilham dados com você usando Delta Sharing. Este documento também descreve o que é um objeto provedor e quando você pode precisar criar um objeto provedor no seu metastore Unity Catalog , uma tarefa que a maioria dos destinatários nunca precisará realizar.
Os destinatários dos dados devem ter acesso a um workspace Databricks que esteja habilitado para o Unity Catalog para usar as funcionalidades descritas. Esta página não se aplica a destinatários que não possuem um espaço de trabalho com o Catálogo Unity habilitado.
Os destinatários precisam criar objetos de provedor?
Em Delta Sharing em Databricks, o termo "provedor" pode significar tanto a organização que está compartilhando dados com o senhor quanto um objeto seguro no metastore Unity Catalog de um destinatário que representa essa organização. A existência desse objeto seguro no metastore Unity Catalog de um destinatário permite que os destinatários gerenciem o acesso de sua equipe ao uso compartilhado de dados Unity Catalog.
Como destinatário com acesso a um metastore do Unity Catalog, o senhor normalmente não precisa criar objetos de provedor. Isso ocorre porque os dados devem ser compartilhados com o senhor usando o compartilhamento Databricks-to-Databricks, e os objetos do provedor são criados automaticamente no metastore do Unity Catalog.
Se estiver recebendo dados de um provedor que não esteja compartilhando de um Unity Catalog habilitado Databricks workspace, o senhor pode usar o Catalog Explorer para importar o arquivo de credenciais do provedor. Consulte:Databricks Leia os conectores de uso compartilhado de dados de compartilhamento aberto.
Antes de começar
Para gerenciar provedores em seu site Databricks workspace:
- Seu workspace deve estar habilitado para o Unity Catalog.
- Para view um provedor, o senhor deve ser um administrador de metastore ou um administrador de metastore deve conceder-lhe o privilégio
USE PROVIDER. - Para criar um provedor, você deve ser administrador da metastore ou um administrador da metastore deve conceder a você o privilégio
CREATE PROVIDER. - Para atualizar um provedor, você 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 do Databricks account deverá conceder a um usuário ou grupo a função de administrador de metastore antes que o senhor possa trabalhar com objetos de provedor no Databricks. Consulte Ativação automática do Unity Catalog e (Opcional) Atribuir a função de administrador do metastore.
ver fornecedores
Para view uma lista de provedores de dados disponíveis, o senhor pode usar o Catalog Explorer, o Databricks Unity Catalog CLI, ou o comando SHOW PROVIDERS SQL em um Databricks Notebook ou o editor de consultas Databricks SQL.
Permissões necessárias : Você deve ter o privilégio USE PROVIDER para view todos os provedores no metastore. Outros usuários têm acesso apenas aos provedores que possuem.
- Catalog Explorer
- SQL
- CLI
-
Em seu site Databricks workspace, clique em
Catalog .
-
Na parte superior do painel Catálogo , clique no ícone de engrenagem
e selecione Delta Sharing .
Alternativamente, no canto superior direito, clique em Compartilhar > Delta Sharing .
-
Em Compartilhado comigo , tab, view, 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 utilizado pelo provedor.
- Proprietário: O nome do provedor ou email.
- 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 Databricks SQL. Opcionalmente, substitua <pattern> por um predicadoLIKE.
SHOW PROVIDERS [LIKE <pattern>];
Para obter mais detalhes sobre SHOW PROVIDERS, consulte SHOW PROVIDERS.
execute o seguinte comando usando o Databricks CLI.
databricks providers list
visualizar detalhes do provedor
Para view detalhes sobre um provedor, o senhor pode usar o Catalog Explorer, o Databricks Unity Catalog CLI, ou o comando DESCRIBE PROVIDER SQL em um Databricks Notebook ou o editor de consultas Databricks SQL.
Permissões necessárias : administrador do Metastore, usuário com o privilégio USE PROVIDER ou proprietário do objeto do provedor.
Os detalhes incluem:
- Compartilhamentos compartilhados pelo provedor (veja os compartilhamentos que um provedor compartilhou com o senhor).
- O criador do provedor, o carimbo de data e hora de criação, os comentários e o tipo de autenticação (
TOKENouDATABRICKS).TOKENrepresenta os provedores que compartilharam dados com o senhor usando o protocolo de compartilhamento aberto Delta Sharing.DATABRICKSrepresenta os provedores que compartilharam dados com o senhor usando o protocolo de compartilhamento Databricks-to-Databricks. - Se o provedor usar o compartilhamento Databricks-to-Databricks: a nuvem, a região e o ID do metastore do Unity Catalog do provedor.
- Se o provedor usar compartilhamento aberto: seu endpoint de perfil de destinatário, que é o local onde o servidor de compartilhamento Delta Sharing está hospedado.
- Catalog Explorer
- SQL
- CLI
-
Em seu site Databricks workspace, clique em
Catalog .
-
Na parte superior do painel Catálogo , clique no ícone de engrenagem
e selecione Delta Sharing .
Alternativamente, no canto superior direito, clique em Compartilhar > Delta Sharing .
-
No Shared with me tab, 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 o Databricks CLI.
databricks providers get <provider-name>
visualizar ações que um provedor compartilhou com o senhor
Para view os compartilhamentos que um provedor compartilhou com o senhor, é possível usar o Catalog Explorer, o Databricks Unity Catalog CLI, ou o comando SHOW SHARES IN PROVIDER SQL em um Databricks Notebook ou o editor de consultas Databricks SQL.
Permissões necessárias : administrador do Metastore, usuário com o privilégio USE PROVIDER ou proprietário do objeto do provedor.
- Catalog Explorer
- SQL
- CLI
-
Em seu site Databricks workspace, clique em
Catalog .
-
Na parte superior do painel Catálogo , clique no ícone de engrenagem
e selecione Delta Sharing .
Alternativamente, no canto superior direito, clique em Compartilhar > Delta Sharing .
-
No Shared with me tab, localize e selecione o provedor.
Execute o seguinte comando em um Notebook ou no editor de consultas Databricks SQL. Opcionalmente, substitua <pattern> por um predicadoLIKE.
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 o Databricks CLI.
databricks providers list-shares <provider-name>
Atualizar um provedor (renomear, alterar proprietário, comentar)
O senhor pode usar o Catalog Explorer, o Databricks Unity Catalog CLI, ou o comando ALTER PROVIDER SQL em um Databricks Notebook ou o editor de consultas Databricks SQL para modificar o objeto do provedor em seu Unity Catalog metastore:
- Renomeie o provedor para modificar a forma como os usuários veem o objeto do provedor em suas interfaces do Databricks.
- Altere o proprietário do objeto do provedor.
- Adicione ou modifique comentários.
Permissões necessárias : você deve ser o proprietário do objeto do provedor para atualizar o proprietário. Você precisa ser administrador da 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 da metastore.
- Catalog Explorer
- SQL
- CLI
-
Em seu site Databricks workspace, clique em
Catalog .
-
Na parte superior do painel Catálogo , clique no ícone de engrenagem
e selecione Delta Sharing .
Alternativamente, no canto superior direito, clique em Compartilhar > Delta Sharing .
-
No Shared with me tab, localize e selecione o provedor.
-
Na página de detalhes, atualize o nome do proprietário, do comentário ou 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 obter mais detalhes sobre ALTER PROVIDER, consulte ALTER PROVIDER.
execute o seguinte comando usando o Databricks CLI. 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>
Rotacionar credenciais para destinatários abertos
Esta seção se aplica a objetos de provedor com tipo de autenticação TOKEN, OAUTH_CLIENT_CREDENTIALS ou OIDC_FEDERATION. Os provedores Databricks-to-Databricks (tipo de autenticação DATABRICKS) rotacionam automaticamente. Se você acessar dados sem um objeto provedor, por exemplo, usando o conector Python ou Spark delta-sharing , aplique o novo arquivo de credenciais na configuração do seu conector. Consulte a seção "Ler dados compartilhados usando o compartilhamento aberto Delta Sharing com tokens de portador".
Um provedor que utiliza o protocolo Open Compartilha pode rotacionar seus tokens de portador e enviar um novo arquivo de credenciais. Quando isso acontecer, use a API REST do Databricks para atualizar o objeto do provedor. Não descarte e recrie o provedor para aplicar uma nova credencial. Os catálogos estão vinculados ao ID interno do provedor, não ao seu nome. Recriar um provedor com o mesmo nome interrompe a conexão do catálogo com os dados compartilhados.
ALTER PROVIDERO Databricks CLI e o Catalog Explorer não oferecem suporte à atualização de credenciais do provedor.
Atualizar as credenciais
Envie uma solicitação PATCH para o endpoint do provedor com o conteúdo do novo arquivo de credenciais no campo recipient_profile_str .
Permissões necessárias : Proprietário do objeto do provedor ou administrador do metastore.
- Python
- curl
executar o seguinte a partir de um Notebook no workspace do destinatário. Substitua <provider-name> pelo nome do objeto 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
-
Em seu site Databricks workspace, clique em
Catalog .
-
Na parte superior do painel Catálogo , clique no ícone de engrenagem
e selecione Delta Sharing .
Alternativamente, no canto superior direito, clique em Compartilhar > Delta Sharing .
-
Na tab "Compartilhado comigo" , encontre seu provedor.
Os avisos de erro anteriores devem ter desaparecido e as ações devem ser listadas novamente. O catálogo listado deve ser o mesmo que era anteriormente.
Execute o seguinte SQL em um Notebook ou no editor de consultas 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 consultas forem bem-sucedidas, a rotação estará concluída e todas as consultas, tarefas e painéis existentes continuarão funcionando.
Solução de problemas
Erro | Consertar |
|---|---|
Devoluções de solicitações | Você precisa ser o proprietário do provedor ou um administrador do metastore para rotacionar as credenciais. Solicite a um administrador do metastore que aplique a rotação ou transfira a propriedade. Veja Atualizar ações. |
Devoluções de solicitações | O nome do fornecedor está incorreto. execução |
A solicitação retorna | A API atualiza as credenciais apenas para os provedores |
As consultas retornam | O nome do catálogo pode estar incorreto ou a vinculação entre o catálogo e o provedor pode estar quebrada. execução |
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 Databricks ou o comando SQL DROP PROVIDER em um Notebook Databricks ou no editor de consultas Databricks SQL . Você precisa ser o proprietário do objeto provedor para excluir o provedor.
Quando você exclui um provedor, você e os usuários da sua organização (o destinatário) não podem mais acessar os dados compartilhados pelo provedor.
Permissões necessárias : proprietário do objeto do provedor.
- Catalog Explorer
- SQL
- CLI
-
Em seu site Databricks workspace, clique em
Catalog .
-
Na parte superior do painel Catálogo , clique no ícone de engrenagem
e selecione Delta Sharing .
Alternativamente, no canto superior direito, clique em Compartilhar > Delta Sharing .
-
No Shared with me tab, 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 obter mais detalhes sobre DROP PROVIDER, consulte DROP PROVIDER.
execute o seguinte comando usando o Databricks CLI.
databricks providers delete <provider-name>
Se a operação for bem-sucedida, nenhum resultado será retornado.