SQLFlow REST API: SQL 데이터 계보 추출 자동화

에이 데이터 계보 API 이 기능을 사용하면 프로그래밍 방식으로 계보를 추출할 수 있습니다. HTTP를 통해 SQL 코드를 제출하면 모든 소스 테이블과 열, 모든 대상, 그리고 그 사이의 변환 관계를 나열하는 구조화된 계보 그래프를 JSON 형식으로 수신할 수 있습니다. 구두 SQLFlow REST API SQLFlow는 저장 프로시저와 동적 SQL을 포함하여 39개의 SQL 방언에 대해 열 수준의 세분화된 분석을 제공합니다. SQLFlow의 대화형 다이어그램을 지원하는 것과 동일한 분석 기능을 HTTP를 통해 구조화된 계보 데이터로 사용할 수 있습니다.

39SQL 방언, 각 방언마다 전용 파서가 있습니다.
컬럼 레벨계보 그래프, 직접 및 간접
JSONHTTP를 통해 - POST 요청 한 번, SQL 입력, 그래프 출력
데이터 접근 권한 - 정적 분석 전용

먼저 출력 결과를 확인하세요: 쿼리를 붙여넣으세요 무료 SQLFlow 계보 시각화 도구그런 다음 그래프를 JSON 형식으로 내보내 통합 코드를 한 줄도 작성하기 전에 데이터로서의 계보가 어떻게 보이는지 확인하세요.

스택에 데이터 계보 API를 포함시켜야 하는 이유는 무엇일까요?

인터랙티브 계보 다이어그램은 사람들이 계보를 탐색하는 방식입니다. 하지만 계보 데이터의 가장 가치 있는 활용 사례는 자동화된 작업에 있습니다. 예를 들어 하위 보고서의 오류를 유발하는 풀 리퀘스트를 차단하거나, 수동 관리 없이 데이터 카탈로그의 계보를 최신 상태로 유지하거나, 내부 도구에서 "이 열의 데이터는 무엇인가?"라는 질문에 답하는 것 등이 있습니다. 이러한 모든 작업에는 필요할 때 호출할 수 있는 서비스에서 제공하는 계보 데이터가 필요합니다.

SQLFlow는 정적 SQL 분석 방식을 사용합니다. API는 사용자가 전송하는 SQL 텍스트를 구문 분석하며 테이블의 행에는 전혀 접근하지 않으므로 보안 검토 시간이 단축됩니다. 네트워크를 통해 전송되는 유일한 데이터는 SQL 코드이며, 온프레미스 에디션 그것조차도 네트워크 내부에 머물러 있습니다. 그 밑바닥의 엔진은 바로 그것입니다. 일반 SQL 파서2000년대 중반부터 개발되어 약 13,600개의 방언별 테스트 픽스처를 통해 검증된 상용 SQL 컴파일러 프런트엔드이므로, 반환되는 계보는 정규 표현식 일치가 아닌 SQL의 전체 의미론적 모델을 기반으로 구축됩니다.

SQLFlow REST API가 반환하는 값

개념적으로, API는 SQLFlow 분석의 모든 기능을 HTTP를 통한 JSON 형식으로 제공합니다.

능력당신이 보낸다당신은 돌아오게 됩니다
계보 그래프SQL 텍스트와 방언 식별자테이블, 열, 소스-대상 관계를 포함한 전체 열 수준 계보 그래프를 JSON 형식으로 제공합니다.
상류/하류 추적관심 있는 표 또는 열표적 영향 분석을 위해서는 해당 객체에 영양을 공급하는 하위 그래프(상류) 또는 해당 객체로부터 영양을 공급받는 하위 그래프(하류)만 고려합니다.
테이블 수준 계보SQL 텍스트, 요청된 테이블 세분화 수준열 세부 정보가 불필요한 정보가 될 경우, 테이블 간 종속성 그래프를 간결하게 표현합니다.
직접 혈통 vs 간접 혈통요청에 대한 플래그순수한 데이터 흐름 관계 또는 결과에 영향을 미치는 열을 추가적으로 고려합니다. 어디, 가입하다, 그리고 그룹화 기준 조항
저장 프로시저 호출 그래프PL/SQL 또는 T-SQL 프로시저 본문어떤 프로시저가 어떤 프로시저를 호출하는지, 그리고 그 호출 계보는 매개변수, 임시 테이블 및 동적 SQL을 통해 추적할 수 있습니다.
ER 다이어그램DDL 스크립트추론된 기본/외래 키 관계를 엔티티-관계 모델로 표현
수출분석된 직업장비 정보는 JSON 또는 CSV 형식으로, 문서 및 티켓 정보는 PNG 형식으로 저장하세요.

