데이터 계보는 Azure Databricks의 데이터가 어디에서 왔고 어디로 가는지, 즉 어떤 쿼리와 파일이 테이블을 채우는지, 어떤 작업과 노트북이 데이터를 변환하는지, 그리고 어떤 대시보드가 그 결과를 소비하는지를 보여 줍니다.
Unity Catalog는 Azure Databricks에서 실행되는 쿼리에 대한 데이터 계보를 열 수준까지 자동으로 수집하고, 이를 메타스토어에 연결된 모든 작업 영역 전반에서 집계합니다. Unity 카탈로그의 계보를 사용하면 다음을 수행할 수 있습니다.
- 영향 분석 수행: 테이블 또는 열을 변경하거나 삭제하기 전에 이를 사용하는 다운스트림 테이블, 작업 및 대시보드를 식별합니다.
- 근본 원인 조사: 다운스트림 보고서에 예기치 않은 결과가 표시되면 업스트림 원본을 추적하여 데이터가 분기된 위치를 찾습니다.
- 중요한 데이터 흐름 추적: 규정 준수 감사의 경우 규제 대상 데이터의 시작 위치, 변환 방법 및 이를 사용하는 다운스트림 자산을 참조하세요.
- 팀 간 종속성 이해: 사용하는 업스트림 원본을 소유한 팀 또는 테이블을 사용하는 팀을 검색합니다.
Unity 카탈로그는 또한 Unity 게이트웨이를 통해 관리하는 모델 API(모델 서비스)와 외부 모델 제공자(모델 제공자 서비스)의 계보를 수집합니다. 각 서비스에 대해 Unity Catalog는 해당 서비스가 제공하는 모델과 로그에 기록하는 추론 테이블을 추적하므로, 이러한 AI 의존성이 테이블과 같은 계보 그래프 내 노드로 나타납니다. 트랙 모델 API 및 제공자 계보를 참조하세요.
외부 계보는 계보 그래프를 Azure Databricks 이상으로 확장합니다. Salesforce 또는 MySQL과 같은 업스트림 원본과 Tableau 또는 Power BI 같은 다운스트림 도구를 Unity 카탈로그의 외부 자산으로 등록하면 단일 그래프에서 Unity 카탈로그 테이블과 함께 표시됩니다. 외부 계보를 참조하세요.
Unity 카탈로그는 사용자 정의 함수(UDF)의 계보도 추적합니다. 자세한 내용은 UDF 계보 보기를 참조하세요.
다음 이미지는 샘플 계보 그래프입니다. 노드는 테이블 및 뷰, ML 모델 버전, 외부 자산 및 파일 경로를 나타낼 수 있습니다.
요구 사항
Unity 카탈로그를 사용하여 데이터 계보를 캡처하려면 다음을 수행합니다.
- Unity 카탈로그 메타스토어에 테이블을 등록해야 합니다.
- 외부 자산(Unity 카탈로그 메타스토어에 등록되지 않은 자산)은 Unity 카탈로그 메타스토어에 등록된 다른 보안 개체와의 관계를 갖도록 구성된 Unity 카탈로그의 외부 메타데이터 개체로 추가해야 합니다. 외부 계보를 참조하세요.
- 쿼리는 Spark DataFrame(예: DataFrame을 반환하는 Spark SQL 함수) 또는 Notebook 또는 SQL 쿼리 편집기 같은 Databricks SQL 인터페이스를 사용해야 합니다.
데이터 계보를 보려면 다음을 수행합니다.
- 테이블 또는 뷰의 부모 카탈로그에서 최소한
BROWSE권한을 가지고 있어야 합니다. 부모 카탈로그는 작업 영역에서도 액세스할 수 있어야 합니다. 작업 영역 카탈로그 바인딩을 참조하세요. - Notebook, 작업 또는 대시보드의 경우 작업 영역의 액세스 제어 설정에 정의된 대로 이러한 개체에 대한 권한이 있어야 합니다. 자세한 내용은 권한을 참조하세요.
- Unity 카탈로그 사용 파이프라인의 경우 파이프라인에 대한 CAN VIEW 권한이 있어야 합니다.
컴퓨팅 요구 사항:
- 델타 테이블 간의 스트리밍 계보 추적에는 Databricks Runtime 11.3 LTS 이상이 필요합니다.
- Lakeflow 파이프라인 워크로드에 대한 열 계보 추적에는 Databricks Runtime 13.3 LTS 이상이 필요합니다.
네트워킹 요구 사항:
- Azure Databricks 컨트롤 플레인의 Event Hubs 엔드포인트에 연결할 수 있도록 아웃바운드 방화벽 규칙을 업데이트해야 할 수 있습니다. 이는 일반적으로 Azure Databricks 작업 영역이 사용자 고유의 VNet(VNet 삽입이라고도 함)에 배포되는 경우에 적용됩니다. 작업 영역 영역에 대한 Event Hubs 엔드포인트를 얻으려면 Metastore, 아티팩트 Blob Storage, 시스템 테이블 스토리지, 로그 Blob Storage 및 Event Hubs 엔드포인트 IP 주소를 참조하세요. Azure Databricks 대한 UDR(사용자 정의 경로)을 설정하는 방법에 대한 자세한 내용은
Azure Databricks.
카탈로그 탐색기에서 계보 보기
카탈로그 탐색기를 사용하여 테이블 계보를 보려면:
Azure Databricks 작업 영역에서
Catalog 클릭합니다.
테이블을 검색하거나 찾아보세요.
계보 탭을 선택합니다. 계보 패널이 나타나고 관련 테이블이 표시됩니다.
데이터 계보의 대화형 그래프를 보려면 계보 그래프 보기를 클릭합니다.
기본적으로 한 수준이 그래프에 표시됩니다. 노드에서
아이콘을 클릭하여 사용 가능한 경우 더 많은 연결을 표시합니다.계보 그래프의 연결 가장자리에 있는 아이콘을 클릭하여 계보 세부 정보 패널을 엽니다.
계보 세부 정보 패널에는 원본 및 대상 테이블을 포함하여 연결에 대한 세부 정보가 표시됩니다.
테이블과 연결된 자산을 보려면 계보 세부 정보 패널에서 자산을 선택합니다. 노트북, 작업, 파이프라인 및 쿼리를 기준으로 필터링할 수 있습니다.
열 수준 계보를 보려면 그래프의 열을 클릭하여 관련 열에 대한 링크를 표시합니다. 예를 들어 이 샘플 그래프에서 열을 클릭하면
revenue열이 파생된 업스트림 열이 표시됩니다.
모델 API 및 제공자 계보 보기
모델 API(모델 서비스) 또는 외부 모델 제공자(모델 제공자 서비스)의 계보를 보려면 카탈로그 탐색기에서 계 보 탭을 엽니다. 자세한 내용은 트랙 모델 API 및 제공자 계보를 참조하세요.
작업 계보 보기
작업 계보를 보려면 테이블의 계보 탭으로 이동하여 작업을 선택하고 다운스트림을 선택합니다. 작업 이름이 테이블의 소비자로 작업 이름 아래에 나타납니다.
대시보드 계보 보기
대시보드 계보를 보려면 테이블의 계보 탭으로 이동하여 대시보드를 클릭합니다. 대시보드는 대시보드 이름 아래에 테이블의 소비자로 표시됩니다.
UDF 계보 보기
UDF 계보를 사용해 Unity 카탈로그에서 사용자 정의 함수(UDF)가 어디에 사용되는지 추적하여, 변경 전에 공유 UDF를 수정했을 때의 영향을 평가할 수 있습니다. UDF 계보는 작업, 파이프라인, 노트북, SQL 쿼리와 같이 UDF를 호출하는 워크로드와 정의에서 UDF를 참조하는 데이터 자산을 추적합니다. Unity 카탈로그는 SQL, Python, Scala UDF의 UDF 계보를 포착합니다.
UDF의 계보를 확인하려면:
- Azure Databricks 작업 영역에서
Catalog 클릭합니다.
- 기능을 검색하거나 둘러보세요.
- 계보 탭을 선택하세요. 탭에는 UDF에 연결된 자산과 각 자산의 방향, 유형, 마지막 활동이 나열되어 있습니다.
다음 예시는 UDF의 udf_demo.default.normalize_email계보 탭을 보여줍니다. 하위 자산에는 테이블, 함수를 호출하는 쿼리와 노트북, 그리고 이를 실행하는 작업이 포함됩니다 customer_profiles_view .
테이블이나 뷰 간 데이터를 변환하는 데 사용되는 UDF도 계보 그래프에 캡처됩니다. 다음 예에서 customers 테이블과 뷰 사이의 연결선에 대한 customer_profiles_view 패널에는 데이터를 변환하는 normalize_email UDF가 나열됩니다:
UDF 계보에는 일반적인 데이터 계보 제한 외에도 다음과 같은 제한이 있습니다:
- Unity 카탈로그는 테이블 수준에서 UDF 계보를 기록합니다. 열 단위의 UDF 계보는 캡처되지 않습니다.
- SQL UDF는
UPDATE,MERGE, 그리고INSERT문에서 캡처되지 않습니다. - UDF 본체 내에서 참조된 테이블이나 함수에 대해서는 계보가 캡처되지 않습니다.
- 테이블 값 함수, 머신러닝 함수, 특징 명세 함수는 계보에 포함되지 않습니다.
- UDF 계보를 계보 시스템 테이블로 쿼리할 수 없습니다.
지니 코드를 사용하여 계보 가져오기
Genie Code는 자연어로 계보 질문에 대답할 수 있습니다.
Genie Code를 사용하여 계보 정보를 얻으려면 다음을 수행합니다.
- 작업 영역 사이드바에서
을 클릭합니다.카탈로그.
- 카탈로그를 찾아보거나 검색하고 카탈로그 이름을 클릭한 다음
을 클릭합니다. 오른쪽 위 모서리에 있는 지니 코드 아이콘입니다.
- 지니 코드 프롬프트에서 다음을 입력합니다.
-
/getTableLineages업스트림 및 다운스트림 종속성을 볼 수 있습니다. -
/getTableInsights사용자 활동 및 쿼리 패턴과 같은 메타데이터 기반 인사이트에 액세스합니다.
-
이러한 쿼리를 통해 Genie Code는 "다운스트림 계보 표시" 또는 "이 테이블을 가장 자주 쿼리하는 사용자"와 같은 질문에 대답할 수 있습니다.
시스템 테이블을 사용하여 계보 쿼리
계보 시스템 테이블을 사용하여 계보 데이터를 프로그래밍 방식으로 쿼리할 수 있습니다. 자세한 지침은 시스템 테이블 참조 및 계보 시스템 테이블 참조를 참조하세요.
메모
Unity Catalog UDF의 계보 정보는 계보 시스템 테이블에서 제공되지 않습니다. 자세한 내용은 UDF 계보 보기를 참조하세요.
Permissions
계보 그래프는 Unity 카탈로그와 동일한 권한 모델을 공유합니다. Unity 카탈로그 메타스토어에 등록된 테이블 및 기타 데이터 개체는 해당 개체에 대해 BROWSE 이상의 권한이 있는 사용자에게만 표시됩니다. 사용자에게 테이블에 대한 BROWSE 또는 SELECT 권한이 없는 경우 해당 계보를 탐색할 수 없습니다.
계보는 Unity 카탈로그 메타스토어에 연결된 모든 작업 영역에서 집계되므로 사용자가 적절한 개체 권한을 갖는 한, 한 작업 영역에서 캡처된 계보는 해당 메타스토어를 공유하는 다른 모든 작업 영역에 표시됩니다. 다른 작업 영역의 Notebook 및 대시보드와 같은 작업 영역 수준 개체에 대한 자세한 정보는 마스킹됩니다. 제한 사항을 참조하세요.
예를 들어 userA에 대해 다음과 같은 명령을 실행합니다.
GRANT USE SCHEMA on lineage_data.lineagedemo to `userA@company.com`;
GRANT SELECT on lineage_data.lineagedemo.menu to `userA@company.com`;
userA가 lineage_data.lineagedemo.menu 테이블의 계보 그래프를 보면 menu 테이블이 표시됩니다. 관련된 테이블(예: 다운스트림 lineage_data.lineagedemo.dinner 테이블)에 대한 정보를 볼 수 없습니다.
dinner에는 masked 테이블이 userA 노드로 나타나며, userA는 액세스 권한이 없는 테이블에서 다운스트림 테이블을 표시하기 위해 그래프를 확장할 수 없습니다.
다음 명령을 실행하여 BROWSE에 userB 권한을 부여하면, 해당 사용자는 lineage_data 스키마에 있는 모든 테이블의 계보 그래프를 볼 수 있습니다.
GRANT BROWSE on lineage_data to `userB@company.com`;
계보 사용자에게는 Notebook, 작업 및 대시보드와 같은 작업 영역 개체를 볼 수 있는 특정 권한이 있어야 합니다. 이러한 개체에 대한 자세한 정보는 개체가 만들어진 작업 영역에만 표시됩니다.
Unity 카탈로그의 보안 개체에 대한 액세스를 관리하는 방법에 대한 자세한 내용은 Unity 카탈로그의 권한 관리를 참조하세요. Notebook, 작업 및 대시보드와 같은 작업 영역 개체에 대한 액세스를 관리하는 방법에 대한 자세한 내용은 Access 제어 목록을 참조하세요.
Retention
카탈로그 탐색기에 표시되는 계보 데이터는 무기한 보존됩니다. 2024년 9월 1일 이후에 캡처된 모든 계보 데이터를 사용할 수 있습니다. 해당 날짜 이후에 만든 메타스토어의 경우 카탈로그 탐색기에 계보 시간 범위 드롭다운에 모든 시간 옵션이 포함됩니다. 이전 메타스토어의 경우 드롭다운에는 2024년 9월 1일부터 시작하는 사용 가능한 모든 옵션이 포함됩니다. 기본 선택 영역은 1년입니다.
계보 시스템 테이블(system.access.table_lineage 및 system.access.column_lineage)은 롤링 1년 기간의 데이터를 유지합니다.
계보 시스템 테이블 참조를 참조하세요.
Limitations
데이터 계보에는 다음과 같은 제한 사항이 있습니다. 계보 시스템 테이블에도 이러한 제한 사항이 적용됩니다.
- 2024년 9월 1일 이전에 캡처된 계보 데이터는 사용할 수 없습니다.
- 작업 API
runs submit요청 또는spark submit작업 유형을 사용하는 작업은 계보 보기에서 사용할 수 없습니다. 이러한 워크플로에 대한 테이블 및 열 수준 계보는 여전히 캡처되지만 작업 실행에 대한 링크는 캡처되지 않습니다. - 이름이 바뀐 카탈로그, 스키마, 테이블, 뷰 또는 열에는 계보가 유지되지 않습니다.
- Spark SQL 데이터 세트 검사점을 사용하는 경우 계보가 캡처되지 않습니다.
- Unity 카탈로그는 대부분의 경우 Lakeflow 파이프라인에서 계보를 캡처하지만 PRIVATE 테이블을 사용하는 파이프라인의 경우 적용 범위가 불완전합니다.
- RDD(복원력 있는 분산 데이터 세트)는 계보에서 캡처되지 않습니다.
- 글로벌 임시 보기는 데이터 흐름에 추적되지 않습니다.
- 트랜잭션은 읽기와 쓰기가 발생할 때마다 계보를 방출한다. 계보 이벤트는 트랜잭션이 롤백되더라도 유지됩니다.
-
system.information_schema아래 테이블은 계보로 캡처되지 않습니다. - Unity 카탈로그는 가능한 한 열 단위로 계통을 캡처합니다. 그러나 열 수준 계보를 캡처할 수 없는 경우가 있습니다. 이러한 개체는 다음과 같습니다.
원본 또는 대상이 경로로 참조되면 열 계보를 캡처할 수 없습니다(예:
select * from delta."s3://<bucket>/<path>"). 열 계보는 원본과 대상이 모두 테이블 이름으로 참조되는 경우에만 지원됩니다(예:select * from <catalog>.<schema>.<table>).사용자 정의 함수(UDF)의 사용은 소스 열과 대상 열의 매핑을 가릴 수 있습니다. Unity Catalog는 UDF의 테이블 수준 계보를 기록하지만, 열 단위의 UDF 계보는 포함하지 않습니다. 자세한 내용은 UDF 계보 보기를 참조하세요.
추가 리소스
- 데모: Unity Catalog - 데이터 계보
- ML 모델 계보: 기계 학습 모델의 계보를 추적하려면 Unity 카탈로그에서 모델의 데이터 계보 추적을 참조하세요.
- 테이블 인사이트: 카탈로그 탐색기의 인사이트 탭에는 쿼리 패턴, 상위 사용자 및 읽은 대시보드와 같은 테이블의 사용 추세가 표시됩니다. 테이블 인사이트 및 인기도 보기를 참조하세요.