Compartilhar via


ALTER SHARE

Aplica-se a:marque sim SQL do Databricks marque sim LTS do Databricks Runtime 10.4 e superior com marque sim somente Catálogo do Unity

Adiciona, altera ou remove esquemas, tabelas, visualizações materializadas ou visualizações de ou para o compartilhamento. Renomeia um compartilhamento. Transfere a propriedade de um compartilhamento para uma nova entidade de segurança.

Permissões necessárias:

  • Para atualizar o proprietário do compartilhamento, você deve ser um administrador do metastore.
  • Para atualizar o nome do compartilhamento, você deve ser um usuário com o CREATE SHARE privilégio e o proprietário do compartilhamento.
  • Para adicionar tabelas ou exibições, você deve ser o proprietário do objeto de compartilhamento, ter USE SCHEMA no esquema que contém a tabela ou exibição e o privilégio SELECT na tabela ou exibição. Você deve manter o privilégio SELECT enquanto quiser compartilhar a tabela ou exibição.
  • Para atualizar quaisquer outras propriedades de compartilhamento, você deve ser o proprietário.

Sintaxe

ALTER SHARE share_name
  { alter_add_materialized_view |
    REMOVE MATERIALIZED VIEW mat_view_name |
    alter_add_table |
    REMOVE TABLE table_name |
    alter_add_schema |
    REMOVE SCHEMA schema_name |
    alter_add_view |
    REMOVE VIEW view_name |
    alter_add_model |
    REMOVE MODEL model_name |
    RENAME TO to_share_name |
    [ SET ] OWNER TO principal }

