ALTER SHARE

적용 대상:검사 '예'로 표시 Databricks SQL 검사 '예'로 표시 Databricks Runtime 10.4 LTS 이상 검사 '예'로 표시 Unity 카탈로그만 해당

공유에서 스키마, 테이블, 구체화된 뷰 또는 뷰를 추가, 변경 또는 제거합니다. 공유 이름을 바꿉니다. 공유 소유권을 새 보안 주체에게 전송합니다.

필요한 권한:

  • 공유 소유자를 업데이트하려면 metastore 관리자, 공유 개체의 소유자 또는 권한이 있는 USE SHARESET SHARE PERMISSION 사용자 중 하나여야 합니다.
  • 공유 이름을 업데이트하려면 metastore 관리자(또는 권한이 있는 CREATE_SHARE 사용자) 공유 소유자여야 합니다.
  • 테이블 또는 뷰를 추가하려면 공유 개체의 소유자여야 하며 테이블 USE SCHEMA 또는 뷰가 포함된 스키마와 SELECT 테이블 또는 뷰에 대한 권한이 있어야 합니다. 테이블 또는 뷰를 SELECT 공유하려면 기본 권한을 획득해야 합니다.
  • 다른 공유 속성을 업데이트하려면 소유자여야 합니다.

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 ]

참고 항목

WITH HISTORY | WITHOUT HISTORY 는 Databricks Runtime 12.2 LTS 이상에서 검사 '예'로 표시 지원됩니다. Databricks Runtime 버전 11.1~ 12.0에서는 대신 지정 WITH CHANGE DATA FEED [ START VERSION version ] ]WITH HISTORY해야 합니다.

WITH CHANGE DATA FEED는 사용되지 않습니다.

또한 시간 이동 쿼리 및 스트리밍 읽기를 수행하는 것 외에도 고객이 table_changes() 함수를 사용하여 테이블의 CDF(변경 데이터 피드)를 쿼리할 수 있도록 하려면 공유(또는WITH CHANGE DATA FEED)하기 전에 WITH HISTORY 테이블에서 CDF를 사용하도록 설정해야 합니다.

매개 변수

  • share_name

    변경할 공유의 이름입니다.

  • alter_add_materialized_view

    적용 대상:검사 '예'로 표시 Databricks SQL 검사 '예'로 표시 Databricks Runtime 13.3 LTS 이상

    Important

    이 기능은 현재 프라이빗 미리 보기로 제공됩니다. 이를 시도하려면 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 테이블을 전체 기록과 공유하여 받는 사람이 시간 이동 쿼리를 수행할 수 있도록 합니다. 그런 다음, VERSION AS OF 및 TIMESTAMP AS OF를 사용하여 공유 테이블을 참조할 수 있습니다.

        시간 이동 쿼리 및 스트리밍 읽기를 수행하는 것 외에도 고객이 table_changes() 함수를 사용하여 테이블의 CDF(변경 데이터 피드)를 쿼리할 수 있도록 하려면 공유하기 전에 WITH HISTORY테이블에서 CDF를 사용하도록 설정해야 합니다.

        기본 동작은 .입니다 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`