Azure SQL 데이터 계보: Azure SQL 및 Synapse SQL용 열 계보

Azure SQL 데이터 계보 Azure SQL Database, Azure SQL Managed Instance 및 Synapse SQL에서 실행되는 T-SQL 코드를 통해 데이터가 흐르는 방식을 열별로 보여주는 맵입니다. 즉, 어떤 소스 열이 어떤 뷰, 저장 프로시저, 조인 및 함수를 거쳐 각 대상 열에 데이터를 전달하는지 나타냅니다. 이 맵을 가장 정확하게 구축하는 방법은 T-SQL 코드 자체를 구문 분석하는 것입니다. Gudu SQLFlow 이 기능은 전용 Azure SQL 방언 파서를 사용하여 정확히 그 작업을 수행하며, 결과로 생성된 열 수준 계보를 Microsoft Purview로 푸시하여 나머지 Azure 환경과 함께 표시할 수 있습니다.

30초 안에 시도해 보세요: Azure SQL 쿼리 또는 저장 프로시저를 여기에 붙여넣으세요. 무료 SQLFlow 계보 시각화 도구Azure SQL 방언을 선택하면 대화형 열 수준 계보 다이어그램을 얻을 수 있습니다. 클라우드 에디션은 무료 티어를 제공합니다.

Azure SQL 데이터 계보에서 구문 분석 문제가 발생하는 이유는 무엇일까요?

Azure에서 실제로 데이터를 변형하는 변환 로직은 파이프라인 정의에 있는 경우가 드뭅니다. 이러한 로직은 T-SQL에 있으며, 뷰 위에 뷰를 계층화하거나 Azure Data Factory 활동에서 호출되는 저장 프로시저 등에 존재합니다. 병합 실행 중에 생성되는 문장, 임시 테이블 및 동적 SQL. 파이프라인 메타데이터만으로 구축된 계보 그림은 상자만 보여줄 뿐 그 안에서 무슨 일이 일어나는지는 보여주지 않습니다.

그것을 알기 위해 보고서.월간_수익 다음과 같이 계산됩니다. SUM(주문 수량) 필터링됨 주문 상태데이터베이스 엔진처럼 SQL을 읽는 무언가가 필요합니다. 즉, CTE, 서브쿼리, 뷰 등을 통해 모든 열 참조를 해석해야 합니다. 선택하다 * 확장을 수행한 다음 소스 열에서 대상 열로의 데이터 흐름을 추적합니다. 이것이 정적 SQL 분석이며, SQLFlow가 설계된 목적입니다. SQLFlow는 SQL 코드와 스키마 메타데이터만 읽고 테이블의 행에는 절대 접근하지 않습니다.

Microsoft Purview가 한계를 드러내는 지점과 파싱이 그 공백을 메우는 방법

Microsoft Purview는 카탈로그 중심 플랫폼이 해야 할 일을 정말 잘 해냅니다. Azure 환경 전체의 자산을 스캔하고 분류하고, 민감한 데이터를 매핑하고, Azure Data Factory 및 Synapse 파이프라인과 같은 통합된 데이터 이동 도구의 계보를 보여줍니다. Azure를 어떤 규모로 운영하든 Purview는 계보를 관리하기에 적합한 곳입니다. 표시된.

격차는 혈통이 형성되는 방식에 있다. 계산된Purview의 자동화된 SQL 계보에는 복잡한 T-SQL, 즉 제어 흐름이 있는 저장 프로시저, 임시 테이블 스테이징 및 동적 SQL에 대한 기능이 부족합니다. sp_executesql 자동화된 분석 범위가 부족하고 계통 정보의 가장자리가 사라지는 곳이 바로 그런 곳입니다. 또한 가장 위험한 변이가 발생하는 곳이기도 합니다.

효율적인 업무 분담 방식: SQLFlow는 T-SQL을 구문 분석하고 프로시저 및 동적 SQL을 포함하여 열 수준의 계보를 계산한 다음 Microsoft Purview 어댑터를 통해 내보냅니다. SQLFlow는 계산을 수행하고 Purview는 전체 시스템에 대한 표시를 담당합니다. 하나의 카탈로그만 유지하면 SQL 관련 부분이 더 이상 비어 있지 않게 됩니다.

SQLFlow가 Azure SQL 코드에서 추출하는 내용

