스트리밍 테이블은 스트리밍 또는 증분 데이터 처리를 추가로 지원하는 델타 테이블입니다. 스트리밍 테이블은 파이프라인에서 하나 이상의 흐름을 대상으로 지정할 수 있습니다.
스트리밍 테이블과 구체화된 뷰를 사용하는 시기에 대한 지침은 파이프라인이란?을 참조하세요.
스트리밍 테이블은 다음과 같은 이유로 데이터 수집에 적합합니다.
- 각 입력 행은 한 번만 처리되며, 이는 대다수의 수집 워크로드를 모델링한 것입니다(즉, 테이블에 행을 추가하거나 업서트하는 방식으로).
- 대량의 추가 전용 데이터를 처리할 수 있습니다.
스트리밍 테이블은 행 및 시간 범위에서 추론하고, 대량의 데이터를 처리하고, 짧은 대기 시간 처리를 제공할 수 있으므로 대기 시간이 짧은 스트리밍 변환에도 적합합니다.
다음 다이어그램에서는 흐름이 스트리밍 소스에서 읽고 파이프라인 내의 스트리밍 테이블에 증분 방식으로 쓰는 방법을 보여 줍니다.
각 업데이트에서 스트리밍 테이블과 연결된 흐름은 스트리밍 원본에서 변경된 정보를 읽고 해당 테이블에 새 정보를 추가합니다.
스트리밍 테이블은 단일 파이프라인에서 소유하고 업데이트합니다. 파이프라인의 소스 코드에서 스트리밍 테이블을 명시적으로 정의합니다. 파이프라인에서 정의한 테이블은 다른 파이프라인에서 변경하거나 업데이트할 수 없습니다. 단일 스트리밍 테이블에 추가할 여러 흐름을 정의할 수 있습니다.
Azure Databricks는 스트리밍 테이블 처리를 지원하기 위해 내부 테이블을 만듭니다. 이러한 테이블은 system.information_schema.tables 에 나타나지만 카탈로그 탐색기 또는 다른 작업 영역 UI 페이지에서는 표시되지 않습니다.
메모
Lakeflow Spark 선언적 파이프라인 외부에서 독립 실행형 스트리밍 테이블을 만들 때 Azure Databricks 테이블을 업데이트하는 데 사용되는 파이프라인을 만듭니다. 작업 영역의 왼쪽 탐색 영역에서 작업 및 파이프라인 을 선택하여 파이프라인을 볼 수 있습니다.
파이프라인 유형 열을 보기에 추가할 수 있습니다. 파이프라인에 정의된 스트리밍 테이블에는 형식이 있습니다 ETL. 독립 실행형 스트리밍 테이블에는 형식 MV/ST이 있습니다.
흐름에 대한 자세한 내용은 Lakeflow Spark 선언적 파이프라인 흐름을 사용하여 데이터 증분 로드 및 처리를 참조하세요.
수집을 위한 실시간 테이블
스트리밍 테이블은 추가만 가능한 데이터 소스를 위해 설계되었으며 입력을 한 번만 처리합니다. 따라서 데이터가 지속적으로 도착하고 기존 레코드를 다시 처리하지 않고 안정적으로 캡처해야 하는 수집 워크로드에 적합합니다. Azure Databricks는 Auto Loader를 사용하여 클라우드 개체 스토리지에서, 그리고 Apache Kafka, Azure Event Hubs, Google Pub/Sub와 같은 스트리밍 메시지 버스에서 스트리밍 테이블로 데이터를 수집하는 기능을 지원합니다. 수집 방법 및 코드 예제는 파이프라인에서 데이터 로드를 참조하세요.
메모
시간에 따라 변경되는 원본 데이터(예: 원본에서 업데이트되거나 삭제된 레코드) AUTO CDC 를 스트리밍하려면 해당 변경 내용을 추가하는 대신 스트리밍 테이블에 적용합니다.
변경 데이터 캡처 및 스냅샷을 참조하세요.
다음 다이어그램에서는 추가 전용 스트리밍 테이블의 작동 방식을 보여 줍니다.
스트리밍 테이블에 이미 추가된 행은 파이프라인에 대한 이후 업데이트로 다시 쿼리되지 않습니다. 쿼리를 수정하는 경우(예: SELECT LOWER (name)에서 SELECT UPPER (name)로), 기존 행은 대문자로 업데이트되지 않지만 새로 추가되는 행은 대문자로 표시됩니다. 전체 새로 고침을 트리거하여 원본 테이블의 모든 이전 데이터를 다시 쿼리하여 스트리밍 테이블의 모든 행을 업데이트할 수 있습니다.
스트리밍 테이블 및 저지연 스트리밍
스트리밍 테이블은 제한된 상태에 대한 짧은 대기 시간 스트리밍을 위해 설계되었습니다. 스트리밍 테이블은 검사점 관리를 사용하므로 대기 시간이 짧은 스트리밍에 적합합니다. 그러나 자연적으로 경계가 설정되거나 워터마크로 경계가 설정된 스트림을 예상합니다.
자연스럽게 제한된 스트림은 잘 정의된 시작 및 끝이 있는 스트리밍 데이터 원본에 의해 생성됩니다. 자연적으로 제한된 스트림의 예는 파일의 초기 일괄 처리 후 새 파일이 추가되지 않는 파일 디렉터리에서 데이터를 읽는 것입니다. 파일 수가 유한하고 모든 파일이 처리된 후 스트림이 종료되므로 스트림이 제한된 것으로 간주됩니다.
워터마크를 사용하여 스트림을 바인딩할 수도 있습니다. 구조적 스트리밍의 워터마크는 시간이 완료된 것으로 간주하기 전에 시스템에서 지연된 이벤트를 대기해야 하는 시간을 지정하여 늦은 데이터를 처리하는 데 도움이 되는 메커니즘입니다. 제한이 없는 스트림에 워터마크가 없으면 메모리 압력으로 인해 파이프라인이 실패할 수 있습니다.
가능한 대기 시간이 가장 낮은 운영 워크로드의 경우 실시간 모드로 파이프라인을 실행하여 초 미만의 엔드 투 엔드 대기 시간으로 레코드를 처리할 수 있습니다.
자세한 내용은 다음을 참조하세요:
스트리밍 테이블 제한 사항
스트리밍 테이블에는 다음과 같은 제한 사항이 있습니다.
-
제한된 진화: 전체 데이터 세트를 다시 계산하지 않고 쿼리를 변경할 수 있습니다. 전체 새로 고침이 없으면 스트리밍 테이블은 각 행을 한 번만 볼 수 있으므로 다른 쿼리가 다른 행을 처리합니다. 예를 들어 쿼리의 필드에 추가하는
UPPER()경우 변경 후 처리된 행만 대문자로 표시됩니다. 즉, 데이터 세트에서 실행 중인 모든 이전 버전의 쿼리를 알고 있어야 합니다. 변경 전에 처리된 기존 행을 다시 처리하려면 전체 새로 고침이 필요합니다. - 상태 관리: 스트리밍 테이블은 대기 시간이 짧으며 자연스럽게 바인딩되거나 워터마크로 바인딩된 스트림이 필요합니다. 자세한 내용은 워터마크를 사용하여 상태 저장 처리 최적화를 참조하세요.
- 조인은 다시 계산되지 않습니다 . 스트리밍 테이블의 조인은 차원이 변경되면 다시 계산되지 않습니다. 이 특성은 "빠르지만 잘못된" 시나리오에 적합할 수 있습니다. 보기가 항상 정확하도록 하려면 구체화된 뷰를 사용할 수 있습니다. 구체화된 뷰는 차원이 변경될 때 조인을 자동으로 다시 계산하기 때문에 항상 정확합니다. 자세한 내용은 구체화된 뷰를 참조하세요. 스트림을 정적 차원 테이블에 조인하는 예제는 Stream-static 조인을 참조하세요.
-
지원 안 함
CLONE: 스트리밍 테이블을 깊거나 단순 클론의 원본 또는 대상으로 사용할 수 없습니다. 지원되지 않는 다른 명령은 제한 사항을 참조하세요. -
REFRESH파이프라인을 보는 데 필요한 권한: 스트리밍 테이블을 백업하는 파이프라인을 보려면 관리자가 아닌 사용자는 파이프라인에 대한 권한 외에도 스트리밍 테이블에 대한 권한이 필요합니다REFRESH. 파이프라인 및 해당 출력을 볼 수 있는 사람은 누구인가요?