모든 요청은 명시적으로 방언을 지정합니다. SQLFlow는 Snowflake, BigQuery, Databricks, Redshift부터 Oracle, SQL Server, Teradata, Hive, Trino에 이르기까지 39개의 데이터베이스 및 쿼리 엔진에 대한 방언별 파서를 제공하므로 T-SQL 임시 테이블과 같은 공급업체별 구문은 일반적인 ANSI 문법으로 근사화되지 않고 공급업체가 정의한 대로 구문 분석됩니다. 전체 목록은 웹사이트에서 확인할 수 있습니다. SQL 데이터 계보 도구 개요.

간단한 예시: POST SQL을 보내면 계보 그래프를 받습니다.

핵심적인 상호 작용은 하나의 HTTP 호출로 이루어집니다. SQL 텍스트와 다이얼렉트를 전송하면 응답으로 계보 그래프가 제공됩니다. 엔드포인트 경로, 인증 및 전체 매개변수 참조는 해당 파일에 저장됩니다. SQLFlow API 문서거래의 형태는 다음과 같습니다.

curl -s -X POST "$SQLFLOW_API/lineage" -H "Authorization: Bearer $SQLFLOW_TOKEN" --form "dbvendor=snowflake" --form 'sqltext=CREATE VIEW customer_ltv AS SELECT c.customer_id, SUM(o.amount) AS lifetime_value FROM customers c JOIN orders o ON o.customer_id = c.customer_id WHERE o.status = ''paid'' GROUP BY c.customer_id;'

응답은 그래프 형태로 나타납니다. 데이터베이스 객체(테이블, 뷰 및 해당 열) 목록과 열 간의 관계 목록이 포함됩니다. 설명을 위해 간략화했습니다.

{ "관계": [ { "유형": "직접", "대상": {"객체": "customer_ltv", "열": "평생 가치"}, "소스": [{"객체": "주문", "열": "금액", "경로": "합계"}] }, { "유형": "직접", "대상": {"객체": "customer_ltv", "열": "customer_id"}, "소스": [{"객체": "고객", "열": "customer_id"}] }, { "유형": "간접", "대상": {"객체": "customer_ltv", "열": "평생 가치"}, "소스": [{"객체": "주문", "열": "상태", "경로": "위치"}] } ] }

세 번째 관계에 주목하세요. 주문 상태 뷰의 출력에는 나타나지 않지만, 합산 대상 행을 필터링하므로 분명히 영향을 미칩니다. 수명 값SQLFlow는 이를 다음과 같이 모델링합니다. 간접 혈통직접적인 데이터 흐름과는 구별되며 별도로 요청할 수 있습니다. 대부분의 계보 도구는 이러한 구분을 하지 않는데, 이는 영향 분석 사용자가 정확히 필요로 하는 부분입니다. 즉, 데이터를 직접 전달하는 것을 의미합니다. 주문 상태 출력 열이 "여기서 나온" 것이 아니더라도 이 뷰를 손상시킬 것입니다.

사용 사례: CI에서의 계보 검사

가장 효과적인 통합은 잘못된 SQL이 배포되기 전에 실행되는 것입니다. SQL을 사용하는 모든 풀 리퀘스트에 대해 CI 작업을 실행하세요.

  1. 변경된 SQL 파일을 리니지 엔드포인트에 게시하고 새 그래프를 가져오세요.
  2. 메인 브랜치의 그래프와 비교하여 어떤 열이 소스를 얻거나 잃었는지, 어떤 다운스트림 객체가 입력을 변경했는지 확인합니다.
  3. 규제 보고서나 경영진 대시보드와 같이 보호된 대상에 데이터를 제공하는 열을 변경하는 경우, 검사를 실패시키거나 차이점을 검토 의견으로 게시하십시오.

