Azure Data Lake Storage Gen2에서 데이터 온보딩
이 문서에서는 Azure Data Lake Storage Gen2에서 새 Azure Databricks 작업 영역에 데이터를 온보딩하는 방법을 설명합니다. Unity 카탈로그 볼륨(권장) 또는 Unity 카탈로그 외부 위치에 해당하는 클라우드 개체 스토리지 위치의 원본 데이터에 안전하게 액세스하는 방법을 알아봅니다. 그런 다음 델타 라이브 테이블과 함께 자동 로더를 사용하여 Unity 카탈로그 관리 테이블에 데이터를 증분 방식으로 수집하는 방법을 알아봅니다.
참고 항목
Notebook 대신 Databricks SQL에서 데이터를 온보딩하려면 Databricks SQL의 스트리밍 테이블을 사용하여 데이터 로드를 참조하세요.
시작하기 전에
관리자가 아닌 경우 이 문서에서는 관리자가 다음을 제공했다고 가정합니다.
Unity 카탈로그를 사용하도록 설정된 Azure Databricks 작업 영역에 대한 액세스 자세한 내용은 Unity 카탈로그 설정 및 관리를 참조하십시오.
READ FILES
원본 데이터를 포함하는 클라우드 스토리지 위치에 해당하는 Unity 카탈로그 외부 볼륨 또는 Unity 카탈로그 외부 위치에 대한 권한입니다. 자세한 내용은 클라우드 스토리지를 Azure Databricks에 연결하기 위한 외부 위치 생성 방법을 참조하세요.원본 데이터의 경로.
볼륨 경로 예제:
/Volumes/<catalog>/<schema>/<volume>/<path>/<folder>
외부 위치 경로 예제:
abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>
USE SCHEMA
데이터를 로드하려는 스키마에 대한 권한 및CREATE TABLE
권한입니다.Delta Live Tables 파이프라인 클러스터(
cluster_type
필드가 로 설정dlt
됨)를 정의하는 클러스터 만들기 권한 또는 클러스터 정책에 대한 액세스 권한입니다.원본 데이터의 경로가 볼륨 경로인 경우 클러스터는 Databricks Runtime 13.3 LTS 이상을 실행해야 합니다.
Important
이러한 필수 구성 요소에 대한 질문이 있는 경우 계정 관리자에게 문의하세요.
1단계: 클러스터 만들기
클러스터를 만들려면 다음을 수행합니다.
- Azure Databricks 작업 영역에 로그인합니다.
- 사이드바에서 새>클러스터를 클릭합니다.
- 클러스터 UI에서 클러스터의 고유한 이름을 지정합니다.
- 원본 데이터의 경로가 볼륨 경로인 경우 Databricks 런타임 런타임 버전의 경우 13.2 이상을 선택합니다.
- 클러스터 만들기를 클릭합니다.
2단계: 데이터 탐색 Notebook 만들기
이 섹션에서는 데이터 파이프라인을 만들기 전에 데이터를 이해할 수 있도록 데이터 탐색 Notebook을 만드는 방법을 설명합니다.
사이드바에서 +새>전자 필기장을 클릭합니다.
Notebook은 사용한 마지막 클러스터에 자동으로 연결됩니다(이 경우 1단계에서 만든 클러스터: 클러스터 만들기).
Notebook 이름을 입력하세요.
언어 단추를 클릭한 다음 드롭다운 메뉴에서 선택
Python
하거나SQL
선택합니다.Python
는 기본적으로 선택되어 있습니다.ADLS Gen2에서 원본 데이터에 대한 데이터 액세스를 확인하려면 다음 코드를 Notebook 셀에 붙여넣고 클릭한 다음 셀 실행을 클릭합니다.
SQL
LIST '<path-to-source-data>'
Python
%fs ls '<path-to-source-data>'
데이터를 포함하는 디렉터리의 경로로 바꿉
<path-to-source-data>
니다.그러면 데이터 세트가 포함된 디렉터리의 내용이 표시됩니다.
각 레코드의 내용과 형식을 더 잘 이해하기 위해 레코드 샘플을 보려면 다음을 전자 필기장 셀에 붙여넣고 클릭한 다음 셀 실행을 클릭합니다.
SQL
SELECT * from read_files('<path-to-source-data>', format => '<file-format>') LIMIT 10
Python
spark.read.format('<file-format>').load('<path-to-source-data>').limit(10).display()
다음 값을 바꿉니다.
<file-format>
: 지원되는 파일 형식입니다. 파일 형식 옵션을 참조 하세요.<path to source data>
: 데이터를 포함하는 디렉터리의 파일에 대한 경로입니다.
지정된 파일의 처음 10개 레코드가 표시됩니다.
3단계: 원시 데이터 수집
원시 데이터를 수집하려면 다음을 수행합니다.
사이드바에서 새>전자 필기장을 클릭합니다.
Notebook은 사용한 마지막 클러스터에 자동으로 연결됩니다(이 경우 이 문서의 앞부분에서 만든 클러스터).
Notebook 이름을 입력하세요.
언어 단추를 클릭한 다음 드롭다운 메뉴에서 선택
Python
하거나SQL
선택합니다.Python
는 기본적으로 선택되어 있습니다.다음 코드를 Notebook 셀에 붙여넣습니다.
SQL
CREATE OR REFRESH STREAMING TABLE <table-name> AS SELECT * FROM STREAM read_files( '<path-to-source-data>', format => '<file-format>' )
Python
@dlt.table(table_properties={'quality': 'bronze'}) def <table-name>(): return ( spark.readStream.format('cloudFiles') .option('cloudFiles.format', '<file-format>') .load(f'{<path-to-source-data>}') )
다음 값을 바꿉니다.
<table-name>
: 수집된 레코드를 포함할 테이블의 이름입니다.<path-to-source-data>
: 원본 데이터의 경로입니다.<file-format>
: 지원되는 파일 형식입니다. 파일 형식 옵션을 참조 하세요.
참고 항목
델타 라이브 테이블은 Notebook 셀에서 대화형으로 실행되도록 설계되지 않았습니다. Notebook에서 Delta Live Tables 구문을 포함하는 셀을 실행하면 쿼리가 구문상 유효한지 여부에 대한 메시지가 반환되지만 쿼리 논리는 실행되지 않습니다. 다음 단계에서는 방금 만든 수집 Notebook에서 파이프라인을 만드는 방법을 설명합니다.
4단계: 파이프라인 만들기 및 게시
파이프라인을 만들고 Unity 카탈로그에 게시하려면 다음을 수행합니다.
- 사이드바에서 워크플로를 클릭하고 델타 라이브 테이블 탭을 클릭한 다음 파이프라인 만들기를 클릭합니다.
- 파이프라인의 이름을 입력합니다.
- 파이프라인 모드의 경우 트리거를 선택합니다.
- 소스 코드의 경우 파이프라인 소스 코드가 포함된 Notebook을 선택합니다.
- 대상의 경우 Unity 카탈로그를 선택합니다.
- 테이블이 Unity 카탈로그에서 관리되고 부모 스키마에 액세스할 수 있는 모든 사용자가 테이블을 쿼리할 수 있도록 하려면 드롭다운 목록에서 카탈로그 및 대상 스키마를 선택합니다.
- 클러스터 만들기 권한이 없는 경우 드롭다운 목록에서 Delta Live Tables를 지원하는 클러스터 정책을 선택합니다.
- 고급의 경우 채널을 미리 보기로 설정합니다.
- 다른 모든 기본값을 적용하고 만들기를 클릭합니다.
5단계: 파이프라인 예약
파이프라인을 예약하려면 다음을 수행합니다.
- 사이드바에서 Delta Live Tables을 클릭합니다.
- 예약할 파이프라인의 이름을 클릭합니다.
- 일정 추가 일정을>클릭합니다.
- 작업 이름에 작업 이름을 입력합니다.
- 예약을 예약됨으로 설정합니다.
- 기간, 시작 시간 및 표준 시간대를 지정합니다.
- 파이프라인 시작, 성공 또는 실패에 대한 경고를 받도록 하나 이상의 이메일 주소를 구성합니다.
- 만들기를 클릭합니다.
다음 단계
- 사용자에게 새 테이블에 대한 액세스 권한을 부여합니다. 자세한 내용은 Unity Catalog 권한 및 보안 개체를 참조하세요.
- 이제 새 테이블에 액세스할 수 있는 사용자는 Notebook에서 테이블을 쿼리하거나 Databricks SQL 편집기를 사용할 수 있습니다.