SQLFlow는 하나의 일반적인 ANSI 문법 대신 39개의 방언별 파서를 제공하며, Azure SQL은 SQL Server와 함께 T-SQL 계열에 속합니다. Synapse 전용 SQL 풀도 T-SQL을 사용하므로 Synapse SQL 스크립트에도 동일한 분석이 적용됩니다. Azure SQL 코드의 경우 SQLFlow는 다음과 같은 결과를 출력합니다.

  • 컬럼 수준 계보: 각 출력 열에 대해 해당 열에 데이터를 제공하는 정확한 소스 열과 그 사이에 사용된 함수, 형변환, 서브쿼리, 조인 및 집합 연산자를 표시합니다. 참조는 CTE, 뷰, 서브쿼리 및 스타 확장을 통해 해결됩니다.
  • 직접 혈통 vs 간접 혈통: 사용되는 열 어디 절, 가입하다 상태, 또는 그룹화 기준 출력 결과에는 나타나지 않지만 출력 결과에 영향을 미칩니다. SQLFlow는 이를 별도의 토글 가능한 관계 유형으로 모델링하므로 영향 분석에서 대부분의 계보 도구가 무시하는 필터 열을 포착할 수 있습니다.
  • 저장 프로시저 계보: T-SQL 계열 전용 절차 파서는 프로시저 매개변수와 임시 테이블을 통한 데이터 흐름을 추적하고 어떤 프로시저가 어떤 프로시저를 호출하는지 보여주는 대화형 호출 그래프를 생성합니다.
  • 동적 SQL 해결: 프로시저 내에서 SQL이 구성되고 실행됩니다. 임원 또는 sp_executesql 건너뛰는 대신 해결하고 분석합니다. 이는 자동화된 계보 분석에서 가장 흔한 사각지대입니다.
  • DDL에서 생성된 ER 다이어그램: 테이블 정의에서 추론된 기본 키 및 외래 키 관계를 엔티티-관계 다이어그램으로 나타낸 것입니다.

입력은 붙여넣은 SQL, 업로드된 스크립트 파일 또는 JDBC를 통해 가져온 실시간 메타데이터일 수 있으므로 SQLFlow를 Azure SQL 데이터베이스에 연결하여 뷰 및 프로시저 정의를 직접 수집하도록 할 수 있습니다.

예시: 동적 SQL을 사용하는 T-SQL 프로시저

자동화된 계보 스캐너를 무력화시키는 절차는 다음과 같습니다. 데이터를 임시 테이블에 저장한 다음 최종 테이블을 구축합니다. 끼워 넣다 문자열로 인식하여 실행합니다.

CREATE PROCEDURE dbo.usp_refresh_regional_sales @region NVARCHAR(50) AS BEGIN SELECT o.customer_id, SUM(o.amount) AS total_amount INTO #staged FROM dbo.orders AS o WHERE o.region = @region GROUP BY o.customer_id; DECLARE @sql NVARCHAR(MAX) = N' INSERT INTO dbo.regional_sales (customer_id, customer_name, total_amount) SELECT s.customer_id, c.customer_name, s.total_amount FROM #staged AS s JOIN dbo.customers AS c ON c.customer_id = s.customer_id;'; EXEC sp_executesql @sql; END

프로시저 경계에서 멈추는 스캐너는 여기서 유용한 정보를 제공하지 않습니다. 대상 테이블은 문자열 리터럴 내부에만 나타나기 때문입니다. SQLFlow는 프로시저 본문을 구문 분석하고 동적 SQL을 해석한 후 임시 테이블을 통한 데이터 흐름을 따라가서 다음과 같은 결과를 생성합니다.

  • 지역별 매출 총액SUM(주문 수량), 을 통해 #staged.total_amount (직계 혈통).
  • 지역 판매.고객 이름고객.고객_이름 (직계 혈통).
  • 주문.지역 그리고 조인 키 고객.고객_ID / 주문.고객_ID 간접 계보로 표시됨: 결과에 나타나지 않고 결과를 필터링하고 연결합니다.

이름 변경 주문.지역 파이프라인 메타데이터 관점에서 보면 아무것도 그것에 의존하지 않는 것처럼 보입니다. 하지만 파싱된 관점에서 보면 이 프로시저는 아무런 경고 없이 빈 테이블을 새로 고치기 시작합니다. 이것이 바로 컬럼 수준의 계보가 만들어내는 차이입니다.

Microsoft Purview에 계보를 입력합니다.

엔터프라이즈 SQLFlow 배포에는 Microsoft Purview, DataHub 및 OpenMetadata용 내보내기 어댑터가 포함됩니다. Azure 환경에서의 워크플로는 간단합니다. SQLFlow는 데이터베이스를 일괄 스캔하고(증분 스캔 및 영구 계보 저장소를 통해 100개 이상의 데이터베이스와 백만 개 이상의 열을 가진 환경까지 확장 가능), 실제 T-SQL에서 열 수준 계보를 계산한 다음 Purview에 게시합니다. 분석가와 관리자는 기존에 사용하던 카탈로그에서 계속 작업할 수 있으며, 그 기반이 되는 계보는 최선 노력 방식이 아닌 파서 수준의 정확도를 제공합니다.

직접 통합을 구축하려는 경우, 동일한 계보 정보를 JSON 또는 CSV 형식으로 내보내거나 REST API를 통해 이용할 수 있습니다.

Azure 환경을 위한 배포 옵션