분석이 정적이기 때문에 실행된 적이 없는 코드에서도 작동합니다. 새벽 2시에 일괄 실행이 실패할 때가 아니라 코드 검토 시점에 깨진 종속성을 발견할 수 있습니다. 스키마 마이그레이션에도 동일한 패턴이 적용됩니다. 드롭 컬럼 한 번의 다운스트림 추적 호출로 해당 열을 직접 또는 필터를 통해 사용하는 모든 객체를 알 수 있습니다.

사용 사례: 데이터 카탈로그에 데이터 추가하기

카탈로그 플랫폼은 메타데이터, 소유권 및 검색을 체계화하는 데는 뛰어나지만, 컬럼 수준의 SQL 계보 추적은 일반적으로 가장 취약한 부분입니다. SQLFlow는 이러한 문제를 해결하는 계보 엔진 역할을 합니다. SQL 환경을 분석한 후 결과를 이미 실행 중인 카탈로그에 추가합니다. 엔터프라이즈 배포에는 바로 사용할 수 있는 내보내기 어댑터가 포함되어 있습니다. DataHub, Microsoft Purview 및 OpenMetadataJSON 및 CSV 내보내기는 모든 사용자 정의 데이터에 활용됩니다. 대규모 환경에서는 100개 이상의 데이터베이스와 백만 개 이상의 열을 포함하는 대규모 시스템에 대해 배치 및 증분 스캔 방식으로 실행되며, 영구적인 데이터 계보 저장소를 통해 수동으로 계보를 관리할 필요 없이 카탈로그가 항상 최신 상태로 유지됩니다.

사용 사례: 자체 도구 내에서의 계보 관리

내부 데이터 플랫폼은 "이 메트릭은 어디에서 왔습니까?" 패널, 사용 중단 검사기, 마이그레이션 종속성 맵과 같은 동일한 기능을 반복적으로 추가합니다. SQL 파서를 직접 구축하는 대신 서비스에서 API를 호출하고 원하는 방식으로 그래프를 렌더링할 수 있습니다. 원시 JSON이 아닌 대화형 다이어그램 자체를 원하는 경우 SQLFlow는 30개 이상의 메서드를 제공하는 임베더블 JavaScript 위젯을 제공하여 모든 웹 애플리케이션에 쉽게 통합할 수 있습니다. 백엔드 전용 JVM 통합을 위해서는 동일한 엔진을 사용하는 Java 라이브러리도 제공됩니다. API, 위젯 및 라이브러리는 모두 하나의 파서를 공유하므로 일관된 결과를 반환합니다.

HTTP를 통해 SQL 쿼리를 계보 그래프로 변환하세요

무료 시각화 도구에서 그래프를 확인한 다음 파이프라인에서 동일한 SQL을 REST API로 POST합니다.

이 방식은 다른 프로그램 기반 계보 옵션과 비교했을 때 어떤 차이가 있습니까?

이것은 SQL 분석 서비스이며, 파서 라이브러리나 런타임 컬렉터가 아닙니다. 알아두면 유용한 세 가지 범주가 있습니다. 오픈소스 구문 분석 라이브러리 좋다 sqllineage 그리고 sqlglot 파이썬 프로세스 내의 개별 문장을 구문 분석하는 데는 실제로 매우 유용하며, 간단한 SELECT 및 INSERT 로직에는 충분할 수 있습니다. 하지만 저장 프로시저, 동적 SQL, 방언 예외, 스키마 컨텍스트가 필요한 뷰 또는 스타 확장 해석에서는 차이가 발생합니다. 런타임 계보 표준 OpenLineage처럼 작업 실행 이벤트에서 계보를 캡처하는 기능은 오케스트레이터 수준의 실행별 계보를 파악하는 데 탁월하지만, 실제로 실행된 코드만 볼 수 있으며, 이는 내보낸 통합 기능이 제공하는 세분성 수준입니다. 카탈로그 우선 플랫폼 다른 도구들은 수집한 계보에 관계없이 계보 API를 제공하므로, 제공하는 정보는 수집된 정보의 깊이만큼만 제공됩니다. SQLFlow의 REST API는 이와는 다른 도구입니다. SQLFlow는 코드 자체에서 열 수준의 계보를 계산하는 특수 SQL 분석 서비스로, 실행되지 않은 SQL이나 다른 도구들이 건너뛰는 프로시저까지 포함합니다. 이 두 범주는 서로 잘 어울립니다. 많은 팀들이 SQLFlow를 사용하여 계보를 계산하고, 카탈로그를 통해 최종 사용자에게 제공합니다.