alter_add_materialized_view
  { { ALTER | ADD } MATERIALIZED VIEW mat_view_name [ COMMENT comment ] [ AS mat_view_share_name ]

alter_add_table
  { { ALTER | ADD } [ TABLE ] table_name [ COMMENT comment ]
        [ PARTITION clause ] [ AS table_share_name ]
        [ WITH HISTORY | WITHOUT HISTORY ] }

alter_add_schema
  { { ALTER | ADD } SCHEMA schema_name [ COMMENT comment ]

alter_add_view
  { { ALTER | ADD } VIEW view_name [ COMMENT comment ] [ AS view_share_name ]

alter_add_model
  { { ALTER | ADD } MODEL model_name [ COMMENT comment ] [ AS model_share_name ]

Observação

WITH HISTORY | WITHOUT HISTORY tem suporte no marque sim Databricks Runtime 12.2 LTS e superior. As versões 11.1 a 12.0 do Databricks Runtime exigem que você especifique WITH CHANGE DATA FEED [ START VERSION version ] em vez de WITH HISTORY. No Databricks SQL e Databricks Runtime versão 16.2 e acima, WITH HISTORY é o padrão.

WITH CHANGE DATA FEED foi preterido.

Observe também que se, além de fazer consultas de viagem no tempo e leituras de streaming, você quiser que seus clientes possam consultar o CDF (feed de dados de alteração) de uma tabela usando a função table_changes(), você deve habilitar o CDF na tabela antes de compartilhá-la WITH HISTORY (ou WITH CHANGE DATA FEED).

Parâmetros

  • share_name

    O nome do compartilhamento a ser alterado.

  • alter_add_materialized_view

    Aplica-se a:marque sim SQL do Databricks marque sim LTS do Databricks Runtime 13.3 e superior

    Adiciona uma visualização materializada ao compartilhamento ou modifica uma visualização materializada compartilhada existente. Para executar essa instrução, você precisa ser o proprietário do compartilhamento e ter o SELECT privilégio no metastore.

    • ADD MATERIALIZED VIEW mat_view_name

      Identifica a visualização materializada a ser adicionada. Se a exibição materializada não puder ser encontrada, o Azure Databricks gerará um erro TABLE_OR_VIEW_NOT_FOUND.

    • ALTER MATERIALIZED VIEW mat_view_name

      Identifica a visualização materializada a ser alterada. Se a visualização materializada ainda não fizer parte do compartilhamento, o Azure Databricks gerará um erro.

    • COMMENT comment

      Um literal STRING opcional anexado ao compartilhamento de visualização materializada como um comentário.

    • AS mat_view_share_name

      Opcionalmente, expõe a visualização materializada com um nome diferente. O nome pode ser qualificado com um nome de esquema. Se nenhum mat_view_share_name for especificado, a exibição materializada será conhecida pelo seu próprio nome.

      Se o nome compartilhado já existir, o Azure Databricks emitirá um erro.

    • REMOVE MATERIALIZED VIEW mat_view_name

      Aplica-se a:marque sim SQL do Databricks marque sim LTS do Databricks Runtime 13.3 e superior

      Remova a exibição materializada identificada por mat_view_name do compartilhamento. Para executar essa instrução, você precisa ser o proprietário do compartilhamento.

    • alter_add_table

      Adiciona uma tabela ou partições de uma tabela ao compartilhamento ou modifica uma tabela compartilhada existente. Para executar essa instrução, você precisa ser o proprietário do compartilhamento e ter o privilégio SELECT na tabela.

      • ADD [ TABLE ] table_name

        Identifica a tabela a ser adicionada. A tabela não deve residir no Catálogo do Unity. Se a tabela não puder ser encontrada, o Azure Databricks gerará um erro TABLE_OR_VIEW_NOT_FOUND.

      • ALTER [ TABLE ] table_name

        Identifica a tabela a ser alterada. Se a tabela ainda não fizer parte do compartilhamento, o Azure Databricks gerará um erro.

      • COMMENT comment

        Um literal de STRING opcional anexado ao compartilhamento da tabela como um comentário.

      • Cláusula PARTITION

        Uma ou mais partições da tabela a serem adicionadas. As chaves de partição devem corresponder ao particionamento da tabela e estar associadas a valores. Se PARTITION clause não estiver presente, ADD TABLE adicionará a tabela inteira.

        Para particionar por referência a propriedades de um destinatário, use a sintaxe :

        PARTITION (column_name = CURRENT_RECIPIENT().<property-key>)
        

        Particionamento por referência às propriedades do destinatário Aplica-se a:marque sim Databricks SQL marque sim Databricks Runtime 12.2 LTS e versões superiores.

      • AS table_share_name

        Opcionalmente, expõe a tabela com um nome diferente. O nome pode ser qualificado com um nome de banco de dados (esquema). Se table_share_name não for especificado, a tabela será conhecida com seu próprio nome.

      • WITH HISTORY ou WITHOUT HISTORY

        Aplica-se a: marque sim Databricks SQL marque sim Databricks Runtime 12.2 LTS e versões superiores.

        Quando WITH HISTORY for especificado, compartilhe a tabela com o histórico completo, permitindo que os destinatários executem consultas de viagem no tempo. Assim, a tabela compartilhada pode ser referenciada usando VERSION AS OF e TIMESTAMP AS OF.

        Se, além de fazer consultas de viagem no tempo e leituras de streaming, você quiser que seus clientes possam consultar o CDF (feed de dados de alteração) de uma tabela usando a função table_changes(), você deve habilitar o CDF na tabela antes de compartilhá-la WITH HISTORY.

        O comportamento padrão no Databricks SQL e no Databricks Runtime 16.2 e superior é WITH HISTORY. No Databricks Runtime 16.1 e abaixo, é WITHOUT HISTORY.

    • REMOVE TABLE table_name

      Remova a tabela identificada por table_name do compartilhamento. Para executar essa instrução, você precisa ser o proprietário do compartilhamento.

    • alter_add_schema

      Aplica-se a:marque sim SQL do Databricks marque sim LTS do Databricks Runtime 13.3 e superior

      Adiciona um esquema ao compartilhamento ou modifica um esquema compartilhado existente. Para executar essa declaração, você deve ser o proprietário do compartilhamento e do esquema.

      • ADD SCHEMA schema_name

        Identifica o esquema que será adicionado. Se o esquema não puder ser encontrado, o Azure Databricks emitirá um erro SCHEMA_NOT_FOUND.

      • ALTER SCHEMA schema_name

        Identifica o esquema que será alterado. Se o esquema ainda não fizer parte do compartilhamento, o Azure Databricks gerará um erro.

      • COMMENT comment

        Um literal STRING opcional anexado ao compartilhamento de esquema como um comentário.

    • REMOVE SCHEMA schema_name

      Remova o esquema identificado por schema_name do compartilhamento. Para executar essa instrução, você precisa ser o proprietário do compartilhamento.

    • alter_add_view

      Aplica-se a:marque sim SQL do Databricks marque sim LTS do Databricks Runtime 13.3 e superior

      Adiciona uma exibição ao compartilhamento ou modifica uma exibição compartilhada existente. Para executar essa instrução, você precisa ser o proprietário do compartilhamento e ter o privilégio SELECT na exibição.

      • ADD VIEW nome_da_exibição

        Identifica a exibição a ser adicionada. Se a exibição não puder ser encontrada, o Azure Databricks gerará um erro TABLE_OR_VIEW_NOT_FOUND.

      • ALTER VIEW nome_da_exibição

        Identifica o modo de exibição a ser alterado. Se a exibição ainda não fizer parte do compartilhamento, o Azure Databricks gerará um erro.

      • COMMENT comment

        Um literal de STRING opcional anexado ao compartilhamento da exibição como um comentário.

      • AS view_share_name

        Opcionalmente, expõe a exibição com um nome diferente. O nome pode ser qualificado com um nome de esquema. Se nenhum view_share_name for especificado, a exibição será conhecida pelo seu próprio nome.

        Se o nome compartilhado já existir, o Azure Databricks emitirá um erro.

    • REMOVE VIEW nome_da_exibição

      Remova a exibição identificada por view_name do compartilhamento. Para executar essa instrução, você precisa ser o proprietário do compartilhamento.

    • alter_add_model

      Aplica-se a:marque sim SQL do Databricks marque sim Databricks Runtime 14.0 e superior

      Adiciona um modelo ao compartilhamento ou modifica um modelo compartilhado existente. Para executar essa instrução, você deve ser o proprietário do compartilhamento e ter EXECUTE privilégio no modelo.

      • ADD MODEL model_name

        Identifica o modelo a ser adicionado. Se o modelo não puder ser encontrado, o Azure Databricks gerará um erro RESOURCE_DOES_NOT_EXIST.

      • ALTER MODEL model_name

        Identifica o modelo a ser alterado. Se o modelo ainda não fizer parte do compartilhamento, o Azure Databricks gerará um erro.

      • COMMENT comment

        Um literal STRING opcional anexado ao compartilhamento do modelo como um comentário.

      • AS model_share_name

        Opcionalmente, expõe o modelo com um nome diferente. O nome pode ser qualificado com um nome de esquema. Se nenhum model_share_name for especificado, o modelo será conhecido pelo seu próprio nome.

        Se o nome compartilhado já existir, o Azure Databricks emitirá um erro.

    • REMOVE MODEL model_name

      Remova o modelo identificado por model_name do compartilhamento. Para executar essa instrução, você precisa ser o proprietário do compartilhamento.

    • RENAME TO to_share_name

      Aplica-se a:marque sim SQL do Databricks marque sim LTS do Databricks Runtime 11.3 e superior

      Renomeia o compartilhamento. O nome precisa ser exclusivo em todos os compartilhamentos no metastore. Para executar essa instrução, você precisa ser o proprietário do compartilhamento e ter o privilégio CREATE SHARE no metastore.

    • [ SET ] OWNER TO entidade

      Transfere a propriedade do compartilhamento para principal. Para executar essa instrução, você precisa ser o proprietário do compartilhamento.

      Aplica-se a:marque sim SQL do Databricks marque sim LTS do Databricks Runtime 11.3 e superior

      SET é permitido como uma palavra-chave opcional.

Exemplos

-- Creates a share named `some_share`.
> CREATE SHARE some_share;

-- Add a table to the share.
> ALTER SHARE some_share
     ADD TABLE my_schema.my_tab
         COMMENT 'some comment'
         PARTITION(c1_int = 5, c2_date LIKE '2021%')
         AS shared_schema.shared_tab;

-- Add a schema to the share.
> ALTER SHARE some_share
     ADD SCHEMA some_schema
         COMMENT 'some comment';

-- Add a view to the share.
> ALTER SHARE some_share
     ADD VIEW my_schema.my_view
         COMMENT 'some comment'
         AS shared_schema.shared_view;

-- Add a materialized view to the share.
> ALTER SHARE some_share
     ADD MATERIALIZED VIEW my_schema.my_mat_view
         COMMENT 'some comment'
         AS shared_schema.shared_mat_view;

-- Share a table with history
> ALTER SHARE share ADD TABLE table1 WITH HISTORY;
> ALTER SHARE share ADD TABLE table2 WITHOUT HISTORY;
> SHOW ALL IN SHARE share;
  Name    type   ... history_sharing  ...
  ------  ------ ... ----------------
  Table1  TABLE  ... ENABLED          ...
  Table2  TABLE  ... DISABLED         ...

-- Remove the table again
> ALTER SHARE some_share
    REMOVE TABLE shared_schema.shared_tab;

-- Remove the schema again
> ALTER SHARE some_share
    REMOVE SCHEMA some_schema;

-- Remove a view again
> ALTER SHARE some_share
    REMOVE VIEW shared_schema.shared_view;

-- Rename a share
> ALTER SHARE some_share
    RENAME TO new_share;

-- Change ownership of the share
> ALTER SHARE some_share
    OWNER TO `alf@melmak.et`