Поделиться через


ALTER SHARE

применяется:отметка 'Да' Databricks SQL отметка 'Да' Databricks Runtime 10.4 LTS и выше отметка 'Да' только в каталоге Unity

Добавляет, изменяет или удаляет схемы, таблицы, материализованные представления или представления из общей папки. Переименовывает общую папку. Передает владение общим ресурсом новому субъекту.

Необходимые разрешения:

  • Чтобы обновить владельца общей папки, необходимо быть одним из следующих: администратор хранилища метаданных, владелец объекта общей папки или пользователь с правами USE SHARE и SET SHARE PERMISSION.
  • Чтобы обновить имя общей папки, необходимо быть администратором хранилища метаданных (или пользователем с правами CREATE_SHARE) и владельцем общего ресурса.
  • Чтобы добавить таблицы или представления, необходимо быть владельцем объекта общего ресурса, а также иметь привилегию USE SCHEMA в схеме, содержащей таблицу или представление, и привилегию SELECT в таблице или представлении. Вы должны поддерживать привилегии SELECT до тех пор, пока вы хотите предоставить общий доступ к таблице или представлению.
  • Чтобы обновить любые другие свойства общего ресурса, необходимо быть его владельцем.

Синтаксис

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 ]

Примечание.

WITH HISTORY | WITHOUT HISTORY поддерживается в флажок Databricks Runtime 12.2 LTS и выше. Для выполнения Databricks версии 11.1–12.0 требуется указывать WITH CHANGE DATA FEED [ START VERSION version ] вместо WITH HISTORYнего. В Databricks Runtime 16.2 и более поздних версиях WITH HISTORY используется по умолчанию.

WITH CHANGE DATA FEED не рекомендуется к использованию.

Обратите внимание также, что если, помимо выполнения запросов с использованием исторических данных и потоковых операций чтения, вы хотите, чтобы клиенты могли запрашивать канал данных об изменениях таблицы (CDF) с помощью функции table_changes(), необходимо включить CDF на таблице, до того, как вы предоставите к ней доступ WITH HISTORY (или WITH CHANGE DATA FEED).

