다음을 통해 공유


ALTER STREAMING TABLE

적용 대상:예로 표시된 확인 Databricks SQL

다음 작업을 수행할 수 있습니다.

  • 기존 스트리밍 테이블을 새로 고치는 일정 또는 트리거를 추가합니다.
  • 스트리밍 테이블에 대한 기존 새로 고침 일정 또는 트리거를 변경합니다.
  • 스트리밍 테이블에 대한 새로 고침 일정 또는 트리거를 삭제합니다. 일정이나 트리거가 없는 경우 최신 데이터를 반영하기 위해 개체를 수동으로 새로 고쳐야 합니다.

스트리밍 테이블에 주석을 추가하거나 변경하려면 .를 사용합니다 COMMENT ON.

참고 항목

정의된 SQL과 모순되는 방식으로 파이프라인에서 만든 데이터 세트를 변경하면 일부 변경 내용이 되돌려질 수 있습니다. Lakeflow Spark 선언적 파이프라인에서 명령 사용을 ALTER 참조하세요.

구문

ALTER STREAMING TABLE table_name
  {
    { ADD | ALTER } schedule
    DROP SCHEDULE |
    ALTER COLUMN column_clause |
    SET ROW FILTER clause |
    DROP ROW FILTER |
    SET TAGS clause |
    UNSET TAGS clause |
  }

  schedule
  { SCHEDULE [ REFRESH ] schedule_clause |
    TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ] }

  schedule_clause
  { EVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS } |
    CRON cron_string [ AT TIME ZONE timezone_id ] }

  column_clause
    column_identifier
    { COMMENT clause |
      SET MASK clause |
      DROP MASK |
      SET TAGS clause |
      UNSET TAGS clause }

매개 변수

  • table_name

    정의를 변경할 스트리밍 테이블의 이름입니다. 이름에는 임시 사양이 포함되지 않아야 합니다.

  • 일정

    테이블에 대한 SCHEDULE 또는 문을 추가하거나 TRIGGER 변경합니다.

    참고 항목

    이 명령을 사용하여 Lakeflow Spark 선언적 파이프라인을 사용하여 만든 스트리밍 테이블의 일정을 수정할 수 없습니다. 파이프라인 편집기를 사용합니다.

    • SCHEDULE [ REFRESH ] schedule_clause

      • EVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS }

        주기적으로 발생하는 새로 고침을 예약하려면 EVERY 구문을 사용합니다. EVERY 구문을 지정하면 스트리밍 테이블 또는 구체화된 뷰는 제공된 값(예: HOUR, HOURS, DAY, DAYS, WEEK또는 WEEKS)에 따라 지정된 간격으로 주기적으로 새로 고쳐집니다. 다음 표에서는 number허용되는 정수 값을 나열합니다.

        시간 단위 정수 값
        HOUR or HOURS 1 <= H <= 72
        DAY or DAYS 1<은 D이고 <은 31입니다
        WEEK or WEEKS 1 <= W <= 8

        참고 항목

        포함된 시간 단위의 단수 및 복수 형태는 의미상 동일합니다.

      • CRON cron_string [ AT TIME ZONE timezone_id ]

        quartz cron 값을 사용하여 새로 고침을 예약할 수 있습니다. 유효한 time_zone_values 허용됩니다. AT TIME ZONE LOCAL은 지원되지 않습니다.

        AT TIME ZONE이 없는 경우 세션 표준 시간대가 사용됩니다. AT TIME ZONE이 존재하지 않고 세션 시간대가 설정되지 않으면 오류가 발생합니다. SCHEDULESCHEDULE REFRESH와 의미 체계가 같습니다.

    • TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ]

      중요합니다

      TRIGGER ON UPDATE 기능은 베타에 있습니다.

      업스트림 데이터 원본이 업데이트될 때 최대 1분마다 한 번씩 테이블을 새로 고치도록 설정합니다. 새로 고침 사이에 최소 시간이 필요한 값을 AT MOST EVERY 설정합니다.

      업스트림 데이터 원본은 외부 또는 관리형 델타 테이블(구체화된 뷰 또는 스트리밍 테이블 포함) 또는 종속성이 지원되는 테이블 형식으로 제한되는 관리형 뷰여야 합니다.

      파일 이벤트를 사용하도록 설정하면 트리거 성능이 향상되고 트리거 업데이트에 대한 일부 제한이 증가할 수 있습니다.

      INTERVAL trigger_interval문은 1분 이상입니다.

      TRIGGER ON UPDATE 에는 다음과 같은 제한 사항이 있습니다.

      • TRIGGER ON UPDATE을 사용하는 경우 스트리밍 테이블당 10개 이하의 업스트림 데이터 원본이 있습니다.
      • TRIGGER ON UPDATE을 사용하여 최대 1,000개 스트리밍 테이블 또는 구체화된 뷰를 지정할 수 있습니다.
      • 이 절은 AT MOST EVERY 기본적으로 1분이며 1분 미만일 수 없습니다.
  • DROP SCHEDULE

    스트리밍 테이블에서 일정을 제거합니다.

  • ALTER COLUMN clause

    ALTER COLUMN 절을 참조하세요.

  • SET ROW FILTER 절

    중요합니다

    이 기능은 공개 미리보기 단계에 있습니다.

    스트리밍 테이블에 행 필터 함수를 추가합니다. 스트리밍 테이블에 대한 모든 후속 쿼리는 함수가 부울 TRUE로 평가되는 행의 하위 집합을 받습니다. 이는 함수가 호출하는 사용자의 ID 또는 그룹 멤버 자격을 검사하여 특정 행을 필터링할지 여부를 결정할 수 있는 세분화된 액세스 제어 목적에 유용할 수 있습니다.

    만든 후에 추가된 행 필터는 다음 업데이트 후에만 다운스트림 테이블로 전파됩니다. 연속 파이프라인의 경우 파이프라인을 다시 시작해야 합니다.

  • DROP ROW FILTER

    중요합니다

    이 기능은 공개 미리보기 단계에 있습니다.

    스트리밍 테이블에서 행 필터를 삭제합니다(있는 경우). 이후 쿼리는 자동 필터링 없이 테이블의 모든 행을 반환합니다.

  • SET TAGS ( { tag_name = tag_value } [, ...] )

    중요합니다

    이 기능은 공개 미리보기 단계에 있습니다.

    스트리밍 테이블에 태그를 적용합니다. 스트리밍 테이블에 태그를 추가할 수 있는 권한이 있어야 합니다 APPLY TAG .

    • tag_name

      리터럴 STRING이라는 것입니다. tag_name 스트리밍 테이블 내에서 고유해야 합니다.

    • tag_value

      리터럴 STRING이라는 것입니다.

  • UNSET TAGS ( tag_name [, ...] )

    중요합니다

    이 기능은 공개 미리보기 단계에 있습니다.

    스트리밍 테이블에서 태그를 제거합니다. 스트리밍 테이블에서 태그를 제거할 수 있는 권한이 있어야 합니다 APPLY TAG .

    • tag_name

      리터럴 STRING이라는 것입니다. tag_name 스트리밍 테이블 내에서 고유해야 합니다.

