Criar e gerenciar compartilhamentos para o Delta Sharing
Este artigo explica como criar e gerenciar ações para Delta Sharing.
Um compartilhamento é um objeto seguro em Unity Catalog que o senhor pode usar para compartilhar os seguintes dados ativos com um ou mais destinatários:
- Tabelas e partições de tabela
- visualização, incluindo a visualização dinâmica que restringe o acesso em nível de linha e coluna
- Volumes
- cadernos
- AI modelos
Se o senhor compartilhar um esquema inteiro (banco de dados), o destinatário poderá acessar todas as tabelas, visualizações, modelos e volumes do esquema no momento em que o senhor o compartilhar, juntamente com quaisquer dados e AI ativo que forem adicionados ao esquema no futuro.
Um compartilhamento pode conter dados e AI ativo de apenas um metastore Unity Catalog. O senhor pode adicionar ou remover dados e AI ativo de um compartilhamento a qualquer momento.
Para obter mais informações, consulte Compartilhamentos, provedores e destinatários.
Requisitos
Para criar um compartilhamento, você deve:
- Seja um administrador de metastore ou tenha o privilégio
CREATE SHARE
para o metastore do Unity Catalog onde os dados que o senhor deseja compartilhar estão registrados. - Crie o compartilhamento usando um Databricks workspace que tenha o metastore Unity Catalog anexado.
Para adicionar tabelas ou visualizações a um compartilhamento, o senhor deve:
- Seja o acionista.
- Ter os privilégios
USE CATALOG
eUSE SCHEMA
no catálogo e no esquema que contêm a tabela ou view, ou a propriedade do catálogo ou do esquema. - O senhor tem o privilégio
SELECT
na mesa ou em view. O senhor deve manter esse privilégio para que a tabela ou o site view continue a ser compartilhado. Se o senhor a perder, o destinatário não poderá acessar a tabela ou o site view por meio do compartilhamento. Portanto, a Databricks recomenda que o senhor use um grupo como proprietário do compartilhamento.
Para adicionar volumes a um compartilhamento, você deve:
- Seja o acionista.
- Tenha os privilégios
USE CATALOG
eUSE SCHEMA
no catálogo e no esquema que contêm o volume ou a propriedade do catálogo ou esquema. - Tenha o privilégio
READ VOLUME
no volume. Você deve manter esse privilégio para que o volume continue sendo compartilhado. Se você perdê-lo, o destinatário não poderá acessar o volume por meio do compartilhamento. Portanto, a Databricks recomenda que o senhor use um grupo como proprietário do compartilhamento.
Para adicionar modelos a um compartilhamento, você deve:
- Seja o acionista.
- Tenha os privilégios
USE CATALOG
eUSE SCHEMA
no catálogo e no esquema que contêm o modelo ou a propriedade do catálogo ou esquema. - Tenha o privilégio
EXECUTE
no modelo. Você deve manter esse privilégio para que o modelo continue sendo compartilhado. Se você perdê-lo, o destinatário não poderá acessar o modelo por meio do compartilhamento. Portanto, a Databricks recomenda que o senhor use um grupo como proprietário do compartilhamento.
Para compartilhar um esquema inteiro, você deve:
- Seja o proprietário do compartilhamento e o proprietário do esquema, ou tenha
USE SCHEMA.
- Tenha
SELECT
no esquema para compartilhar tabelas. - Tenha
READ VOLUME
no esquema para compartilhar volumes.
Para adicionar arquivos do Notebook a um compartilhamento, o senhor deve estar:
- O proprietário do compartilhamento e tem permissão CAN READ no Notebook.
Para conceder ao destinatário acesso a um compartilhamento, você deve ser um destes:
- Administrador do Metastore.
- Usuário com permissões ou propriedade delegadas no compartilhamento e nos objetos do destinatário ((
USE SHARE
+SET SHARE PERMISSION
) ou proprietário do compartilhamento) E (USE RECIPIENT
ou proprietário do destinatário).
Para view ações, o senhor deve ser um dos seguintes:
- Um administrador de metastore (pode view tudo)
- Um usuário com o privilégio
USE SHARE
(pode view tudo) - O proprietário do objeto de compartilhamento
Requisitos de computação:
- Se o senhor usar um notebook Databricks para criar o compartilhamento, seu recurso compute deverá usar Databricks Runtime 11.3 LTS ou acima e ter um modo de acesso padrão ou dedicado (anteriormente compartilhado e usuário único).
- Se o senhor usar as instruções SQL para adicionar um esquema a um compartilhamento (ou atualizar ou remover um esquema), deverá usar um SQL warehouse ou compute executando Databricks Runtime 13.3 LTS ou acima. Fazer o mesmo usando o Catalog Explorer não tem requisitos do site compute.
Criar um objeto de compartilhamento
Para criar um compartilhamento, o senhor pode usar o Catalog Explorer, o Databricks Unity Catalog CLI, ou o comando CREATE SHARE
SQL em um Databricks Notebook ou o editor de consultas Databricks SQL.
Permissões necessárias : administrador ou usuário do Metastore com o privilégio CREATE SHARE
para o metastore.
- Catalog Explorer
- SQL
- CLI
-
In your Databricks workspace, click
Catalog.
-
At the top of the Catalog pane, click the
gear icon and select Delta Sharing.
Alternatively, from the Quick access page, click the Delta Sharing > button.
-
On the Shared by me tab, click the Share data button.
-
On the Create share page, enter the share Name and an optional comment.
-
Click Save and continue.
You can continue to add data assets, or you can stop and come back later.
-
On the Add data assets tab, select the tables, volumes, views, and models you want to share.
For detailed instructions, see:
-
Click Save and continue.
-
On the Add notebooks tab, select the notebooks you want to share.
For detailed instructions, see Add notebook files to a share.
-
Click Save and continue.
-
On the Add recipients tab, select the recipients you want to share with.
For detailed instructions, see Manage access to Delta Sharing data shares (for providers).
-
Click Share data to share the data with the recipients.
Run the following command in a notebook or the Databricks SQL query editor:
CREATE SHARE [IF NOT EXISTS] <share-name>
[COMMENT "<comment>"];
Now you can add tables, volumes, views, and models to the share.
For detailed instructions, see:
Run the following command using the Databricks CLI.
databricks shares create <share-name>
You can use --comment
to add a comment or --json
to add assets to the share. For details, see the sections that follow.
Now you can add tables, volumes, views, and models to the share.
For detailed instructions, see:
Adicionar tabelas a um compartilhamento
Para adicionar tabelas a um compartilhamento, o senhor pode usar o Catalog Explorer, o Databricks Unity Catalog CLI, ou SQL comando em um Databricks Notebook ou o editor de consultas Databricks SQL.
Comentários de tabela, comentários de coluna e restrições primárias de key são incluídos em compartilhamentos que são compartilhados com um destinatário usando Databricks-to-Databricks compartilhamento em ou após 25 de julho de 2024. Se o senhor quiser começar a compartilhar comentários e restrições por meio de um compartilhamento que foi compartilhado com um destinatário antes da data de liberação, deverá revogar e conceder novamente o acesso ao destinatário para acionar o compartilhamento de comentários e restrições.
Permissões necessárias : proprietário do objeto de compartilhamento, USE CATALOG
e USE SCHEMA
no catálogo e no esquema que contêm a tabela, e o privilégio SELECT
na tabela. Você deve manter o privilégio SELECT
pelo tempo que quiser compartilhar a tabela. Para obter mais informações, consulte Requisitos.
Se o senhor for um administrador do workspace e tiver herdado as permissões USE SCHEMA
e USE CATALOG
no esquema e no catálogo que contêm a tabela do grupo de administradores workspace, não poderá adicionar a tabela a um compartilhamento. Você deve primeiro conceder a si mesmo as permissões USE SCHEMA
e USE CATALOG
no esquema e no catálogo.
- Catalog Explorer
- SQL
- CLI
-
In your Databricks workspace, click
Catalog.
-
At the top of the Catalog pane, click the
gear icon and select Delta Sharing.
Alternatively, from the Quick access page, click the Delta Sharing > button.
-
On the Shared by me tab, find the share you want to add a table to and click its name.
-
Click Manage assets > Add data assets.
-
On the Add tables page, select either an entire schema (database) or individual tables and views.
-
To select a table or view, first select the catalog, then the schema that contains the table or view, then the table or view itself.
You can search for tables by name, column name, or comment using workspace search. See Search for workspace objects.
-
To select a schema, first select the catalog and then the schema.
For detailed information about sharing schemas, see Add schemas to a share.
-
-
History: Share the table history to allow recipients to perform time travel queries or read the table with Spark Structured Streaming. For Databricks-to-Databricks shares, the table’s Delta log is also shared to improve performance. See Improve table read performance with history sharing. History sharing requires Databricks Runtime 12.2 LTS or above.
If, in addition to doing time travel queries and streaming reads, you want your customers to be able to query a table’s change data feed (CDF) using the table_changes() function, you must enable CDF on the table before you share it WITH HISTORY
.
- (Optional) Click Advanced table options to specify the following options. Alias and partitions are not available if you select an entire schema. Table history is included by default if you select an entire schema.
- Alias: An alternate table name to make the table name more readable. The alias is the table name that the recipient sees and must use in queries. Recipients cannot use the actual table name if an alias is specified.
- Partition: Share only part of the table. For example,
(column = 'value')
. See Specify table partitions to share and Use recipient properties to do partition filtering.
- Click Save.
Run the following command in a notebook or the Databricks SQL query editor to add a table:
ALTER SHARE <share-name> ADD TABLE <catalog-name>.<schema-name>.<table-name> [COMMENT "<comment>"]
[PARTITION(<clause>)] [AS <alias>]
[WITH HISTORY | WITHOUT HISTORY];
Run the following to add an entire schema. The ADD SCHEMA
command requires a SQL warehouse or compute running Databricks Runtime 13.3 LTS or above. For detailed information about sharing schemas, see Add schemas to a share.
ALTER SHARE <share-name> ADD SCHEMA <catalog-name>.<schema-name>
[COMMENT "<comment>"];
Options include the following. PARTITION
and AS <alias>
are not available if you select an entire schema.
-
PARTITION(<clause>)
: If you want to share only part of the table, you can specify a partition. For example,(column = 'value')
See Specify table partitions to share and Use recipient properties to do partition filtering. -
AS <alias>
: An alternate table name, or Alias to make the table name more readable. The alias is the table name that the recipient sees and must use in queries. Recipients cannot use the actual table name if an alias is specified. Use the format<schema-name>.<table-name>
. -
WITH HISTORY
orWITHOUT HISTORY
: WhenWITH HISTORY
is specified, share the table with full history, allowing recipients to perform time travel queries and streaming reads. For Databricks-to-Databricks shares, history sharing also shares the table’s Delta log to improve performance. The default behavior for table sharing isWITH HISTORY
if your compute is running Databricks Runtime 16.2 or above andWITHOUT HISTORY
for earlier Databricks Runtime versions. For schema sharing, the default isWITH HISTORY
regardless of Databricks Runtime version.WITH HISTORY
andWITHOUT HISTORY
require Databricks Runtime 12.2 LTS or above. See also Improve table read performance with history sharing.
If, in addition to doing time travel queries and streaming reads, you want your customers to be able to query a table’s change data feed (CDF) using the table_changes() function, you must enable CDF on the table before you share it WITH HISTORY
.
For more information about ALTER SHARE
options, see ALTER SHARE.
To add a table, run the following command using the Databricks CLI.
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<table-full-name>",
"data_object_type": "TABLE",
"shared_as": "<table-alias>"
}
}
]
}'
To add a schema, run the following Databricks CLI command:
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<schema-full-name>",
"data_object_type": "SCHEMA"
}
}
]
}'
For tables, and only tables, you can omit "data_object_type"
.
To learn about the options listed in this example, view the instructions on the SQL tab.
To learn about additional parameters, run databricks shares update --help
or see PATCH /api/2.1/unity-catalog/shares/ in the REST API reference.
Para obter informações sobre como remover tabelas de um compartilhamento, consulte Atualizar compartilhamentos.
Especifique partições de tabela para compartilhar
Para compartilhar somente parte de uma tabela ao adicionar a tabela a um compartilhamento, você pode fornecer uma especificação de partição. O senhor pode especificar partições ao adicionar uma tabela a um compartilhamento ou atualizar um compartilhamento, usando o Catalog Explorer, o Databricks Unity Catalog CLI, ou SQL comando em um Databricks Notebook ou o editor de consultas Databricks SQL. Consulte Adicionar tabelas a um compartilhamento e Atualizar compartilhamentos.
Se o senhor estiver usando o armazenamento default, não poderá compartilhar partições de tabela. Veja o armazenamento padrão em serverless workspace.
Exemplo básico
O exemplo SQL a seguir compartilha parte dos dados da tabela inventory
, particionada pelas colunas year
, month
e date
:
- Dados do ano de 2021.
- Dados de dezembro de 2020.
- Dados de 25 de dezembro de 2019.
ALTER SHARE share_name
ADD TABLE inventory
PARTITION (year = "2021"),
(year = "2020", month = "Dec"),
(year = "2019", month = "Dec", date = "2019-12-25");
Use as propriedades do destinatário para fazer a filtragem de partições
O senhor pode compartilhar uma partição de tabela que corresponda às propriedades do destinatário de dados, também conhecido como compartilhamento de partição parametrizada.
As propriedades padrão incluem:
databricks.accountId
: O Databricks account ao qual um destinatário de dados pertence (somenteDatabricks-to-Databricks compartilhamento).databricks.metastoreId
: O Unity Catalog metastore ao qual um destinatário de dados pertence (somenteDatabricks-to-Databricks compartilhamento).databricks.name
: O nome do destinatário dos dados.
Você pode criar qualquer propriedade personalizada que desejar ao criar ou atualizar um destinatário.
A filtragem por propriedade do destinatário permite que o senhor compartilhe as mesmas tabelas, usando o mesmo compartilhamento, em várias contas, espaços de trabalho e usuários do site Databricks, mantendo os limites de dados entre eles.
Por exemplo, se suas tabelas incluírem uma coluna Databricks account ID, o senhor poderá criar um único compartilhamento com partições de tabela definidas por Databricks account ID. Quando o senhor compartilha, o Delta Sharing fornece dinamicamente a cada destinatário apenas os dados associados ao seu Databricks account.
Sem a capacidade de particionar dinamicamente por propriedade, você precisaria criar um compartilhamento separado para cada destinatário.
Para especificar uma partição que filtre por propriedades do destinatário ao criar ou atualizar um compartilhamento, o senhor pode usar o Catalog Explorer ou a função CURRENT_RECIPIENT
SQL em um Notebook Databricks ou o editor de consultas Databricks SQL:
As propriedades do destinatário estão disponíveis no Databricks Runtime 12.2e acima.
- Catalog Explorer
- SQL
-
In your Databricks workspace, click
Catalog.
-
At the top of the Catalog pane, click the
gear icon and select Delta Sharing.
Alternatively, from the Quick access page, click the Delta Sharing > button.
-
On the Shared by me tab, find the share you want to update and click its name.
-
Click Manage assets > Add data assets.
-
On the Add tables page, select the catalog and database that contain the table, then select the table.
If you aren’t sure which catalog and database contain the table, you can search for it by name, column name, or comment using workspace search. See Search for workspace objects.
-
(Optional) Click Advanced table options to add Partition specifications.
On the Add partition to a table dialog, add the property-based partition specification using the following syntax:
(<column-name> = CURRENT_RECIPIENT().<property-key>)
For example,
(country = CURRENT_RECIPIENT().'country')
-
Click Save.
Run the following command in a notebook or the Databricks SQL query editor:
ALTER SHARE <share-name> ADD TABLE <catalog-name>.<schema-name>.<table-name>
PARTITION (<column-name> = CURRENT_RECIPIENT().<property-key>);
For example,
ALTER SHARE acme ADD TABLE acme.default.some_table
PARTITION (country = CURRENT_RECIPIENT().'country');
Adicionar tabelas com vetores de exclusão ou mapeamento de colunas a um compartilhamento
Visualização
Esse recurso está em Public Preview.
Os vetores de exclusão são um recurso de otimização de armazenamento que o senhor pode ativar nas tabelas Delta. Consulte O que são vetores de exclusão? .
O Databricks também oferece suporte ao mapeamento de colunas para tabelas Delta. Consulte Renomear e soltar colunas com o mapeamento de colunas do Delta Lake.
Para compartilhar uma tabela com vetores de exclusão ou mapeamento de colunas, o senhor deve compartilhá-la com a história. Consulte Adicionar tabelas a um compartilhamento.
Quando o senhor compartilha uma tabela com vetores de exclusão ou mapeamento de coluna, os destinatários podem consultar a tabela usando um SQL warehouse, um compute executando Databricks Runtime 14.1 ou acima, ou compute que esteja executando código aberto delta-sharing-spark
3.1 ou acima. Consulte Ler tabelas com vetores de exclusão ou mapeamento de colunas habilitado e Ler tabelas com vetores de exclusão ou mapeamento de colunas habilitado.
Adicionar visualização a um compartilhamento
Visualização
Esse recurso está em Public Preview.
são objetos somente leitura criados a partir de uma ou mais tabelas ou outra visualização. Um view pode ser criado a partir de tabelas e outras visualizações contidas em vários esquemas e catálogos em um metastore Unity Catalog. Consulte Criar e gerenciar a visualização.
Esta seção descreve como adicionar uma visualização a um compartilhamento usando o Catalog Explorer, Databricks CLI, ou SQL comando em um Databricks Notebook ou o editor de consultas Databricks SQL. Se o senhor preferir usar a API REST do Unity Catalog, consulte PATCH /api/2.1/unity-catalog/shares/ na referência da API REST.
Permissões necessárias : Proprietário do objeto de compartilhamento, USE CATALOG
e USE SCHEMA
no catálogo e no esquema que contêm o view, e SELECT
no view. O senhor deve manter o privilégio SELECT
enquanto quiser compartilhar o view. Para obter mais informações, consulte Requisitos.
Requisitos adicionais :
- O senhor deve habilitar o compute sem servidor para fluxo de trabalho, Notebook e DLT no account onde o view compartilhamento está configurado. Consulte Ativar serverless compute .
- As views compartilháveis devem ser definidas nas tabelas Delta ou em outras views compartilháveis.
- O senhor não pode compartilhar visualizações que façam referência a tabelas compartilhadas ou visualizações compartilhadas.
- O senhor deve usar um SQL warehouse ou um compute em Databricks Runtime 13.3 LTS ou acima quando adicionar um view a um compartilhamento.
- Se o seu workspace tiver workspace-catalog bindings ativados, certifique-se de que o workspace tenha acesso de leitura e gravação ao catálogo. Para obter mais informações, consulte Limitar o acesso do catálogo a um espaço de trabalho específico.
- Para conhecer os requisitos e as limitações do uso da visualização pelo destinatário, consulte Ler visualização compartilhada.
Para adicionar a visualização a um compartilhamento:
- Catalog Explorer
- SQL
- CLI
-
In your Databricks workspace, click
Catalog.
-
At the top of the Catalog pane, click the
gear icon and select Delta Sharing.
Alternatively, from the Quick access page, click the Delta Sharing > button.
-
On the Shared by me tab, find the share you want to add a view to and click its name.
-
Click Manage assets > Add data assets.
-
On the Add tables page, search or browse for the view that you want to share and select it.
-
(Optional) Click Advanced table options to specify an Alias, or alternate view name, to make the view name more readable. The alias is the name that the recipient sees and must use in queries. Recipients cannot use the actual view name if an alias is specified.
-
Click Save.
Run the following command in a notebook or the Databricks SQL query editor:
ALTER SHARE <share-name> ADD VIEW <catalog-name>.<schema-name>.<view-name>
[COMMENT "<comment>"]
[AS <alias>];
Options include:
AS <alias>
: An alternate view name, or alias, to make the view name more readable. The alias is the view name that the recipient sees and must use in queries. Recipients cannot use the actual view name if an alias is specified. Use the format<schema-name>.<view-name>
.COMMENT "<comment>"
: Comments appear in the Catalog Explorer UI and when you list and display view details using SQL statements.
For more information about ALTER SHARE
options, see ALTER SHARE.
Run the following Databricks CLI command:
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<view-full-name>",
"data_object_type": "VIEW",
"shared_as": "<view-alias>"
}
}
]
}'
"shared_as": "<view-alias>"
is optional and provides an alternate view name, or alias, to make the view name more readable. The alias is the view name that the recipient sees and must use in queries. Recipients cannot use the actual view name if an alias is specified. Use the format <schema-name>.<view-name>
.
To learn about additional parameters, run databricks shares update --help
or see PATCH /api/2.1/unity-catalog/shares/ in the REST API reference.
Para obter informações sobre como remover a visualização de um compartilhamento, consulte Atualizar compartilhamentos.
Adicionar visualização dinâmica a um compartilhamento para filtrar linhas e colunas
Visualização
Esse recurso está em Public Preview.
O senhor pode usar a exibição dinâmica para configurar o controle de acesso refinado aos dados da tabela, inclusive:
- Segurança no nível de colunas ou linhas.
- mascaramento de dados.
Ao criar um site view dinâmico que usa a função CURRENT_RECIPIENT(), o senhor pode limitar o acesso do destinatário de acordo com as propriedades especificadas na definição do destinatário.
Esta seção fornece exemplos de restrição do acesso do destinatário aos dados da tabela no nível da linha e da coluna usando um view dinâmico.
Requisitos
-
Databricks Runtime versão : A função
CURRENT_RECIPIENT
é compatível com Databricks Runtime 14.2 e acima. -
Permissões :
- Para criar um view, o senhor deve ser o proprietário do objeto de compartilhamento, ter
USE CATALOG
eUSE SCHEMA
no catálogo e no esquema que contêm o view, juntamente comSELECT
no view. O senhor deve manter o privilégioSELECT
enquanto quiser compartilhar o view. - Para definir propriedades em um destinatário, você deve ser o proprietário do objeto destinatário.
- Para criar um view, o senhor deve ser o proprietário do objeto de compartilhamento, ter
-
Limitações : Todas as limitações para view compartilhamento, incluindo a restrição para Databricks-to-Databricks compartilhamento, mais o seguinte:
- Quando um provedor compartilha um view que usa a função
CURRENT_RECIPIENT
, o provedor não pode consultar o view diretamente devido ao contexto de compartilhamento. Para testar esse view dinâmico, o provedor deve compartilhar o view consigo mesmo e consultar o view como destinatário. - Os provedores não podem criar um view que faça referência a um view dinâmico.
- Quando um provedor compartilha um view que usa a função
Definir uma propriedade do destinatário
Nesses exemplos, a tabela a ser compartilhada tem uma coluna chamada country
, e somente os destinatários com uma propriedade country
correspondente podem view determinadas linhas ou colunas.
O senhor pode definir as propriedades do destinatário usando o Catalog Explorer ou SQL comando em um Databricks Notebook ou no editor de consultas SQL.
- Catalog Explorer
- SQL
-
In your Databricks workspace, click
Catalog.
-
At the top of the Catalog pane, click the
gear icon and select Delta Sharing.
Alternatively, from the Quick access page, click the Delta Sharing > button.
-
On the Recipients tab, find the recipient you want to add the properties to and click its name.
-
Click Edit properties.
-
On the Edit recipient properties dialog, enter the column name as a key (in this case
country
) and the value you want to filter by as the value (for example,CA
). -
Click Save.
To set the property on the recipient, use ALTER RECIPIENT
. In this example, the country
property is set to CA
.
ALTER RECIPIENT recipient1 SET PROPERTIES ('country' = 'CA');
Criar um view dinâmico com permissão em nível de linha para os destinatários
Neste exemplo, somente os destinatários com uma propriedade country
correspondente podem acessar view determinadas linhas.
CREATE VIEW my_catalog.default.view1 AS
SELECT * FROM my_catalog.default.my_table
WHERE country = CURRENT_RECIPIENT('country');
Outra opção é que o provedor de dados mantenha uma tabela de mapeamento separada que mapeia os campos da tabela de fatos para as propriedades do destinatário, permitindo que as propriedades do destinatário e os campos da tabela de fatos sejam desacoplados para maior flexibilidade.
Criar um site dinâmico view com permissão em nível de coluna para os destinatários
Neste exemplo, somente os destinatários que correspondem à propriedade country
podem view determinadas colunas. Outros veem os dados retornados como REDACTED
:
CREATE VIEW my_catalog.default.view2 AS
SELECT
CASE
WHEN CURRENT_RECIPIENT('country') = 'US' THEN pii
ELSE 'REDACTED'
END AS pii
FROM my_catalog.default.my_table;
Compartilhe a dinâmica view com um destinatário
Para compartilhar o view dinâmico com um destinatário, use o mesmo comando SQL ou procedimento de UI que o senhor usaria para um view padrão. Consulte Adicionar visualização a um compartilhamento.
Adicionar volumes a um compartilhamento
Volumes são objetos do Unity Catalog que representam um volume lógico de armazenamento em um local de armazenamento de objetos na nuvem. Eles se destinam principalmente a fornecer governança sobre dados não tabulares ativos. Consulte O que são volumes do Unity Catalog?
Esta seção descreve como adicionar volumes a um compartilhamento usando o Catalog Explorer, o Databricks CLI, ou o SQL comando em um Databricks Notebook ou SQL editor de consultas. Se o senhor preferir usar a API REST do Unity Catalog, consulte PATCH /api/2.1/unity-catalog/shares/ na referência da API REST.
Os comentários de volume são incluídos em compartilhamentos que são compartilhados com um destinatário usando o compartilhamento Databricks-to-Databricks em ou após 25 de julho de 2024. Se o senhor quiser começar a compartilhar comentários por meio de um compartilhamento que foi compartilhado com um destinatário antes da data de liberação, deverá revogar e conceder novamente o acesso ao destinatário para acionar o compartilhamento de comentários.
Permissões necessárias : proprietário do objeto de compartilhamento, USE CATALOG
e USE SCHEMA
no catálogo e no esquema que contêm o volume e READ VOLUME
no volume. Você deve manter o privilégio READ VOLUME
pelo tempo que quiser compartilhar o volume. Para obter mais informações, consulte Requisitos.
Requisitos adicionais :
- O compartilhamento de volumes é suportado somente em Databricks-to-Databricks compartilhamento.
- O senhor deve usar um recurso SQL warehouse na versão 2023.50 ou acima ou um recurso compute em Databricks Runtime 14.1 ou acima quando adicionar um volume a um compartilhamento.
- Se o volume de armazenamento no lado do provedor tiver configurações de rede personalizadas (como firewall ou link privado), o provedor deverá garantir que os endereços do plano de controle e do plano de dados do destinatário estejam devidamente listados para poder se conectar ao local de armazenamento do volume.
Para adicionar volumes a um compartilhamento:
- Catalog Explorer
- SQL
- CLI
-
In your Databricks workspace, click
Catalog.
-
At the top of the Catalog pane, click the
gear icon and select Delta Sharing.
Alternatively, from the Quick access page, click the Delta Sharing > button.
-
On the Shared by me tab, find the share you want to add a volume to and click its name.
-
Click Manage assets > Edit assets.
-
On the Edit assets page, search or browse for the volume that you want to share and select it.
Alternatively, you can select the entire schema that contains the volume. See Add schemas to a share.
-
(Optional) Click Advanced options to specify an alternate volume name, or Alias, to make the volume name more readable.
Aliases are not available if you select an entire schema.
The alias is the name that the recipient sees and must use in queries. Recipients cannot use the actual volume name if an alias is specified.
-
Click Save.
Run the following command in a notebook or the Databricks SQL query editor:
ALTER SHARE <share-name> ADD VOLUME <catalog-name>.<schema-name>.<volume-name>
[COMMENT "<comment>"]
[AS <alias>];
Options include:
AS <alias>
: An alternate volume name, or alias, to make the volume name more readable. The alias is the volume name that the recipient sees and must use in queries. Recipients cannot use the actual volume name if an alias is specified. Use the format<schema-name>.<volume-name>
.COMMENT "<comment>"
: Comments appear in the Catalog Explorer UI and when you list and display volume details using SQL statements.
For more information about ALTER SHARE
options, see ALTER SHARE.
Run the following command using Databricks CLI 0.210 or above:
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<volume-full-name>",
"data_object_type": "VOLUME",
"string_shared_as": "<volume-alias>"
}
}
]
}'
"string_shared_as": "<volume-alias>"
is optional and provides an alternate volume name, or alias, to make the volume name more readable. The alias is the volume name that the recipient sees and must use in queries. Recipients cannot use the actual volume name if an alias is specified. Use the format <schema-name>.<volume-name>
.
To learn about additional parameters, run databricks shares update --help
or see PATCH /api/2.1/unity-catalog/shares/ in the REST API reference.
Para obter informações sobre como remover volumes de um compartilhamento, consulte Atualizar compartilhamentos.
Adicionar modelos a um compartilhamento
Esta seção descreve como adicionar modelos a um compartilhamento usando o Catalog Explorer, o Databricks CLI, ou SQL comando em um Databricks Notebook ou SQL editor de consultas. Se o senhor preferir usar a API REST do Unity Catalog, consulte PATCH /api/2.1/unity-catalog/shares/ na referência da API REST.
Os comentários do modelo e os comentários da versão do modelo são incluídos nos compartilhamentos que são compartilhados usando Databricks-to-Databricks compartilhamento.
Permissões necessárias : proprietário do objeto de compartilhamento, USE CATALOG
e USE SCHEMA
no catálogo e no esquema que contêm o modelo e EXECUTE
no modelo. Você deve manter o privilégio EXECUTE
pelo tempo que quiser compartilhar o modelo. Para obter mais informações, consulte Requisitos.
Requisitos adicionais :
- O compartilhamento de modelos é suportado somente em Databricks-to-Databricks compartilhamento.
- O senhor deve usar um recurso SQL warehouse na versão 2023.50 ou acima ou um recurso compute em Databricks Runtime 14.0 ou acima quando adicionar um modelo a um compartilhamento.
Para adicionar modelos a um compartilhamento:
- Catalog Explorer
- SQL
- CLI
-
In your Databricks workspace, click
Catalog.
-
At the top of the Catalog pane, click the
gear icon and select Delta Sharing.
Alternatively, from the Quick access page, click the Delta Sharing > button.
-
On the Shared by me tab, find the share you want to add a model to and click its name.
-
Click Manage assets > Edit assets.
-
On the Edit assets page, search or browse for the model that you want to share and select it.
Alternatively, you can select the entire schema that contains the model. See Add schemas to a share.
-
(Optional) Click Advanced options to specify an alternate model name, or Alias, to make the model name more readable.
Aliases are not available if you select an entire schema.
The alias is the name that the recipient sees and must use in queries. Recipients cannot use the actual model name if an alias is specified.
-
Click Save.
Run the following command in a notebook or the Databricks SQL query editor:
ALTER SHARE <share-name> ADD MODEL <catalog-name>.<schema-name>.<model-name>
[COMMENT "<comment>"]
[AS <alias>];
Options include:
AS <alias>
: An alternate model name, or alias, to make the model name more readable. The alias is the model name that the recipient sees and must use in queries. Recipients cannot use the actual model name if an alias is specified. Use the format<schema-name>.<model-name>
.COMMENT "<comment>"
: Comments appear in the Catalog Explorer UI and when you list and display model details using SQL statements.
For more information about ALTER SHARE
options, see ALTER SHARE.
Run the following command using Databricks CLI 0.210 or above:
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<model-full-name>",
"data_object_type": "MODEL",
"string_shared_as": "<model-alias>"
}
}
]
}'
"string_shared_as": "<model-alias>"
is optional and provides an alternate model name, or alias, to make the model name more readable. The alias is the model name that the recipient sees and must use in queries. Recipients cannot use the actual model name if an alias is specified. Use the format <schema-name>.<model-name>
.
To learn about additional parameters, run databricks shares update --help
or see PATCH /api/2.1/unity-catalog/shares/ in the REST API reference.
Para obter informações sobre como remover modelos de um compartilhamento, consulte Atualizar compartilhamentos.
Adicionar esquemas a um compartilhamento
Quando o senhor adiciona um esquema inteiro a um compartilhamento, os destinatários terão acesso não apenas a todos os dados ativos no esquema no momento em que o senhor criar o compartilhamento, mas também a todos os dados ativos que forem adicionados ao esquema ao longo do tempo. Isso inclui todas as tabelas, visualizações e volumes do esquema. As tabelas compartilhadas dessa forma sempre incluem o histórico completo.
Adicionar, atualizar ou remover um esquema usando SQL requer um SQL warehouse ou compute executando Databricks Runtime 13.3 LTS ou acima. Fazer o mesmo usando o Catalog Explorer não tem requisitos do site compute.
Permissões necessárias : proprietário do objeto de compartilhamento e proprietário do esquema (ou um usuário com privilégios USE SCHEMA
e SELECT
no esquema).
Para adicionar um esquema a um compartilhamento, siga as instruções em Adicionar tabelas a um compartilhamento, prestando atenção ao conteúdo que especifica como adicionar um esquema.
Aliases de tabela, partições e aliases de volume não estarão disponíveis se você selecionar um esquema inteiro. Se o usuário tiver criado aliases ou partições para qualquer ativo no esquema, eles serão removidos quando o usuário adicionar todo o esquema ao compartilhamento.
Se quiser especificar opções avançadas para uma tabela ou volume que está sendo compartilhado usando o esquema de compartilhamento, o senhor deve compartilhar a tabela ou o volume usando SQL e dar à tabela ou ao volume um alias com um nome de esquema diferente.
Adicionar arquivos do Notebook a um compartilhamento
Use o Catalog Explorer para adicionar um arquivo do Notebook a um compartilhamento.
Permissões necessárias : Proprietário do objeto de compartilhamento e permissão CAN READ no Notebook que o senhor deseja compartilhar.
-
Em seu site Databricks workspace, clique em
Catalog .
-
Na página de acesso rápido , clique no botão Delta Sharing > .
-
No Shared by me (Compartilhado por mim ) tab, localize o compartilhamento ao qual deseja adicionar um Notebook e clique em seu nome.
-
Clique em gerenciar ativo e selecione Add Notebook file .
-
Na página Add Notebook file (Adicionar arquivo do Notebook ), clique no ícone de arquivo para procurar o Notebook que deseja compartilhar.
- Clique no arquivo que você deseja compartilhar e clique em Selecionar .
- (Opcionalmente) especifique um alias fácil de usar para o arquivo no campo Compartilhar como. Esse é o identificador que os destinatários verão.
- Em Local de armazenamento , insira o local externo no armazenamento em nuvem onde o senhor deseja armazenar o Notebook. Você pode especificar um subcaminho no local externo definido. Se o senhor não especificar um local externo, o Notebook será armazenado no local de armazenamento no nível do metastore (ou "local raiz do metastore"). Se nenhum local raiz for definido para o metastore, você deverá inserir um local externo aqui. Consulte Adicionar armazenamento gerenciar a um metastore existente.
-
Clique em Salvar .
O arquivo compartilhado do Notebook agora aparece na lista de arquivosNotebook no ativo tab.
Remover arquivos do Notebook dos compartilhamentos
Para remover um arquivo do Notebook de um compartilhamento:
-
Em seu site Databricks workspace, clique em
Catalog .
-
Na parte superior do painel Catálogo , clique no ícone de engrenagem
e selecione Delta Sharing .
Como alternativa, na página de acesso rápido , clique no botão Delta Sharing > .
-
Em Shared by me (Compartilhado por mim ) tab, localize o compartilhamento que inclui o Notebook e clique no nome do compartilhamento.
-
No ativo tab, localize o arquivo do Notebook que deseja remover do compartilhamento.
-
Clique no menu
kebab à direita da linha e selecione Delete Notebook file (Excluir arquivo do Notebook ).
-
Na caixa de diálogo de confirmação, clique em Excluir .
Atualizar arquivos do Notebook em compartilhamentos
Para atualizar um Notebook que já tenha sido compartilhado, o senhor deve adicioná-lo novamente, atribuindo-lhe um novo alias no campo Compartilhar como . Databricks recomenda que o senhor use um nome que indique o status revisado do Notebook, como <old-name>-update-1
. Talvez seja necessário notificar o destinatário sobre a alteração. O destinatário deve selecionar e clonar o novo Notebook para aproveitar a sua atualização.
Conceder aos destinatários acesso a um compartilhamento
Para conceder acesso de compartilhamento aos destinatários, o senhor pode usar o Catalog Explorer, o Databricks Unity Catalog CLI, ou o comando GRANT ON SHARE
SQL em um Databricks Notebook ou o editor de consultas Databricks SQL.
Permissões necessárias : uma das seguintes opções:
- Administrador do Metastore.
- Permissões ou propriedade delegadas no compartilhamento e nos objetos do destinatário ((
USE SHARE
+SET SHARE PERMISSION
) ou proprietário do compartilhamento) E (USE RECIPIENT
ou proprietário do destinatário).
Para obter instruções, consulte gerenciar o acesso aos compartilhamentos de dados do Delta Sharing (para provedores). Este artigo também explica como revogar o acesso de um destinatário a um compartilhamento.
visualizar ações e detalhes das ações
Para view uma lista de compartilhamentos ou detalhes sobre um compartilhamento, o senhor pode usar o Catalog Explorer, o Databricks Unity Catalog CLI, ou SQL comando em um Databricks Notebook ou o editor de consultas Databricks SQL.
Permissões necessárias : a lista de compartilhamentos retornados depende da sua função e das suas permissões. Administradores e usuários do Metastore com o privilégio USE SHARE
veem todos os compartilhamentos. Caso contrário, o senhor pode view apenas as ações das quais é o proprietário do objeto de ação.
Os detalhes incluem:
- O proprietário, o criador, o carimbo de data e hora de criação, o atualizador, o carimbo de data/hora atualizado e os comentários do compartilhamento.
- Dados ativos no compartilhamento.
- Destinatários com acesso ao compartilhamento.
- Catalog Explorer
- SQL
- CLI
-
In your Databricks workspace, click
Catalog.
-
At the top of the Catalog pane, click the
gear icon and select Delta Sharing.
Alternatively, from the Quick access page, click the Delta Sharing > button.
-
Open the Shares tab to view a list of shares.
-
View share details on the Details tab.
To view a list of shares, run the following command in a notebook or the Databricks SQL query editor. Optionally, replace <pattern>
with a LIKE
predicate.
SHOW SHARES [LIKE <pattern>];
To view details about a specific share, run the following command.
DESCRIBE SHARE <share-name>;
To view details about all tables, views, and volumes in a share, run the following command.
SHOW ALL IN SHARE <share-name>;
To view a list of shares, run the following command using the Databricks CLI.
databricks shares list
To view details about a specific share, run the following command.
databricks shares get <share-name>
visualizar os destinatários que têm permissões em um compartilhamento
Para view a lista de compartilhamentos aos quais um destinatário recebeu acesso, o senhor pode usar o Catalog Explorer, o Databricks Unity Catalog CLI, ou o comando SHOW GRANTS TO RECIPIENT
SQL em um Databricks Notebook ou o editor de consultas Databricks SQL.
Permissões necessárias : administrador do Metastore, privilégio USE SHARE
ou proprietário do objeto de compartilhamento.
- Catalog Explorer
- SQL
- CLI
-
In your Databricks workspace, click
Catalog.
-
At the top of the Catalog pane, click the
gear icon and select Delta Sharing.
Alternatively, from the Quick access page, click the Delta Sharing > button.
-
On the Shared by me tab, find and select the recipient.
-
Go to the Recipients tab to view the list of recipients who can access the share.
Run the following command in a notebook or the Databricks SQL query editor.
SHOW GRANTS ON SHARE <share-name>;
Run the following command using the Databricks CLI.
databricks shares share-permissions <share-name>
Atualizar compartilhamentos
Além de adicionar tabelas, visualizações, volumes e Notebook a um compartilhamento, o senhor pode:
- Renomeie um compartilhamento.
- Remover tabelas, visualizações, volumes e esquemas de um compartilhamento.
- Adicione ou atualize um comentário em um compartilhamento.
- Renomeie o alias de uma tabela (o nome da tabela exibido para o destinatário).
- Ativar ou desativar o acesso aos dados históricos de uma tabela, permitindo que os destinatários realizem consultas de viagem do tempo ou leituras de transmissão da tabela.
- Adicione, atualize ou remova definições de partição.
- Altere o proprietário do compartilhamento.
Para fazer essas atualizações nos compartilhamentos, o senhor pode usar o Catalog Explorer, o Databricks Unity Catalog CLI, ou SQL comando em um Databricks Notebook ou o editor de consultas Databricks SQL. Você não pode usar o Catalog Explorer para renomear o compartilhamento.
Permissões necessárias : para atualizar o proprietário do compartilhamento, você deve ser um dos seguintes: administrador da metastore, proprietário do objeto de compartilhamento ou usuário com os privilégios USE SHARE
e SET SHARE PERMISSION
. Para atualizar o nome do compartilhamento, você deve ser administrador da metastore (ou usuário com o privilégio CREATE_SHARE
) e proprietário do compartilhamento. Para atualizar qualquer outra propriedade compartilhada, você deve ser o proprietário.
- Catalog Explorer
- SQL
- CLI
-
In your Databricks workspace, click
Catalog.
-
At the top of the Catalog pane, click the
gear icon and select Delta Sharing.
Alternatively, from the Quick access page, click the Delta Sharing > button.
-
On the Shared by me tab, find the share you want to update and click its name.
On the share details page, do the following:
- Click the
edit icon next to the Owner or Comment field to update these values.
- Click the kebab menu
button in an asset row to remove it.
- Click Manage assets > Edit assets to update all other properties:
- To remove an asset, clear the checkbox next to the asset.
- To add, update, or remove partition definitions, click Advanced options.
Run the following commands in a notebook or the Databricks SQL editor.
Rename a share:
ALTER SHARE <share-name> RENAME TO <new-share-name>;
Remove tables from a share:
ALTER SHARE share_name REMOVE TABLE <table-name>;
Remove volumes from a share:
ALTER SHARE share_name REMOVE VOLUME <volume-name>;
Add or update a comment on a share:
COMMENT ON SHARE <share-name> IS '<comment>';
Add or modify partitions for a table in a share:
ALTER SHARE <share-name> ADD TABLE <table-name> PARTITION(<clause>);
Change share owner:
ALTER SHARE <share-name> OWNER TO '<principal>'
-- Principal must be an account-level user email address or group name.
Enable history sharing for a table:
ALTER SHARE <share-name> ADD TABLE <table-name> WITH HISTORY;
For details about ALTER SHARE
parameters, see ALTER SHARE.
Run the following commands using the Databricks CLI.
Rename a share:
databricks shares update <share-name> --name <new-share-name>
Remove tables from a share:
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "REMOVE",
"data_object": {
"name": "<table-full-name>",
"data_object_type": "TABLE",
"shared_as": "<table-alias>"
}
}
]
}'
Remove volumes from a share (using Databricks CLI 0.210 or above):
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "REMOVE",
"data_object": {
"name": "<volume-full-name>",
"data_object_type": "VOLUME",
"string_shared_as": "<volume-alias>"
}
}
]
}'
Use the name
property if there is no alias for the volume. Use string_shared_as
if there is an alias.
Add or update a comment on a share:
databricks shares update <share-name> --comment '<comment>'
Change share owner:
databricks shares update <share-name> --owner '<principal>'
Principal must be an account-level user email address or group name.
Excluir um compartilhamento
Para excluir um compartilhamento, o senhor pode usar o Catalog Explorer, o Databricks Unity Catalog CLI, ou o comando DELETE SHARE
SQL em um Databricks Notebook ou o editor de consultas Databricks SQL. Você deve ser proprietário da ação.
Quando você exclui um compartilhamento, os destinatários não podem mais acessar os dados compartilhados.
Permissões necessárias : Compartilhe o proprietário do objeto.
- Catalog Explorer
- SQL
- CLI
-
In your Databricks workspace, click
Catalog.
-
At the top of the Catalog pane, click the
gear icon and select Delta Sharing.
Alternatively, from the Quick access page, click the Delta Sharing > button.
-
On the Shared by me tab, find the share you want to delete and click its name.
-
Click the
kebab menu and select Delete.
-
On the confirmation dialog, click Delete.
Run the following command in a notebook or the Databricks SQL query editor.
DROP SHARE [IF EXISTS] <share-name>;
Run the following command using the Databricks CLI.
databricks shares delete <share-name>