ALTER SHARE

Gilt für:check marked yes Databricks SQL check marked yes Databricks Runtime 10.3 und darüber check marked yes Nur Unity Catalog

Fügt der Freigabe Schemas, Tabellen, materialisierte Sichten oder Ansichten hinzu, ändert sie oder entfernt sie daraus. Benennt eine Freigabe um. Überträgt den Besitz einer Freigabe an einen neuen Prinzipal.

Erforderliche Berechtigungen:

  • Um den Freigabebesitzer zu aktualisieren, müssen Sie eine der folgenden Rollen haben: Metastoreadministrator, Besitzer des Freigabeobjekts oder Benutzer mit den Rechten USE SHARE und SET SHARE PERMISSION.
  • Zum Aktualisieren des Freigabenamens müssen Sie ein Metastore-Administrator (oder ein Benutzer mit der Berechtigung CREATE_SHARE) und der Freigabebesitzer sein.
  • Um Tabellen oder Ansichten hinzuzufügen, müssen Sie der Besitzer des Freigabeobjekts sein, über USE SCHEMA für das Schema verfügen, das die Tabelle oder Ansicht enthält, und die Berechtigung SELECT für die Tabelle oder Ansicht. Sie müssen die Berechtigung SELECT so lange behalten, wie Sie die Tabelle oder Ansicht freigeben möchten.
  • Sie müssen der Besitzer sein, um alle weiteren Freigabeeigenschaften zu aktualisieren.

Syntax

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 } VIEW model_name [ COMMENT comment ] [ AS model_share_name ]

Hinweis

WITH HISTORY | WITHOUT HISTORY wird in check marked yes Databricks Runtime 12.1 und höher unterstützt. Für die Databricks Runtime-Versionen 11.1 bis 12.0 müssen Sie WITH CHANGE DATA FEED [ START VERSION version ] ] anstelle von WITH HISTORY angeben.

WITH CHANGE DATA FEED ist veraltet.

Beachten Sie außerdem, dass Ihre Kund*innen zusätzlich zu Zeitreiseabfragen und Streaming-Lesevorgängen in der Lage sein sollten, den Änderungsdatenfeed (CDF) einer Tabelle mithilfe der table_changes()-Funktion abzufragen. Daher müssen Sie CDF für die Tabelle aktivieren, bevor Sie sie WITH HISTORY (oder WITH CHANGE DATA FEED) freigeben.