ALTER COLUMN 절

중요합니다

이 기능은 공개 미리보기 단계에 있습니다.

열의 위치나 속성을 변경합니다.

구문

  ALTER COLUMN
    column_identifier
    { COMMENT comment |
      SET MASK mask_clause |
      DROP MASK |
      SET TAGS clause |
      UNSET TAGS clause }

매개 변수

  • column_identifier

    변경할 열의 이름입니다.

  • COMMENT comment

    column_name 열에 대한 설명을 변경합니다. commentSTRING 리터럴로 있어야 합니다.

  • SET MASK 절

    열 마스크 함수를 추가하여 중요한 데이터를 익명화합니다. 해당 열의 모든 후속 쿼리는 열의 원래 값 대신 열에 대해 해당 함수를 평가한 결과를 받습니다. 이 기능은 함수가 호출하는 사용자의 ID 또는 그룹 멤버 자격을 검사하여 값을 수정할지 여부를 결정할 수 있는 세분화된 액세스 제어 목적에 유용할 수 있습니다.

    만든 후에 추가된 열 마스크는 다음 업데이트 후에 다운스트림 테이블로만 전파됩니다. 연속 파이프라인의 경우 파이프라인을 다시 시작해야 합니다.

  • DROP MASK

    이 열에 대한 열 마스크(있는 경우)를 제거합니다. 이 열의 이후 쿼리는 열의 원래 값을 받습니다.

  • SET TAGS ( { tag_name = tag_value } [, ...] )

    열에 태그를 적용합니다. 열에 태그를 추가할 수 있는 APPLY TAG 권한이 있어야 합니다.

    • tag_name

      리터럴 STRING이라는 것입니다. tag_name은 테이블 또는 열 내에서 고유해야 합니다.

    • tag_value

      리터럴 STRING이라는 것입니다.

  • UNSET TAGS ( tag_name [, ...] )

    열에서 지정된 태그를 제거합니다. 열에서 태그를 제거할 수 있는 APPLY TAG 권한이 있어야 합니다.

    • tag_name

      리터럴 STRING이라는 것입니다. tag_name은 테이블 또는 열 내에서 고유해야 합니다.

예제

-- Adds a schedule to refresh the streaming table whenever its upstream data gets updated.
> ALTER STREAMING TABLE my_st
    ADD TRIGGER ON UPDATE;

-- Alters the schedule to refresh the streaming table when its upstream data
-- gets updated, with no more than one update per hour.
> ALTER STREAMING TABLE my_st
    ALTER TRIGGER ON UPDATE AT MOST EVERY INTERVAL 1 hour;

-- Alters the schedule to run every one hour.
> ALTER STREAMING TABLE my_st
  ALTER SCHEDULE EVERY 1 HOUR;

-- Alters the schedule to refresh the streaming table once a day
-- at midnight in Los Angeles
> ALTER STREAMING TABLE my_st
  ALTER SCHEDULE CRON '0 0 0 * * ? *' AT TIME ZONE 'America/Los_Angeles';

-- Drops the schedule for a streaming table
> ALTER STREAMING TABLE my_st
  DROP SCHEDULE;

-- Adds a column comment
> ALTER STREAMING TABLE my_st
    ALTER COLUMN column_name COMMENT 'test'