다음을 통해 공유


Databricks SQL에서 스트리밍 tables 사용하여 데이터 로드

Databricks는 Databricks SQL로 데이터를 수집하기 위해 스트리밍 tables을 사용할 것을 권장합니다. 스트리밍 table는 스트리밍 또는 증분 데이터 처리를 추가로 지원하며 Unity Catalog에 등록된 table입니다. 각 스트리밍 table에 대해 Delta Live Tables의 파이프라인이 자동으로 만들어집니다. Kafka 및 클라우드 개체 스토리지로부터의 증분 데이터 로드에 스트리밍 tables을 사용할 수 있습니다.

이 문서에서는 스트리밍 tables 사용하여 Unity Catalog 볼륨(권장) 또는 외부 위치로 구성된 클라우드 개체 스토리지에서 데이터를 로드하는 방법을 보여 줍니다.

참고 항목

Delta Lake tables 스트리밍 원본 및 싱크로 사용하는 방법을 알아보려면 Delta table 스트리밍 읽기 및 쓰기참조하세요.

Important

Databricks SQL에서 생성된 스트리밍 tables는 서버리스 Delta Live Tables 파이프라인의 지원을 받습니다. 이 기능을 사용하려면 작업 영역에서 서버리스 파이프라인을 지원해야 합니다.

시작하기 전에

시작하기 전에 다음 요구 사항을 충족해야 합니다.

작업 영역 요구 사항:

컴퓨팅 요구 사항:

다음 중 하나를 사용해야 합니다.

  • Current 채널을 사용하는 SQL 웨어하우스입니다.

  • 공유 액세스 모드를 사용하여 Databricks Runtime 13.3 LTS 이상에서 컴퓨팅합니다.

  • Databricks Runtime 15.4 LTS 이상에서 단일 사용자 액세스 모드로 컴퓨팅합니다.

    Databricks Runtime 15.3 이하에서는 다른 사용자()가 소유한 스트리밍 tables를 단일 사용자 컴퓨팅을 사용하여 쿼리할 수 없습니다. 스트리밍 table를 소유한 경우에만 Databricks Runtime 15.3 및 이하 버전에서 단일 사용자 컴퓨팅을 사용할 수 있습니다. table 작성자는 소유자입니다.

    Databricks Runtime 15.4 LTS 이상은 Delta Live Tables에 의해 생성된 tables에 대한 쿼리를, table 소유권에 관계없이 단일 사용자 컴퓨트에서 지원합니다. Databricks Runtime 15.4 LTS 이상에서 제공되는 데이터 필터링을 활용하려면 Delta Live Tables-generated tables 지원하는 데이터 필터링 기능이 서버리스 컴퓨팅에서 실행되기 때문에 작업 영역 서버리스 컴퓨팅 사용하도록 설정되어 있는지 확인해야 합니다. 단일 사용자 컴퓨팅을 사용하여 데이터 필터링 작업을 실행할 때 서버리스 컴퓨팅 리소스에 대한 요금이 부과될 수 있습니다. 단일 사용자 컴퓨팅에 대한 세분화된 액세스 제어를 참조 하세요.

권한 요구 사항

기타 요구 사항:

  • 원본 데이터의 경로.

    볼륨 경로 예제: /Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>

    외부 위치 경로 예제: abfss://myContainer@myStorageAccount.dfs.core.windows.net/analysis

    참고 항목

    이 문서에서는 로드하려는 데이터가 액세스 권한이 있는 Unity Catalog 볼륨 또는 외부 위치에 해당하는 클라우드 스토리지 위치에 있다고 가정합니다.

원본 데이터 검색 및 미리 보기

  1. 작업 영역의 사이드바에서 쿼리를 클릭한 다음 쿼리 만들기.를 클릭합니다.

  2. 쿼리 편집기에서 드롭다운 list에서 Current 채널을 사용하는 SQL 웨어하우스 select.

  3. 다음을 편집기에 붙여넣고, 원본 데이터를 식별하는 정보를 꺾쇠 괄호(<>) 안의 values로 대체한 후, 실행()을 클릭합니다.

    참고 항목

    함수의 기본값이 데이터를 구문 분석할 수 없는 경우 read_filestable valued 함수를 실행할 때 schema 유추 오류가 발생할 수 있습니다. 예를 들어, 여러 줄로 구성된 CSV 또는 JSON 파일의 경우, 여러 줄 모드를 설정해야 할 수 있습니다. 파서 옵션의 list에 대한 정보는 read_files table값 함수를 참조하세요.

    /* Discover your data in a volume */
    LIST "/Volumes/<catalog>/<schema>/<volume>/<path>/<folder>"
    
    /* Preview your data in a volume */
    SELECT * FROM read_files("/Volumes/<catalog>/<schema>/<volume>/<path>/<folder>") LIMIT 10
    
    /* Discover your data in an external location */
    LIST "abfss://<container>@<storage-account>.dfs.core.windows.net/<path>/<folder>"
    
    /* Preview your data */
    SELECT * FROM read_files("abfss://<container>@<storage-account>.dfs.core.windows.net/<path>/<folder>") LIMIT 10
    

