Unity 카탈로그 뷰에서 스트림

Important

이 기능은 공개 미리 보기 상태입니다.

Databricks Runtime 14.1 이상에서는 구조적 스트리밍을 사용하여 Unity 카탈로그에 등록된 보기에서 스트리밍 읽기를 수행할 수 있습니다. Azure Databricks는 델타 테이블에 대해 정의된 뷰의 스트리밍 읽기만 지원합니다.

보기를 스트림으로 읽기

구조적 스트리밍을 사용하여 보기를 읽으려면 다음 예제와 같이 메서드에 보기의 .table() 식별자를 제공합니다.

df = (spark.readStream
  .table("demoView")
)

사용자는 대상 보기에 대한 권한이 있어야 합니다 SELECT .

뷰에 대해 스트리밍 읽기를 구성하기 위한 지원되는 옵션

뷰에 대해 스트리밍 읽기를 구성할 때 지원되는 옵션은 다음과 같습니다.

  • maxFilesPerTrigger
  • maxBytesPerTrigger
  • ignoreDeletes
  • skipChangeCommits
  • withEventTimeOrder
  • startingTimestamp
  • startingVersion

스트리밍 판독기는 기본 델타 테이블을 정의하는 파일 및 메타데이터에 이러한 옵션을 적용합니다.

Important

정의된 뷰에 대한 읽기는 UNION ALL 옵션을 withEventTimeOrderstartingVersion지원하지 않으며 .

원본 뷰에서 지원되는 작업

모든 보기가 스트리밍 읽기를 지원하는 것은 아닙니다. 원본 뷰에서 지원되지 않는 작업에는 집계 및 정렬이 포함됩니다.

다음 목록에서는 지원되는 작업에 대한 설명 및 예제 보기 정의를 제공합니다.

  • 프로젝트

    • 설명: 열 수준 사용 권한을 제어합니다.

    • 연산자: SELECT... FROM...

    • 예제 문:

      CREATE VIEW project_view AS
      SELECT id, value
      FROM source_table
      
  • Filter

    • 설명: 행 수준 사용 권한을 제어합니다.

    • 연산자: WHERE...

    • 예제 문:

      CREATE VIEW filter_view AS
      SELECT * FROM source_table
      WHERE value > 100
      
  • 모두 통합

    • 설명: 여러 테이블의 결과

    • 연산자: UNION ALL

    • 예제 문:

      CREATE VIEW union_view AS
      SELECT id, value FROM source_table1
      UNION ALL
      SELECT * FROM source_table2
      

참고 항목

뷰에서 참조되는 테이블을 추가하거나 변경하고 동일한 스트리밍 검사포인트를 사용하도록 뷰 정의를 수정할 수 없습니다.

제한 사항

다음과 같은 제한 사항이 적용됩니다.

  • 델타 테이블에서 지원되는 보기에서만 스트리밍할 수 있습니다. 다른 데이터 원본에 대해 정의된 뷰는 지원되지 않습니다.

  • Unity 카탈로그에 보기를 등록해야 합니다.

  • 지원되지 않는 연산자를 사용하여 보기에서 스트리밍하는 경우 다음 예외가 표시됩니다.

    UnsupportedOperationException: [UNEXPECTED_OPERATOR_IN_STREAMING_VIEW] Unexpected operator <operator> in the CREATE VIEW statement as a streaming source. A streaming view query must consist only of SELECT, WHERE, and UNION ALL operations.
    
  • 지원되지 않는 옵션을 제공하는 경우 다음 예외가 표시됩니다.

    AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.