다음을 통해 공유


구조적 스트리밍에서 Unity Catalog 사용

Azure Databricks에서 Unity Catalog의 구조적 스트리밍을 사용하여 증분 및 스트리밍 워크로드의 데이터 거버넌스를 관리하세요. 이 문서에서는 지원되는 기능을 간략하게 설명하고 Unity Catalog 및 구조적 스트리밍을 함께 사용하기 위한 모범 사례를 제안합니다.

Catalog Unity에서 지원하는 구조적 스트리밍 기능은 무엇인가요?

Unity Catalog Azure Databricks에서 사용할 수 있는 구조적 스트리밍 원본 및 싱크에 대한 명시적 제한을 추가하지 않습니다. Unity Catalog 데이터 거버넌스 모델을 사용하면 Unity Catalog의 관리 및 외부의 tables 데이터를 스트리밍할 수 있습니다. Unity Catalog가 관리하는 외부 위치를 활용하여, 개체 스토리지 URI를 통해 데이터와 상호 작용할 수 있습니다. table 이름 또는 파일 경로를 사용하여 외부 tables에 쓸 수 있습니다. Unity Catalog에서 관리되는 tables와 반드시 table 이름을 사용하여 상호 작용해야 합니다.

스트럭처드 스트리밍 검사점의 경로를 지정할 때 Unity Catalog에서 관리하는 외부 위치를 사용합니다. Unity 사용하여 스토리지를 안전하게 연결하는 방법에 대한 자세한 내용은 Unity 사용하여 클라우드 개체 스토리지 및 서비스에 대한 연결을 참조하세요.

구조적 스트리밍 기능 지원은 실행 중인 Databricks 런타임 버전과 할당된 클러스터 액세스 모드 또는 공유 클러스터 액세스 모드를 사용하는지 여부에 따라 다릅니다. 자세한 내용은 Unity의 스트리밍 제한 Catalog를 참조하세요.

엔드 투 엔드 데모를 보려면 Unity Catalog의 구조적 스트리밍을 사용하세요. 자세한 내용은 자습서: 엔드 투 엔드 레이크하우스 분석 파이프라인를 참조하세요.

Unity Catalog지원되지 않는 구조적 스트리밍 기능은 무엇인가요?

Unity 에서 지원되지 않는 구조적 스트리밍 기능의 목록은 Unity 스트리밍 제한 사항을 참조하시기 바랍니다.

Unity Catalog 보기를 스트림으로 읽습니다.

Important

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

Databricks Runtime 14.1 이상에서는 Unity Catalog에 등록된 views에서 구조적 스트리밍을 사용하여 스트리밍 읽기를 수행할 수 있습니다. Azure Databricks는 Delta tables대해 정의된 views 스트리밍 읽기만 지원합니다.

구조적 스트리밍으로 보기를 읽으려면, 다음 예제와 같이 .table() 메서드에 대한 identifier을(를) 제공합니다.

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

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

views 대해 스트리밍 읽기를 구성하는 지원되는 옵션

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

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

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

Important

UNION ALL 정의된 views 대한 읽기는 withEventTimeOrderstartingVersion옵션을 지원하지 않습니다.

원본 views에서 지원되는 작업

모든 views가 스트리밍 읽기를 지원하는 것은 아닙니다. views 원본에서 지원되지 않는 작업은 집계와 정렬을 포함합니다.

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

  • 프로젝트

    • 설명: column수준 권한 제어

    • 연산자 :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

    • 설명: 여러 tables 결과

    • 연산자 :UNION ALL

    • 예제 문:

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

참고 항목

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

제한 사항

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

  • Delta tables에서 지원하는 views에서만 스트리밍할 수 있습니다. 다른 데이터 원본에 대해 정의된 Views 지원되지 않습니다.

  • views을 Unity Catalog에 등록해야 합니다.

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

    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.