~에 가장 적합함작동 방식
SQLFlow 클라우드오늘 실제 쿼리에 적용해 보겠습니다.무료 티어가 있는 SaaS이며, 프리미엄은 월 $49.99입니다. T-SQL 코드를 붙여넣거나 브라우저에서 소스를 연결하세요.
온프레미스 SQLFlowSQL 텍스트가 네트워크 내부에 유지되어야 하는 규제된 워크로드Docker/Kubernetes를 자체 Azure 구독 또는 데이터 센터에서 사용 가능하며, 필요한 경우 에어갭 환경으로 격리할 수 있습니다. 선택한 데이터베이스 유형별로 월 $500 또는 일회성 $4,800 요금제로 제공되며, 두 대의 서버에 설치할 수 있습니다.
REST API / 자바 라이브러리 / CLICI 또는 데이터 플랫폼 내에서 데이터 계보 자동화파이프라인과 JVM 애플리케이션에서 호출 가능한 동일한 분석 엔진입니다.

어떤 버전을 사용하든 개인 정보 보호 정책은 동일합니다. SQLFlow는 SQL 코드에 대한 정적 분석만 수행하며 테이블 행 데이터는 절대 읽지 않습니다.

Azure SQL, SQL Server, 아니면 다른 건가요?

Azure SQL과 온프레미스 SQL Server는 T-SQL 계열을 공유하지만 SQLFlow에서는 각각 고유한 파서를 가진 별개의 방언으로 취급됩니다. 환경이 자체 호스팅 SQL Server에 기반을 두고 있는 경우, SQL Server 데이터 계보 해당 페이지는 그 측면을 자세히 다룹니다. 하이브리드 환경은 하나의 저장소에서 두 가지 모두를 분석할 수 있습니다. 그리고 여전히 접근 방식(카탈로그 기반 계보, 런타임 로그 기반 계보, 오픈 소스 파서)을 비교하고 있다면, 다음 설문 조사가 도움이 될 것입니다. 최고의 데이터 계보 도구 각 범주가 어디에 해당하는지, 그리고 SQL 구문 분석이 적절한 해결책인 경우를 설명합니다.

Under the hood, all of this runs on the General SQL Parser engine, developed commercially since the mid-2000s and validated against roughly 13,600 per-dialect SQL test fixtures. Depth on hard SQL is the product.

자주 묻는 질문

SQLFlow는 Azure Synapse SQL을 지원합니까?

예. Synapse 전용 SQL 풀은 T-SQL을 사용하며, SQLFlow의 Azure SQL 방언 파서는 T-SQL 계열을 지원합니다. 따라서 Synapse SQL 스크립트, 뷰 및 저장 프로시저를 Azure SQL Database 코드와 동일한 방식으로 분석할 수 있습니다.

SQLFlow는 저장 프로시저 내의 동적 SQL에 대한 추적 계보를 추적할 수 있습니까?

예. 프로시저 내에서 SQL이 구성되고 실행됩니다. 임원 또는 sp_executesql 건너뛰는 대신 해결 및 분석되며, 프로시저 매개변수와 임시 테이블을 통해 계보가 추적됩니다. SQLFlow는 또한 프로시저 간 호출에 대한 호출 그래프를 그립니다.

SQLFlow 계보는 어떻게 Microsoft Purview에 포함되나요?

엔터프라이즈 배포 환경에서 제공되는 내장 내보내기 어댑터를 통해 SQLFlow는 T-SQL 구문을 분석하여 열 수준의 계보를 계산한 다음, 이를 Purview에 게시하여 Purview 자체 스캔 결과와 함께 카탈로그에 표시되도록 합니다. 사용자 지정 통합을 위해 JSON, CSV 및 REST API 출력을 사용할 수 있습니다.

SQLFlow는 Azure SQL 테이블의 데이터에 대한 접근 권한이 필요한가요?

아니요. SQLFlow는 SQL 코드에 대한 정적 분석을 수행하고 선택적으로 JDBC를 통해 스키마 메타데이터(테이블, 뷰 및 프로시저 정의)를 읽습니다. 행을 직접 읽지는 않습니다. 온프레미스 버전은 SQL 텍스트까지도 네트워크 내에 보관합니다.

컬럼 수준 계보 정보는 Purview의 자산 수준 보기와 비교했을 때 어떤 추가적인 이점을 제공합니까?

정확성. 자산 수준 계보는 테이블이 보고서에 어떻게 데이터를 제공하는지 보여주는 반면, 열 수준 계보는 어떤 특정 열이 어떤 변환을 통해 어떤 데이터에 데이터를 제공하는지 보여주고, 필터와 조인을 통해서만 결과에 영향을 미치는 열을 표시합니다. 이것이 바로 영향 분석 및 감사 질문에 실제로 필요한 세분성입니다.

SQLFlow 가격은 얼마인가요?

SQLFlow Cloud는 무료로 시작하며, 프리미엄 계정은 월 $49.99입니다. SQLFlow On-Premise는 월 $500 또는 선택한 데이터베이스 유형당 1회 $4,800입니다. 자세한 내용은 웹사이트를 참조하세요. 가격 페이지.

지금 Azure SQL 계보를 확인하세요

가장 복잡한 T-SQL 프로시저를 무료 시각화 도구에 붙여넣거나, Azure 환경을 스캔하여 Purview로 내보내는 것에 대해 문의해 주세요.