스트리밍 에 데이터를 로드 table

클라우드 오브젝트 스토리지의 데이터로부터 table 스트리밍을 생성하려면, 다음 내용을 쿼리 편집기에 붙여 넣고, 실행을 클릭합니다.

/* Load data from a volume */
CREATE OR REFRESH STREAMING TABLE <table-name> AS
SELECT * FROM STREAM read_files('/Volumes/<catalog>/<schema>/<volume>/<path>/<folder>')

/* Load data from an external location */
CREATE OR REFRESH STREAMING TABLE <table-name> AS
SELECT * FROM STREAM read_files('abfss://<container>@<storage-account>.dfs.core.windows.net/<path>/<folder>')

런타임 채널 Set

SQL 웨어하우스를 사용하여 만든 스트리밍 tables은 Delta Live Tables 파이프라인을 통해 자동으로 새로 고쳐집니다. Delta Live Tables 파이프라인은 기본적으로 current 채널에서 런타임을 사용합니다. 릴리스 프로세스에 대한 자세한 내용은 Delta Live Tables 릴리스 정보 및 릴리스 업그레이드 프로세스 참조하세요.

Databricks는 프로덕션 워크로드에 current 채널을 사용하는 것이 좋습니다. 새로운 기능이 채널에 preview 처음 릴리스됩니다. 파이프라인을 미리 보기 Delta Live Tables 채널에 setpreviewtable 속성으로 지정하여 새 기능을 테스트할 수 있습니다. table 만들 때 또는 ALTER 문을 사용하여 table 만든 후에 이 속성을 지정할 수 있습니다.

다음 코드 예제는 CREATE 문에서 채널을 미리 보기에 set하는 방법을 보여 줍니다.

CREATE OR REPLACE MATERIALIZED VIEW foo.default.bar
TBLPROPERTIES ('pipelines.channel' = 'preview') as
SELECT
  *
FROM
  range(5)

DLT 파이프라인을 사용하여 스트리밍 tableRefresh

이 섹션에서는 쿼리에 정의된 원본에서 사용할 수 있는 최신 데이터를 사용하여 스트리밍 table 새로 고치는 패턴을 설명합니다.

스트리밍 tableCREATE 또는 REFRESH 경우 update 서버리스 Delta Live Tables 파이프라인을 사용하여 처리합니다. 각 스트리밍 table마다 연결된 Delta Live Tables 파이프라인이 있습니다.

REFRESH 명령을 실행하면 DLT 파이프라인 링크가 반환됩니다. DLT 파이프라인 링크를 사용하여 refresh상태를 확인할 수 있습니다.

참고 항목

table 소유자만 get 최신 데이터를 스트리밍 tablerefresh 수 있습니다. table 만드는 사용자는 소유자이며 소유자는 변경할 수 없습니다. 스트리밍 table을 refresh 해야 할 수도 있습니다. 그런 다음 시간 이동 쿼리를 사용할 수 있습니다.

Delta Live Tables란?.

새 데이터만 수집

기본적으로 read_files 함수는 table 만드는 동안 원본 디렉터리의 모든 기존 데이터를 읽은 다음 각 refresh새로 도착한 레코드를 처리합니다.

table 생성 시 원본 디렉터리에 이미 있는 데이터를 수집하지 않도록 하려면 falseincludeExistingFiles 옵션을 set. 즉, table 만든 후에 디렉터리에 도착하는 데이터만 처리됩니다. 예시:

CREATE OR REFRESH STREAMING TABLE my_bronze_table
AS SELECT *
FROM STREAM read_files(
  'abfss://myContainer@myStorageAccount.dfs.core.windows.net/analysis/*/*/*.json',
  includeExistingFiles => false)

완전히 refresh 스트리밍 table

