DB2 데이터 계보 이는 IBM DB2 SQL에서 데이터가 이동하는 방식을 열 수준에서 보여주는 지도입니다. 즉, 각 뷰, 웨어하우스 테이블 및 보고서 추출에 어떤 소스 열이 사용되는지, 그리고 어떤 조인, 필터, 표현식 및 MERGE 분기를 거치는지 나타냅니다. Gudu SQLFlow 이 도구는 DB2 전용 파서로 DB2 SQL을 분석하여 자동으로 맵을 생성합니다. 구조화된 계보 데이터는 JSON, CSV, PNG 또는 REST API를 통해 제공되며, 대화형으로 드릴다운 가능한 계보 다이어그램을 생성합니다.
30초 안에 시도해 보세요: DB2 쿼리를 여기에 붙여넣으세요. 무료 온라인 SQL 계보 시각화 도구DB2 방언을 선택하면 열 수준 다이어그램이 나타납니다.
DB2 부동산에서 다른 부동산보다 계보 정보가 더 중요한 이유는 무엇일까요?
DB2는 핵심 은행 장부, 보험 계약 관리, 보험금 청구 처리, 결제 등과 같이 누구도 손댈 수 없는 시스템을 운영하는 데 주로 사용됩니다. 이러한 시스템들은 데이터베이스 계보를 유지하는 것이 선택 사항이 아니라 필수 요건인 세 가지 공통된 특징을 가지고 있습니다.
- 나이. 수십 년 동안 누적된 뷰들이 겹겹이 쌓이고, 배치 SQL 작업과 SQL PL 루틴이 존재하기 때문에 누구도 전체적인 종속성 그래프를 머릿속에 완벽하게 파악하고 있지 못하며, 최초 코드를 작성했던 사람들은 이미 회사를 떠난 경우가 많습니다.
- 규제. 은행 및 보험 감사 담당자는 다음과 같은 세부적인 질문을 던집니다. 어떤 소스 필드가 이 규제 보고서 라인으로 유입되는가? BCBS 239와 같은 프레임워크는 2014년에 누군가가 그린 도표가 아니라 문서화되고 입증 가능한 데이터 출처를 요구합니다.
- 이주 압력. 많은 DB2 사용자들이 클라우드 웨어하우스로의 이전을 계획하고 있습니다. 어떤 요소가 무엇에 의존하는지, 그리고 어떤 객체가 더 이상 사용되지 않는 코드인지, 어떤 객체를 남겨둘 수 있는지를 알지 못하면 마이그레이션의 범위, 순서 및 검증을 제대로 수행할 수 없습니다.
수동 매핑은 유지되지 않습니다. 연락하다 실제 DB2 환경에서는 SQL 자체에서 자동화된 계보 추적만이 코드 변경 시에도 정확성을 유지하는 유일한 접근 방식입니다.
SQLFlow가 DB2 데이터 계보를 구축하는 방법
SQLFlow는 다음을 기반으로 구축되었습니다. 일반 SQL 파서(GSP)DB2는 2000년대 중반부터 개발되어 약 13,600개의 방언별 SQL 테스트 픽스처를 통해 검증된 상용 SQL 컴파일러 프런트엔드 중 하나입니다. 39개의 방언, 각 방언마다 고유한 구문 분석기가 있습니다. — 단순히 DB2 특유의 구문을 덧붙인 일반적인 ANSI 문법이 아닙니다. 이는 DB2 SQL이 일반적인 파서가 처리하기 어려운 구문으로 가득 차 있고, 구문 분석 실패 하나하나가 데이터 계보 그래프에 오류를 발생시키기 때문에 중요합니다.
분석은 완전히 정적입니다. SQLFlow는 JDBC를 통해 SQL 텍스트와 선택적으로 스키마 메타데이터를 읽습니다. 테이블의 행은 절대 읽지 않습니다. 다음과 같은 데이터를 입력할 수 있습니다.
- 붙여넣은 SQL 또는 업로드된 스크립트 파일 - 배치 작업, DDL 보기, 소스 저장소에서 내보낸 파일.
- JDBC를 통해 실시간 DB2 메타데이터를 제공하므로 뷰 정의와 테이블 스키마를 카탈로그에서 직접 가져올 수 있습니다.
- 전체 환경 스캔: 엔터프라이즈 배포 환경에서 100개 이상의 데이터베이스와 백만 개 이상의 열을 일괄 스캔하고, 증분 재스캔 및 영구적인 데이터 계보 저장소를 제공합니다.
SQLFlow는 각 출력 열에 대해 어떤 소스 열이 어떤 함수, 형변환, 서브쿼리, 조인 및 집합 연산자를 통해 해당 열로 전달되는지 식별하고, 공통 테이블 표현식, 중첩 서브쿼리, 뷰 등을 통해 참조를 해결합니다. 선택하다 * 확장.
DB2 파서가 이해하는 내용
| DB2 구성 | SQLFlow는 어떻게 처리할까요? |
|---|---|
| 조회수 | 뷰 정의는 계보 그래프로 해석되므로 뷰에 대한 쿼리는 뷰가 5단계 깊이로 쌓여 있더라도 기본 테이블까지 추적할 수 있습니다. |
병합 | 둘 다 매칭 시... 업데이트 그리고 일치하지 않을 경우... 삽입 계통을 포함하여 가지들을 분석합니다. 사용 대상 열에 대한 서브쿼리입니다. |
| 공통 테이블 표현식 | 컬럼 참조는 다음을 통해 해결됩니다. 와 함께 블록에는 이전 CTE를 참조하는 CTE가 포함됩니다. |
| SQL PL 구성 요소 | 구문 분석 가능한 SQL로 처리됨 — 선택하다, 끼워 넣다, 업데이트, 그리고 병합 DB2 루틴 내의 명령문은 계보 그래프에 영향을 미칩니다. |
솔직히 한 가지 주의할 점은 SQLFlow의 전용 프로시저 문법(매개변수, 임시 테이블, 동적 SQL을 추적하고 프로시저 호출 그래프를 렌더링하는 문법)은 Oracle PL/SQL 및 SQL Server T-SQL만 지원한다는 것입니다. DB2 SQL PL은 DB2 전용 프로시저 엔진을 통하는 것이 아니라 실제 데이터 흐름이 이루어지는 문장 수준에서 지원됩니다.
예시: DB2 MERGE를 통한 컬럼 수준 계보
MERGE 기반 업서트는 DB2 웨어하우스 로드의 핵심 작업이며, 테이블 수준 계보가 부족한 부분이 바로 이 업서트 작업에서 드러납니다. 고객 잔액 요약을 유지하는 야간 작업을 예로 들어 보겠습니다.
dw.customer_balance 테이블을 tgt 테이블로 병합하고, 다음 조건을 만족하는 행을 선택합니다: c.customer_id, c.branch_code, t.amount 합계, last_posted 값 합계, 마지막 게시 시간(last_posted)을 각각 core.transactions 테이블에서 가져와 core.customers 테이블과 조인합니다. c.customer_id = t.customer_id 조건을 만족하는 행을 t.status = 'POSTED'로 설정하고, c.customer_id와 c.branch_code 조건을 만족하는 행을 src 테이블과 함께 정렬합니다. 일치하는 행이 있으면 balance_amt 값을 src.balance_amt로, last_posted 값을 src.last_posted로 업데이트합니다. 일치하지 않는 행이 있으면 (customer_id, branch_code, balance_amt, last_posted) 값을 src.customer_id와 함께 삽입합니다. src.branch_code, src.balance_amt, src.last_posted);
SQLFlow에서 이 명령에 대한 다이어그램은 대상 열별로 다음과 같이 표시됩니다.
dw.고객_잔액.잔액_금액~에 의해 공급됩니다코어 트랜잭션 금액~을 통해합집합()— UPDATE 분기와 INSERT 분기 모두를 통해.dw.customer_balance.last_posted~에 의해 공급됩니다코어 트랜잭션.게시된_ts~을 통해MAX().브랜치 코드바로 거기서 가져온 것입니다코어.고객.브랜치_코드변형되지 않은 상태입니다.코어 트랜잭션 상태그리고고객 ID조인 키는 대상 행에 직접 포함되지는 않지만, 대상 행의 모든 행을 구성하는 데 영향을 미칩니다. SQLFlow는 이러한 내용을 다음과 같이 기록합니다. 간접 혈통.
직접 계보 vs. 간접 계보: 감사에 중요한 이유
SQLFlow는 구별합니다 직계 혈통 (원본 열의 값이 대상 열로 전달됩니다) 간접 혈통 (열은 다음을 통해 결과에 영향을 미칩니다.) 어디 절, 가입하다 상태, 그룹화 기준(또는 집계). 이 두 가지는 다이어그램에서 개별적으로 전환할 수 있으며, 대부분의 경쟁 도구는 이러한 구분을 전혀 하지 않습니다.
감사인에게 있어 그 차이는 이론적인 문제가 아닙니다. 위의 병합에서, 만약 t.상태 코드가 상위로 다시 매핑되고 모든 잔액이 유지됩니다. dw.고객_잔액 변화 — 비록 값이 없더라도 상태 표에 나타나는 경우는 없습니다. 직접 계통만 고려하면 해당 의존성을 놓치게 되지만, 규제 기관에서 "보고된 수치를 변경할 수 있는 요인은 무엇인가?"라고 질문할 때는 그렇지 않습니다.
리니지를 사용하여 DB2에서 마이그레이션을 계획합니다.
DB2가 마이그레이션 소스인 경우, 리니지는 범위를 지정하는 도구입니다. 전체 환경을 스캔하면 다음과 같은 결과를 얻을 수 있습니다.
- 진정한 의존성 그래프 — 어떤 보기, 작업 및 다운스트림 추출이 실제로 각 테이블을 사용하는지 파악하여 이동 순서를 정하고 데이터 전송 중에 중단되는 것을 방지할 수 있습니다.
- 데드코드 식별 — 읽어들이는 내용이 없는 객체는 마이그레이션보다는 폐기 대상으로 고려됩니다.
- 양측 검증 SQLFlow는 DB2 외에도 Snowflake, BigQuery, Redshift, Databricks, PostgreSQL 등 39가지 방언을 지원하므로 대상 플랫폼에서 재작성된 SQL을 분석하고 재작성 전후의 SQL 계보를 비교할 수 있습니다.
여러 기존 플랫폼을 한 번에 통합하는 팀은 모든 엔진에서 동일한 워크플로를 사용합니다. 자세한 내용은 관련 페이지를 참조하세요. Oracle 데이터 계보 그리고 테라데이터 데이터 계보이는 해당 방언들에 대해 동일한 접근 방식을 다루고 있습니다.
배포 방식: 규제 대상 DB2 환경의 경우 온프레미스 배포
대부분의 DB2 환경은 SQL 텍스트가 네트워크 외부로 유출될 수 없는 환경에 있습니다. 온프레미스 SQLFlow Docker 또는 Kubernetes 환경에서 완전히 사용자 인프라 내에서 실행되며, 완벽한 에어갭 설치도 가능합니다. SQL은 네트워크를 벗어나지 않으며, SQLFlow는 테이블 행 데이터를 어디에서도 읽지 않습니다. 가격 선택한 데이터베이스 유형당 월 $500 또는 일회성 $4,800이며, 두 대의 서버에 설치할 수 있습니다.
쿼리 또는 뷰 체인 추적만 필요한 팀은 SQLFlow Cloud 무료 티어(프리미엄은 월 49.99달러, $)로 시작할 수 있습니다. 엔터프라이즈 배포 시에는 내보내기 어댑터가 추가됩니다. DataHub, Microsoft Purview 및 OpenMetadata따라서 DB2 계보는 이미 실행 중인 카탈로그에 추가됩니다. 자세한 내용은 다음을 참조하십시오. 가격 페이지.
이 방법은 다른 접근 방식과 비교했을 때 어떤 차이가 있습니까?
Collibra, Atlan, DataHub와 같은 카탈로그 우선 플랫폼은 거버넌스 워크플로, 소유권 및 비즈니스 용어집 관리에 탁월하지만, 데이터를 채울 계보 소스가 필요하며, DB2 지원은 일반적인 SQL 파싱이 제대로 작동하지 않는 부분입니다. 오픈 소스 파서로는 다음과 같은 것들이 있습니다. sqllineage 그리고 sqlglot 간단한 SELECT 및 INSERT 문을 잘 처리합니다. DB2 병합스택형 뷰와 SQL PL 루틴은 방언 충실도가 그래프의 완성도를 결정하는 중요한 요소입니다. SQLFlow의 DB2 파서는 약 20년간의 상용 파서 개발을 통해 다듬어진 39개의 방언별 문법 중 하나이며, 내보내기 어댑터를 통해 기존 카탈로그에 데이터를 제공하는 DB2 계보 엔진으로 사용할 수 있습니다. 공정한 테스트 방법은 다음과 같습니다. 가장 복잡한 DB2 배치 작업을 SQLFlow를 통해 실행해 보세요. 무료 시각화 도구 그리고 어떤 결과가 나오는지 보세요.
자주 묻는 질문
SQLFlow는 IBM DB2를 지원합니까?
예. DB2는 SQLFlow에서 전용 파서를 제공하는 39개 방언 중 하나입니다. SQLFlow는 DB2 뷰, MERGE 문, 공통 테이블 표현식(CTE) 및 SQL PL 구문을 파싱 가능한 SQL로 처리하고, 이 모든 요소에 걸쳐 열 수준의 계보를 생성합니다.
SQLFlow는 DB2 테이블의 데이터에 접근해야 하나요?
아니요. SQLFlow는 SQL 텍스트에 대한 정적 분석을 수행하고 선택적으로 JDBC를 통해 스키마 메타데이터를 읽습니다. 테이블 행은 절대 읽지 않습니다. 온프레미스 에디션의 경우, SQL 텍스트조차도 네트워크 내부에 유지되며, 에어갭 환경에서도 마찬가지입니다.
SQLFlow를 사용하여 DB2 MERGE 문을 통한 추적 계보를 확인할 수 있습니까?
예. MERGE의 UPDATE 및 INSERT 분기 모두 분석되며, USING 서브쿼리에서 각 대상 열까지의 열 수준 계보가 기록되고, 조인 키와 필터 열에 대한 간접 계보도 기록됩니다.
리니지(Lineage)가 DB2에서 다른 데이터베이스로 마이그레이션하는 데 도움이 될 수 있을까요?
네. 리니지 스캔을 통해 마이그레이션 순서를 정하는 데 필요한 실제 종속성 그래프를 확인할 수 있고, 이식하는 대신 폐기할 수 있는 사용되지 않는 객체를 식별할 수 있습니다. 또한 SQLFlow는 Snowflake, BigQuery, Redshift, Databricks 등도 파싱할 수 있으므로 재작성 후 대상 플랫폼에서 리니지를 검증할 수 있습니다.
DB2 데이터 계보를 DataHub, Purview 또는 OpenMetadata로 내보낼 수 있나요?
예. 엔터프라이즈 배포에는 DataHub, Microsoft Purview 및 OpenMetadata용 내보내기 어댑터와 JSON 및 CSV 내보내기, 사용자 지정 통합을 위한 REST API가 포함됩니다.
DB2용 SQLFlow 비용은 얼마인가요?
SQLFlow Cloud는 무료로 시작하며, 프리미엄 버전은 월 $49.99입니다. SQLFlow On-Premise는 선택한 데이터베이스 유형(DB2는 하나의 유형으로 간주)당 월 $500 또는 일회성 $4,800이며, 두 대의 서버에 설치할 수 있습니다. 추가 데이터베이스 유형은 각각 월 $100 또는 일회성 $1,000에 추가됩니다.
DB2 환경을 지도에 표시하세요
무료 시각화 도구에 DB2 쿼리를 붙여넣거나, 온프레미스 환경 전체를 스캔하는 것에 대해 저희와 상담해 보세요.