Parameter

  • share_name

    Der Name der Freigabe, die geändert werden soll.

  • alter_add_materialized_view

    Gilt für:check marked yes Databricks SQL check marked yes Databricks Runtime 13.3 und höher

    Wichtig

    Dieses Feature befindet sich in der privaten Vorschauphase. Um es auszuprobieren, wenden Sie sich an Ihren Azure Databricks-Kontakt.

    Fügt der Freigabe eine materialisierte Sicht hinzu oder ändert eine vorhandene freigegebene materialisierte Sicht. Um diese Anweisung auszuführen, müssen Sie der Eigentümer der Freigabe sein und über SELECT-Berechtigungen für die materialisierte Sicht verfügen.

    • ADD MATERIALIZED VIEW mat_view_name

      Gibt die materialisierte Sicht an, die hinzugefügt werden soll. Wenn die materialisierte Sicht nicht gefunden werden kann, löst Azure Databricks den Fehler TABLE_OR_VIEW_NOT_FOUND aus.

    • ALTER MATERIALIZED VIEW mat_view_name

      Gibt die materialisierte Sicht an, die geändert werden soll. Wenn die materialisierte Sicht nicht bereits Teil der Freigabe ist, gibt Azure Databricks eine Fehlermeldung aus.

    • COMMENT comment

      Ein optionales STRING-Literal, das als Kommentar an die Freigabe der materialisierten Sicht angefügt ist.

    • AS mat_view_share_name

      Veröffentlicht die materialisierte Sicht optional unter einem anderen Namen. Der Name kann mit einem Schemanamen qualifiziert werden. Wenn mat_view_share_name nicht angegeben wird, ist die materialisierte Sicht unter ihrem eigenen Namen bekannt.

      Wenn der freigegebene Name bereits vorhanden ist, löst Azure Databricks einen Fehler aus.

    • REMOVE MATERIALIZED VIEW mat_view_name

      Gilt für:check marked yes Databricks SQL check marked yes Databricks Runtime 13.3 und höher

      Entfernt die durch mat_view_name identifizierte materialisierte Sicht aus der Freigabe. Um diese Anweisung auszuführen, müssen Sie der Eigentümer der Freigabe sein.

    • alter_add_table

      Fügt der Freigabe eine Tabelle oder Partitionen einer Tabelle hinzu oder ändert eine vorhandene freigegebene Tabelle. Um diese Anweisung auszuführen, müssen Sie der Eigentümer der Freigabe sein und über die SELECT-Berechtigung für den Metastore verfügen.

      • ADD [ TABLE ] table_name

        Gibt die hinzuzufügende Tabelle an. Die Tabelle darf sich nicht im Unity Catalog befinden. Wenn die Tabelle nicht gefunden werden kann, löst Azure Databricks den Fehler TABLE_OR_VIEW_NOT_FOUND aus.

      • ALTER [ TABLE ] table_name

        Gibt die Tabelle an, die geändert werden soll. Wenn die Tabelle nicht bereits Teil der Freigabe ist, gibt Azure Databricks einen Fehler aus.

      • COMMENT comment

        Ein optionales STRING-Literal, das als Kommentar an die Tabellenfreigabe angefügt ist.

      • PARTITION-Klausel

        Mindestens eine Partition der Tabelle, die hinzugefügt werden soll. Die Partitionsschlüssel müssen mit der Partitionierung der Tabelle übereinstimmen und Werten zugeordnet sein. Wenn PARTITION clause nicht vorhanden ist, fügt ADD TABLE die gesamte Tabelle hinzu.

        Verwenden Sie die Syntax, um eine Partition anhand eines Verweises auf eine Empfängereigenschaft zu partitionieren:

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

        Partitionierung durch Verweis auf Empfänger-Eigenschaften Gilt für:check marked yes Databricks SQL check marked yes Databricks Runtime 12.2 und darüber.

      • AS table_share_name

        Veröffentlicht die Tabelle optional unter einem anderen Namen. Der Name kann mit einem Datenbanknamen (Schema) qualifiziert werden. Wenn table_share_name nicht angegeben ist, wird die Tabelle unter ihrem eigenen Namen bekannt.

      • WITH HISTORY oder WITHOUT HISTORY

        Gilt für: check marked yes Databricks SQL check marked yes Databricks Runtime 12.1 und höher.

        Wenn WITH HISTORY angegeben ist, geben Sie die Tabelle mit dem vollständigen Verlauf frei, sodass Empfänger Zeitreiseabfragen ausführen können. Auf die freigegebene Tabelle kann dann mit VERSION AS OF und TIMESTAMP AS OF verwiesen werden.

        Wenn Ihre Kund*innen zusätzlich zu Zeitreiseabfragen und Streaming-Lesevorgängen in der Lage sein sollen, den Änderungsdatenfeed (CDF) einer Tabelle mithilfe der table_changes()-Funktion abzufragen, müssen Sie CDF für die Tabelle aktivieren, bevor Sie sie WITH HISTORY freigeben.

        Das Standardverhalten ist WITHOUT HISTORY.

    • REMOVE TABLE table_name

      Entfernt die durch table_name identifizierte Tabelle aus der Freigabe. Um diese Anweisung auszuführen, müssen Sie der Eigentümer der Freigabe sein.

    • alter_add_schema

      Gilt fürcheck marked yes: Databricks SQL check marked yes Databricks Runtime 13.2 und höher

      Fügt der Freigabe ein Schema hinzu oder ändert ein vorhandenes freigegebenes Schema. Sie können diese Anweisung nur als Besitzer*in der Freigabe und des Schemas ausführen.

      • ADD SCHEMA schema_name

        Identifiziert das hinzuzufügende Schema. Wenn das Schema nicht gefunden werden kann, gibt Azure Databricks einen SCHEMA_NOT_FOUND-Fehler aus.

      • ALTER SCHEMA schema_name

        Identifiziert das zu ändernde Schema. Wenn das Schema nicht bereits Teil der Freigabe ist, gibt Azure Databricks eine Fehlermeldung aus.

      • COMMENT comment

        Ein optionales STRING-Literal, das als Kommentar an die Schemafreigabe angefügt wird.

    • REMOVE SCHEMA schema_name

      Entfernt das durch schema_name identifizierte Schema aus der Freigabe. Um diese Anweisung auszuführen, müssen Sie der Eigentümer der Freigabe sein.

    • alter_add_view

      Gilt fürcheck marked yes: Databricks SQL check marked yes Databricks Runtime 13.2 und höher

      Fügt der Freigabe eine Ansicht hinzu oder ändert eine vorhandene freigegebene Ansicht. Um diese Anweisung auszuführen, müssen Sie der Eigentümer der Freigabe sein und über die SELECT-Berechtigung für die Ansicht verfügen.

      • ADD VIEW view_name

        Gibt die Ansicht an, die hinzugefügt werden soll. Wenn die Sicht nicht gefunden werden kann, löst Azure Databricks den Fehler TABLE_OR_VIEW_NOT_FOUND aus.

      • ALTER VIEW view_name

        Gibt die Sicht an, die geändert werden soll. Wenn die Ansicht nicht bereits Teil der Freigabe ist, gibt Azure Databricks einen Fehler aus.

      • COMMENT comment

        Ein optionales STRING-Literal, das als Kommentar an die Ansichtsfreigabe angefügt ist.

      • AS view_share_name

        Veröffentlicht die Ansicht optional unter einem anderen Namen. Der Name kann mit einem Schemanamen qualifiziert werden. Wenn view_share_name nicht angegeben wird, ist die Ansicht unter ihrem eigenen Namen bekannt.

        Wenn der freigegebene Name bereits vorhanden ist, löst Azure Databricks einen Fehler aus.

    • REMOVE VIEW view_name

      Entfernt die durch view_name identifizierte Ansicht aus der Freigabe. Um diese Anweisung auszuführen, müssen Sie der Eigentümer der Freigabe sein.

    • alter_add_model

      Gilt für:check marked yes Databricks SQL check marked yes Databricks Runtime 14.0 und höher

      Fügt der Freigabe ein Modell hinzu oder ändert ein vorhandenes freigegebenes Modell. Um diese Anweisung auszuführen, müssen Sie Eigentümer*in der Freigabe sein und über die EXECUTE-Berechtigung für das Modell verfügen.

      • ADD MODEL model_name

        Identifiziert das hinzuzufügende Modell. Wenn das Modell nicht gefunden werden kann, löst Azure Databricks einen RESOURCE_DOES_NOT_EXIST-Fehler aus.

      • ALTER MODEL model_name

        Identifiziert das zu ändernde Modell. Wenn das Modell nicht bereits Teil der Freigabe ist, gibt Azure Databricks einen Fehler aus.

      • COMMENT comment

        Ein optionales STRING-Literal, das als Kommentar an die Modellfreigabe angefügt ist.

      • AS model_share_name

        Macht das Modell optional unter einem anderen Namen verfügbar. Der Name kann mit einem Schemanamen qualifiziert werden. Wenn model_share_name nicht angegeben wird, ist das Modell unter seinem eigenen Namen bekannt.

        Wenn der freigegebene Name bereits vorhanden ist, löst Azure Databricks einen Fehler aus.

    • REMOVE MODEL model_name

      Entfernt das durch model_name identifiziert Modell aus der Freigabe. Um diese Anweisung auszuführen, müssen Sie der Eigentümer der Freigabe sein.

    • RENAME TO to_share_name

      Gilt für:check marked yes Databricks SQL check marked yes Databricks Runtime 11.1 und höher

      Benennt die Freigabe um. Der Name muss unter allen Freigaben im Metastore eindeutig sein. Um diese Anweisung auszuführen, müssen Sie der Eigentümer der Freigabe sein und über die CREATE SHARE-Berechtigung für den Metastore verfügen.

    • [ SET ] OWNER TO principal

      Überträgt den Besitz der Freigabe an principal. Um diese Anweisung auszuführen, müssen Sie der Eigentümer der Freigabe sein.

      Gilt für:check marked yes Databricks SQL SQL-Warehouse Version 2022.35 oder höher check marked yes Databricks Runtime 11.2 und höher

      SET ist als optionales Schlüsselwort zulässig.

Beispiele

-- 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`