전체 새로 고침은 원본에서 사용 가능한 모든 데이터를 최신 정의로 다시 처리합니다. 전체 refresh 기존 데이터를 자르기 때문에 데이터의 전체 기록을 유지하지 않거나 Kafka와 같은 짧은 보존 기간이 있는 원본에서 전체 새로 고침을 호출하지 않는 것이 좋습니다. 데이터가 더 이상 원본에 남아 있지 않으면 이전 데이터를 복구하지 못할 수 있습니다.

예시:

REFRESH STREAMING TABLE my_bronze_table FULL

스트리밍 table을 자동 refresh로 예약

정의된 일정에 따라 스트리밍 table를 자동으로 refresh으로 구성하려면 다음을 쿼리 편집기에 붙여넣고, 실행을 클릭하세요.

ALTER STREAMING TABLE
[[<catalog>.]<database>.]<name>
ADD [SCHEDULE [REFRESH]
        CRON '<cron-string>'
                [ AT TIME ZONE '<timezone-id>' ]];

예를 들어 refresh 일정 쿼리에 대한 예시는 ALTER STREAMING TABLE을 참조하세요.

refresh 상태를 추적하다

Delta Live Tables UI에서 스트리밍 table 관리하는 파이프라인을 보거나 스트리밍 table대한 DESCRIBE EXTENDED 명령에서 반환한 Refresh 정보 확인하여 스트리밍 tablerefresh 상태를 볼 수 있습니다.

DESCRIBE EXTENDED <table-name>

Kafka에서 스트리밍 수집

카프카에서 스트리밍 수집 사례는 read_kafka를 참조하세요.

Grant 사용자는 스트리밍 table에 대한 액세스 권한을 가집니다.

사용자에게 스트리밍 table에 대한 SELECT 권한을 grant 부여하여, 쿼리할 수 있도록 다음을 쿼리 편집기에 붙여넣고, 실행을클릭합니다.

GRANT SELECT ON TABLE <catalog>.<schema>.<table> TO <user-or-group>

Unity Catalog 보안 개체에 대한 권한 부여에 대한 자세한 내용은 Unity Catalog 권한 및 보안 개체참조하세요.

쿼리 기록을 사용하여 실행 모니터링

쿼리 기록 페이지를 사용하여 스트리밍 table 업데이트를 실행하는 데 사용되는 Delta Live Tables 파이프라인에서 성능이 저조한 쿼리 및 병목 상태를 식별하는 데 도움이 되는 쿼리 세부 정보 및 쿼리 프로필에 액세스할 수 있습니다. 쿼리 기록 및 쿼리 프로필에서 사용할 수 있는 정보의 종류에 대한 개요는 쿼리 기록쿼리 프로필을 참조하세요.

Important

이 기능은 공개 미리 보기 상태입니다. 작업 영역 관리자는 미리 보기 페이지에서 이 기능을 사용하도록 설정할 수 있습니다 . Azure Databricks 미리 보기 관리를 참조하세요.

스트리밍 tables와 관련된 모든 진술이 쿼리 기록에 표시됩니다. 드롭다운 필터를 사용하여 명령을 select하고 관련 쿼리를 검사할 수 있습니다. 모든 CREATE 문 뒤에는 Delta Live Tables 파이프라인에서 비동기적으로 실행되는 REFRESH 문이 있습니다. 이 문에는 REFRESH 일반적으로 성능 최적화에 대한 인사이트를 제공하는 자세한 쿼리 계획이 포함됩니다.

쿼리 기록 UI의 문에 액세스 REFRESH 하려면 다음 단계를 사용합니다.

  1. 왼쪽 사이드바를 클릭하여 기록 아이콘 쿼리 기록 UI를 엽니다.
  2. 드롭다운 필터에서 Select의 확인란을 REFRESH하십시오.
  3. 쿼리 문 이름을 클릭하여 쿼리 기간 및 집계 메트릭과 같은 요약 세부 정보를 봅니다.
  4. 쿼리 프로필 보기를 클릭하여 쿼리 프로필을 엽니다. 쿼리 프로필 탐색에 대한 자세한 내용은 쿼리 프로필을 참조하세요.
  5. 필요에 따라 쿼리 원본 섹션의 링크를 사용하여 관련 쿼리 또는 파이프라인을 열 수 있습니다.

SQL 편집기 또는 SQL 웨어하우스에 연결된 Notebook의 링크를 사용하여 쿼리 세부 정보에 액세스할 수도 있습니다.

참고 항목

스트리밍 table은(는) 미리 보기 채널를 사용하여 실행되도록 구성해야 합니다. 런타임 채널 참조하세요.

추가 리소스