API 실행 위치: 클라우드 또는 자체 네트워크

REST API는 두 가지 SQLFlow 배포 환경 모두에서 사용할 수 있습니다. SQLFlow 클라우드 가장 빠른 시작은 무료 티어와 월 $49.99달러의 프리미엄 티어를 제공하는 SaaS이며, 운영을 위한 인프라가 필요 없습니다. 온프레미스 SQLFlow Docker 또는 Kubernetes를 통해 네트워크 내부에 배포되며, 완벽한 에어갭 환경에서 작동합니다. 가격은 선택한 데이터베이스 유형당 월 $500 또는 일회성 $4,800이며, 두 대의 서버에 설치할 수 있습니다. 일반적인 패턴은 클라우드 환경에서 통합 프로토타입을 제작한 후, 동일한 API 호출을 온프레미스 호스트로 옮겨 SQL 쿼리가 인프라를 벗어나지 않도록 하는 것입니다.

자주 묻는 질문

API는 컬럼 수준의 정보 흐름을 반환합니까, 아니면 테이블 수준의 정보 흐름을 반환합니까?

둘 다 가능합니다. 기본값은 열 수준입니다. 각 출력 열에 대해 정확한 소스 열과 그 사이의 함수, 조인, 집합 연산이 표시되며, 직접 및 간접 계보가 구분됩니다. 간결한 종속성 그래프만 필요한 경우 테이블 수준의 세분화를 요청할 수 있습니다.

데이터 계보 API는 어떤 SQL 방언을 지원합니까?

39개의 방언을 지원하며, 각 방언마다 고유한 파서가 있습니다. Snowflake, BigQuery, Redshift, Databricks, Oracle, SQL Server, PostgreSQL, MySQL, Teradata, Hive, Spark SQL, Trino 등이 포함됩니다. 각 요청에서 방언을 지정해야 합니다.

저장 프로시저와 동적 SQL을 분석할 수 있습니까?

예. Oracle PL/SQL과 SQL Server T-SQL에는 전용 프로시저 파서가 있습니다. 프로시저 매개변수와 임시 테이블을 통해 계보를 추적하고, 프로시저 내에서 생성되는 동적 SQL을 해석 및 분석하며, API는 프로시저 간 호출 그래프를 반환할 수 있습니다.

API가 내 데이터에 접근해야 하나요?

아니요. 이 도구는 사용자가 제출하는 SQL 텍스트에 대한 정적 분석을 수행하며 테이블 행 데이터는 절대 읽지 않습니다. 온프레미스 버전의 경우 SQL 텍스트 자체도 네트워크 내에 유지됩니다.

사용 가능한 출력 형식은 무엇입니까?

JSON은 프로그래밍 방식으로 사용하기 위한 기본 형식이며, CSV 내보내기는 스프레드시트 및 대량 로드에 적합하고, PNG 내보내기는 문서화를 위한 렌더링된 다이어그램을 생성합니다. 엔터프라이즈 배포 시에는 DataHub, Microsoft Purview 및 OpenMetadata용 내보내기 어댑터가 추가됩니다.

전체 API 참조 자료는 어디에 있나요?

~에 docs.gudusoft.com엔드포인트 경로, 인증, 기능별 요청 매개변수 및 전체 응답 스키마를 다룹니다. API 액세스가 포함된 요금제는 다음을 참조하세요. SQLFlow 가격 책정.

SQL에서 JSON 형식으로 계보를 가져옵니다.

무료 시각화 도구에 쿼리를 붙여넣어 그래프 구조를 검사한 다음 REST API를 파이프라인에 연결하세요.