Параметры

  • share_name

    Имя общего ресурса, который нужно изменить.

  • alter_add_materialized_view

    Область применения:флажок Databricks SQL флажок Databricks Runtime 13.3 LTS и выше

    Внимание

    Доступна закрытая предварительная версия этой функции. Чтобы опробовать ее, обратитесь к своему контактному лицу Azure Databricks.

    Добавляет материализованное представление в общую папку или изменяет существующее общее материализованное представление. Для выполнения этой инструкции необходимо быть владельцем общей папки и иметь SELECT привилегии в материализованном представлении.

    • ADD MATERIALIZED VIEW mat_view_name

      Определяет материализованное представление, которое нужно добавить. Если материализованное представление не найдено, Azure Databricks вызывает ошибку TABLE_OR_VIEW_NOT_FOUND .

    • ALTER MATERIALIZED VIEW mat_view_name

      Определяет материализованное представление, которое необходимо изменить. Если материализованное представление еще не является частью общей папки, Azure Databricks вызывает ошибку.

    • COMMENT comment

      Необязательный STRING литерал, присоединенный к материализованной общей папке представления в качестве комментария.

    • AS mat_view_share_name

      При необходимости предоставляет материализованное представление под другим именем. Имя может быть дополнено именем схемы. Если не mat_view_share_name указано, материализованное представление известно под собственным именем.

      Если общее имя уже существует, Azure Databricks вызывает ошибку.

    • REMOVE MATERIALIZED VIEW mat_view_name

      Область применения:флажок Databricks SQL флажок Databricks Runtime 13.3 LTS и выше

      Удалите из общего доступа материализованное представление, определяемое mat_view_name. Для выполнения этой инструкции необходимо быть владельцем общей папки.

    • alter_add_table

      Добавляет таблицу или секции таблицы в общую папку или изменяет существующую общую таблицу. Для выполнения этого выражения необходимо быть владельцем доли и иметь привилегии SELECT на таблице.

      • ADD [ TABLE ] table_name

        Определяет добавленную таблицу. Таблица не должна находиться в каталоге Unity. Если таблица не найдена, Azure Databricks вызывает ошибку TABLE_OR_VIEW_NOT_FOUND.

      • ALTER [ TABLE ] table_name

        Определяет таблицу, которая будет изменена. Если таблица еще не является частью ресурса совместного доступа, Azure Databricks выдает ошибку.

      • COMMENT comment

        Необязательный литерал STRING, присоединенный к доле таблицы в качестве комментария.

      • предложение PARTITION

        Один или более разделов таблицы, которые будут добавлены. Ключи разделов должны соответствовать секционированию таблицы и ассоциироваться со значениями. Если PARTITION clause нет, ADD TABLE добавляет всю таблицу.

        Чтобы выполнить секционирование по ссылке на свойства получателя , используйте следующий синтаксис:

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

        Секционирование по свойствам получателя применяется к:флажок Databricks SQL флажок Databricks Runtime 12.2 LTS и выше.

      • AS table_share_name

        При необходимости предоставляет таблицу под другим именем. Имя может быть квалифицировано с именем базы данных (схемы). Если table_share_name не указан, таблица будет известна под собственным именем.

      • WITH HISTORY или WITHOUT HISTORY

        Область применения: флажок Databricks SQL флажок Databricks Runtime 12.2 LTS и более поздних версий.

        При указании WITH HISTORY предоставьте доступ к таблице с полной историей, позволяя получателям выполнять запросы с использованием временных срезов. Затем можно ссылаться на общую таблицу с помощью ВЕРСИИ AS И TIMESTAMP AS.

        Если вы хотите, чтобы ваши клиенты могли запрашивать изменения в данных таблицы (CDF) с помощью функции table_changes(), помимо выполнения запросов на временные данные и потоковых чтений, необходимо включить CDF в таблице до того, как вы предоставите к ней доступ другим пользователям WITH HISTORY.

        Поведение по умолчанию для Databricks SQL и Databricks Runtime 16.2 и выше WITH HISTORY. На Databricks Runtime 16.1 и ниже это WITHOUT HISTORY.

    • REMOVE TABLE table_name

      Удалите таблицу, идентифицированную как table_name, из общей папки. Для выполнения этой инструкции необходимо быть владельцем общей папки.

    • alter_add_schema

      Область применения:флажок Databricks SQL флажок Databricks Runtime 13.3 LTS и выше

      Добавляет схему в общий доступ или изменяет существующую общую схему. Для выполнения этого запроса необходимо быть владельцем ресурса и схемы.

      • ADD SCHEMA schema_name

        Определяет добавляемую схему. Если схема не найдена, Azure Databricks вызывает ошибку SCHEMA_NOT_FOUND.

      • ALTER SCHEMA schema_name

        Определяет измененную схему. Если схема еще не является частью общей папки, Azure Databricks вызывает ошибку.

      • COMMENT comment

        Необязательный литерал STRING, прикрепленный к общей схеме в качестве комментария.

    • REMOVE SCHEMA schema_name

      Удалите схему, определяемую schema_name, из разделяемого ресурса. Для выполнения этой инструкции необходимо быть владельцем общей папки.

    • alter_add_view

      Область применения:флажок Databricks SQL флажок Databricks Runtime 13.3 LTS и выше

      Добавляет представление в общую папку или изменяет существующее общее представление. Для выполнения этой инструкции необходимо быть владельцем общей папки и иметь SELECT привилегии в представлении.

      • ADD VIEW view_name

        Определяет добавляемое представление. Если представление не удается найти Azure Databricks, возникает ошибка TABLE_OR_VIEW_NOT_FOUND .

      • ALTER VIEW view_name

        Определяет представление, которое нужно изменить. Если представление еще не входит в общую папку Azure Databricks, возникает ошибка.

      • COMMENT comment

        Необязательный STRING литерал, присоединенный к общей папке представления в качестве комментария.

      • AS view_share_name

        При необходимости предоставляет представление под другим именем. Имя может быть дополнено именем схемы. Если не view_share_name указано, представление известно под собственным именем.

        Если общее имя уже существует, Azure Databricks вызывает ошибку.

    • REMOVE VIEW view_name

      Удалите представление, определяемое view_name из общего доступа. Для выполнения этой инструкции необходимо быть владельцем общей папки.

    • alter_add_model

      Область применения:флажок Databricks SQL флажок Databricks Runtime 14.0 и более поздних версий

      Добавляет модель в общую папку или изменяет существующую общую модель. Для выполнения этой инструкции необходимо быть владельцем общей папки и иметь EXECUTE права на модель.

      • ADD MODEL model_name

        Определяет добавленную модель. Если модель не удается найти Azure Databricks, возникает ошибка RESOURCE_DOES_NOT_EXIST.

      • ALTER MODEL model_name

        Определяет модель, которая будет изменена. Если модель еще не входит в общую папку Azure Databricks, возникает ошибка.

      • COMMENT comment

        Необязательный STRING литерал, присоединенный к общей папке модели в качестве комментария.

      • AS model_share_name

        При необходимости предоставляет модель под другим именем. Имя может быть дополнено именем схемы. Если не model_share_name указано, модель известна под собственным именем.

        Если общее имя уже существует, Azure Databricks вызывает ошибку.

    • REMOVE MODEL model_name

      Удалите модель, определяемую model_name, из общего доступа. Для выполнения этой инструкции необходимо быть владельцем общей папки.

    • RENAME TO to_share_name

      Область применения:флажок Databricks SQL флажок Databricks Runtime 11.3 LTS и выше

      Переименовывает общую папку. Имя должно быть уникальным среди всех разделов в мета хранилище. Для выполнения этой инструкции необходимо быть владельцем общей папки и иметь привилегию CREATE SHARE в хранилище метаданных.

    • [ SET ] OWNER TO principal

      Передает права владения общей папкой субъекту principal. Для выполнения этой инструкции необходимо быть владельцем общей папки.

      Область применения:флажок Databricks SQL флажок Databricks Runtime 11.3 LTS и выше

      SET разрешено в качестве необязательного ключевого слова.

Примеры

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