Snowsight 의 데이터 계보¶
Snowflake는 데이터가 소스에서 대상 오브젝트(예: 테이블에서 뷰로)로 이동하는 방식을 추적하고, 오브젝트의 데이터가 어디에서 왔는지 또는 어디로 가는지 확인할 수 있게 해줍니다. 이 정보는 데이터 계보 라고 하며, Snowflake 오브젝트 간의 관계를 이해하는 데 도움이 됩니다.
데이터 계보는 두 가지 유형의 관계를 포착합니다.
데이터가 한 오브젝트에서 다른 오브젝트로 복사본이 복사되거나 구체화되는 경우와 같은 데이터 이동. 예를 들어, CREATE TABLE AS SELECT (CTAS), INSERT 또는 MERGE 테이블에 대한 작업은 데이터 이동을 초래합니다.
오브젝트가 기본 오브젝트를 참조하지만 뷰가 테이블을 참조하는 경우와 같이 데이터를 구체화하거나 복사본으로 만들지 않는 경우의 오브젝트 종속성입니다.
Snowsight 의 Lineage 탭을 사용하여 오브젝트 및 열의 계보를 볼 수 있습니다. Snowflake는 프로그래밍 방식으로 계보 정보를 검색할 수 있는 SQL 함수 도 제공합니다. 관련 기능인 ML 계보 에서는 머신 러닝 모델 및 관련 오브젝트에 대한 계보 정보를 제공합니다.
Snowflake 데이터 계보는 이러한 이점을 제공합니다.
서로 다른 오브젝트 간의 관계를 이해하여 영향 분석을 제공합니다.
데이터 이동 계보 및 오브젝트 종속성을 뷰로 확인하여 모니터링 및 문제 해결을 개선합니다.
민감한 데이터의 흐름을 추적하여 규정 준수를 용이하게 합니다.
소스 및 대상 오브젝트와 열을 이해하여 데이터에 대한 신뢰도를 개선합니다.
계보 보기 관리자를 위임할 수 있습니다. 자세한 내용은 Snowsight에서 계보 정보에 액세스하기 섹션을 참조하십시오.
이 항목에서는 Snowsight 를 사용하여 오브젝트 및 열 계보를 보고 다운스트림 또는 업스트림 테이블에 표시되는 열에 태그를 설정하는 방법에 대한 정보를 제공합니다.
Snowsight 의 데이터 계보 정보¶
Snowsight 의 Lineage 탭을 사용하여 소스 및 대상 오브젝트 측면에서 오브젝트의 관계를 파악할 수 있습니다. 계보 용어로 소스 오브젝트는 대상 오브젝트의 “업스트림”이고 대상 오브젝트는 소스 오브젝트의 “다운스트림”입니다. Snowsight는 선택 항목의 업스트림 또는 다운스트림에서 한 번에 한 단계씩 오브젝트를 점진적으로 표시합니다.
예를 들어 SQL 문을 예로 들 수 있습니다.
CREATE TABLE table2 AS SELECT col1 FROM table1;
table2
는 대상 테이블이며 소스 테이블인 table1
의 다운스트림입니다. 테이블 table1
에서 시작된 열 col1
은 테이블 table2
에 포함되며, 이 역시 다운스트림 계보 관계입니다. Snowsight 에서 table1
테이블의 세부 정보를 뷰하는 경우 Lineage 탭에 table1
에서 table2
를 가리키는 화살표가 표시되어 다운스트림 계보 관계를 나타냅니다. 대신 테이블 table2
에서 시작하면 화살표가 table2
에서 table1
로 향합니다. 두 테이블에서 col1
열에 대한 유사한 관계를 확인할 수도 있습니다.
이 정보를 사용하여 소스 테이블에서 대상 테이블로 민감한 데이터가 어떻게 흘러가는지 파악하고 마스킹 정책 등을 통해 민감한 열을 보호하고 민감한 열에 태그를 지정하는 등의 전략을 개발할 수 있습니다.
지원되는 작업¶
Snowflake는 동적 테이블, 외부 테이블, 뷰 및 구체화된 뷰를 포함하여 테이블 및 테이블과 유사한 오브젝트에서 이러한 작업에 대한 데이터 계보를 추적합니다.
CREATE TABLE … AS SELECT (CTAS)
UPDATE, 예:
UPDATE mydb.schema1.table1 FROM mydb.schema2.table2 SET table1.col1 = table2.col1;
지원되는 오브젝트¶
데이터 계보 지원 테이블형 오브젝트 간 데이터 이동 및 종속성 . “테이블과 유사한” 오브젝트란 테이블을 포함하여 테이블처럼 쿼리할 수 있는 모든 오브젝트를 말합니다(테이블보다 더 테이블과 유사한 것은 없습니다). 테이블형 오브젝트에는 다음이 포함됩니다.
테이블
동적 테이블
외부 테이블
Iceberg 테이블
뷰
구체화된 뷰
스테이지도 다음과 같은 머신 러닝 오브젝트와 마찬가지로 데이터 계보 관계에 참여할 수 있습니다.
열 계보는 두 개의 테이블형 오브젝트에서 열 간에 지원됩니다. 예를 들어, 테이블에서 열을 선택하면 해당 열이 표시되는 다른 테이블형 오브젝트를 보여주는 다운스트림 열 계보를 볼 수 있습니다.
또한 태그 및 마스킹 정책을 관리할 수 있는 권한이 있는 역할을 사용하는 경우 태그 및 마스킹 정책 연결을 볼 수 있습니다.
ML 계보¶
ML 계보 는 특히 단순한 이동이나 종속성 관계보다는 머신 러닝 워크플로에서 데이터가 어떻게 사용되고 변환되는지에 초점을 맞춘 머신 러닝 관계를 지원합니다. 다음 유형의 오브젝트 간의 관계가 지원됩니다.
이름 변경 및 삭제된 테이블 노드¶
이름이 변경된 테이블과 삭제된 테이블은 그래프에 표시되며, 삭제된 테이블은 회색으로 표시됩니다.
계보 보존 및 백필링¶
Lineage 그래프는 실시간으로 계보 정보를 제공하며, 추적된 작업은 Snowsight UI 에 지연 없이 표시됩니다. 기록 정보는 다음과 같이 보관됩니다.
칼럼 계보는 1년간 유지됩니다.
오브젝트 계보는 1년간 유지됩니다.
삭제된 오브젝트에 대한 계정은 14일 동안 보관됩니다.
이 미리 보기에서는 데이터 이동을 포함하지 않는 종속성은 Snowflake 활동 기록에서 보존 제한까지 다시 채워집니다. 예를 들어, 6개월 전에 테이블에서 뷰를 생성한 경우 이 종속성은 테이블의 다운스트림 계보 관계와 뷰의 업스트림 관계로 표시됩니다. 이 미리 보기(2024년 11월에 출시) 이전에 발생한 테이블 간(데이터 이동) 관계는 캡처되지 않을 수 있습니다.
참고
이 미리 보기를 시작할 때 일부 계정에는 전체 계보 데이터가 즉시 표시되지 않을 수 있습니다. 해당 계정에 대한 계보 데이터는 아직 복구 중이며, 향후 몇 주 내에 가용성을 확보할 수 있을 것입니다.
제한 사항¶
다음 종류의 오브젝트에는 Lineage 탭을 사용할 수 없습니다.
공유 데이터베이스의 오브젝트.
공유 SNOWFLAKE 데이터베이스의 오브젝트.
데이터베이스의 INFORMATION_SCHEMA 에 있는 오브젝트입니다.
동적 테이블은 다른 오브젝트의 계보 그래프에 표시되지만 동적 테이블 자체에는 Lineage 탭이 표시되지 않습니다.
쿼리 정보는 데이터 이동 관계에 대해서만 가용성이 있으며 오브젝트 종속성에는 사용할 수 없습니다. ACCOUNTADMIN 역할이 있는 사용자만 쿼리 정보를 볼 수 있습니다. 다른 역할은 쿼리 정보를 사용할 수 없습니다.
Snowsight에서 계보 정보에 액세스하기¶
Lineage 탭에 액세스하여 오브젝트의 업스트림 및 다운스트림 계보 오브젝트와 종속성을 모두 보려면 다음 권한이 있는 역할을 사용하십시오.
계보를 평가하려는 오브젝트에 대한 모든 권한(예: 테이블의 SELECT).
USAGE 를 오브젝트가 포함된 데이터베이스 및 스키마에 추가합니다.
계정에 대한 VIEW LINEAGE 권한.
다음 예제에서는 사용자 지정 역할을 만들고 필요한 권한을 부여합니다.
USE ROLE ACCOUNTADMIN;
CREATE ROLE lineage_role;
GRANT VIEW LINEAGE ON ACCOUNT TO ROLE lineage_role;
GRANT SELECT ON mydb.sch.mytable TO ROLE lineage_role;
계보 그래프에서 업스트림 또는 다운스트림 오브젝트에 대한 권한이 없는 경우 해당 오브젝트를 볼 수 있는 권한이 충분하지 않다는 메시지와 함께 오브젝트가 회색으로 표시됩니다. Snowflake 계정 관리자에게 오브젝트에 대한 권한을 부여해 달라고 요청하십시오. 필요한 경우 글로벌 VIEW LINEAGE 권한도 요청하십시오.
회색 오브젝트는 계보 그래프에서 터미널 노드를 의미하는 것이 아니라 해당 오브젝트의 계보를 검색할 수 있는 권한이 없기 때문에 해당 지점에서 더 이상 상류 또는 하류의 계보를 볼 수 없음을 나타낼 뿐입니다. 이 동작은 다른 액세스 정책으로 보호되는 오브젝트 및 열에도 적용됩니다.
데이터 계보 및 태그 열 모니터링¶
참고
태그를 지정하려면 Snowflake Enterprise Edition이 필요합니다.
테이블의 데이터 계보를 모니터링하고 민감한 열에 태그를 지정하려면 다음을 수행합니다.
필요한 권한 이 있는 역할을 사용하여 오브젝트의 업스트림 및 다운스트림 계보를 봅니다.
Snowsight 에서 Data » Databases 으로 이동합니다.
데이터베이스, 스키마 및 지원되는 오브젝트 를 선택합니다.
Lineage 탭을 선택합니다.
웨어하우스가 아직 사용 중이 아니면 웨어하우스를 선택합니다. 계보 그래프를 생성하려면 웨어하우스가 필요합니다.
계보 그래프는 해당하는 경우 오브젝트와 한 레벨의 다운스트림 및 업스트림 오브젝트로 시작됩니다. 화살표는 왼쪽에서 오른쪽을 가리키며 대상 테이블의 열에 소스 테이블의 열이 포함되어 있음을 나타냅니다. 테이블을 선택하고 해당 열을 볼 수 있습니다.
열에 마스킹 정책이 설정되어 있고 정책에 오류가 있는 경우 이 프로시저에서 태그 할당을 완료하고 Columns 탭(테이블 또는 뷰의 경우)으로 전환하여 마스킹 정책 할당을 편집할 수 있습니다. Policy Error 에 마우스를 가져가면 오류에 대한 설명이 표시됩니다.
계보 그래프에서 특정 테이블 열에 대한 자세한 내용을 보려면 테이블을 선택합니다. 표시되는 세부정보 패널에서 열 위로 마우스를 가져간 다음 그래프 선택에 따라 View Lineage 또는 View Dependencies 를 선택합니다.
테이블에 열이 많은 경우 검색 필터를 사용하여 열의 위치를 찾을 수 있습니다.
View Column Lineage 대화 상자에서 Downstream Lineage 또는 Upstream Lineage 를 선택합니다.
열 및 테이블 세부정보와 열에 할당된 태그를 평가합니다.
열의 태그는 소스 열 및 대상 열에 태그가 있는지 여부와 연관됩니다.
테이블에 있어서는 안 되는 열이 포함된 경우 테이블을 만드는 SQL 문을 수정합니다.
테이블에 해당 태그가 없어야 하는 열에 태그가 할당된 경우 해당 열에 태그를 할당하는 SQL 문을 업데이트하거나 Snowsight 를 사용하여 태그 할당을 업데이트합니다.
ACCOUNTADMIN 역할 또는 글로벌 APPLY TAG 권한이 부여된 역할을 사용하는 경우 Review Columns and Apply Tags 배너가 표시됩니다. 열에 태그를 적용하려면 다음을 수행합니다.
배너에서 Review Columns and Apply Tags 를 선택합니다.
아직 적용되지 않은 변경 사항은 다른 색상과 패턴으로 강조 표시됩니다.
열에 설정할 새 태그에는 파란색 점선 테두리가 있습니다.
업데이트할 태그 값에는 노란색 테두리가 있습니다.
그래프에서 선택한 테이블을 기준으로 열에 태그가 아직 설정되어 있지 않으면 배너가 표시되지 않습니다.
Apply Tags 를 선택하여 태그를 적용하고 열의 태그 값을 업데이트합니다.
열에 태그를 설정할 수 없는 경우 설정할 수 없는 태그의 열 개수가 오류 메시지로 표시됩니다. Review Columns and Apply Tags 를 선택하여 이전 단계를 반복하여 태그를 할당합니다.
열에 태그를 할당하면 배너가 사라집니다.