하이브 데이터 계보 HQL은 데이터가 HQL을 통해 흐르는 방식을 열 수준에서 보여주는 맵입니다. 즉, 어떤 소스 테이블과 열이 각 Hive 테이블, 파티션 및 뷰에 데이터를 제공하는지, 그리고 어떤 조인, 집계 등을 통해 데이터가 처리되는지를 나타냅니다. 측면도 확장 기능. 이를 구축하는 가장 확실한 방법은 HQL 자체를 파싱하는 것입니다. Gudu SQLFlow 이 소프트웨어는 클러스터를 건드리지 않고도 스크립트를 대화형 열 수준 계보 다이어그램으로 변환하는 전용 Hive 방언 파서를 제공합니다.
지금 바로 시도해 보세요: HiveQL 스크립트를 여기에 붙여넣으세요. 무료 온라인 Hive 계보 시각화 도구Hive 방언을 선택하면 몇 초 만에 열 수준의 계보도를 얻을 수 있습니다. 클러스터 액세스는 필요하지 않으며, 무료 티어는 브라우저에서 실행됩니다.
Hive 데이터 계보 추적이 생각보다 어려운 이유
일반적인 하둡 데이터 웨어하우스에는 수년간의 고품질 데이터(HQL)가 축적됩니다. 여기에는 스테이징 로드, 파티션된 로드 등이 포함됩니다. 삽입 덮어쓰기 작업, 외부 테이블에 대한 보기, 그리고 작성자가 떠난 이후 아무도 읽지 않은 Oozie 또는 Airflow로 예약된 스크립트. "무엇이 피드를 제공하는가"에 대한 답변 dw.일일수익"떨어뜨리면 어떻게 될까요?" 또는 "떨어뜨리면 어떻게 될까요?" 스테이징.주문.상태?"는 전체 열 참조를 추적한다는 의미입니다.
일반적인 SQL 파서는 HiveQL을 고유한 방언으로 만드는 구문을 처리하는 데 어려움을 겪습니다.
측면 보기 explode()— 배열이나 맵으로 이루어진 하나의 입력 열이 여러 행과 새로운 파생 열로 확장됩니다. 리니지는 확장된 출력 열을 단일 소스 컬렉션에 다시 연결해야 합니다.- 분할됨
삽입 덮어쓰기— 파티션 열은 정적 리터럴에서 가져올 수 있습니다.분할절을 사용하거나 마지막 SELECT 열에서 동적으로 가져옵니다. 두 경우 모두 계보 소스로 간주되는 열이 변경됩니다. - 외부 테이블 — 해당 테이블은 HDFS 또는 객체 스토리지의 파일 위에 있는 스키마입니다. 상위 SQL에서 해당 테이블에 기록된 적이 없더라도, 리니지는 이를 일급 소스로 취급해야 합니다.
- Hive 관련 구문 —
배포처,클러스터 기준, 다중 삽입(...에서 ... 삽입 ... 삽입 ...), SerDe 기반 유형 및 백틱으로 묶인 식별자는 모두 ANSI 전용 문법을 위반합니다.
SQLFlow는 전용 방언 파서를 사용하여 HiveQL을 구문 분석합니다. 이 파서는 도구에 내장된 39개의 방언별 파서 중 하나이며, 일반적인 ANSI 파서에 예외 처리를 추가한 것이 아니라 HiveQL에 맞게 구축된 문법을 사용합니다. 기본 엔진은 다음과 같습니다. 일반 SQL 파서, has been developed commercially since the mid-2000s and is validated against roughly 13,600 per-dialect SQL test fixtures.
Atlas 훅과 HQL 파싱: Hive 계보를 얻는 두 가지 방법
대부분의 하둡 팀은 계보를 통해 처음 접하게 됩니다. 아파치 아틀라스Atlas는 본래의 목적에 부합하는 뛰어난 성능을 자랑합니다. 클러스터에 연결된 Hive 후크를 통해 작업이 실제로 실행될 때 작업 내역을 기록하여, Hadoop 스택 전반에 걸쳐 분류 및 태깅과 연동된, 언제 어떤 작업이 실행되었는지에 대한 실시간 관리 기록을 제공합니다.
하지만 훅 방식에는 구조적인 한계가 있으며, 이러한 한계는 팀이 계보를 찾을 때 가장 중요하게 작용합니다.
| 런타임 후크(Atlas 스타일) | HQL 파싱(SQLFlow) | |
|---|---|---|
| 실행 중인 클러스터가 필요합니다. | 예, 계보는 훅이 설치된 상태로 작업이 실행될 때만 캡처됩니다. | 아니요, SQL 텍스트에 대한 정적 분석은 어디에서도 수행되지 않습니다. |
| 실행되지 않은 코드를 포함합니다. | 아니요, 실행되지 않은 스크립트는 아무런 흔적도 남기지 않습니다. | 예, 저장소에 있는 모든 스크립트(실행되지 않거나 거의 실행되지 않는 작업 포함)가 포함됩니다. |
| 마이그레이션 중/이후 작업 | 어렵습니다. 클러스터가 사용 중지되면 캡처 지점도 사라집니다. | 예, 이동 전, 이동 중, 이동 후에 내보낸 HQL을 오프라인에서 분석합니다. |
| 역사 관련 내용 | 후크를 설치한 시점부터 시작됩니다. | 완료됨 — 코드가 기록입니다 |
| 데이터를 읽습니다 | 클러스터 내부에서 다른 작업들과 함께 실행됩니다. | 절대 안 됨 — SQL 텍스트 및 스키마 메타데이터만 해당 |
이러한 접근 방식은 경쟁 관계라기보다는 상호 보완적입니다. 훅은 어떤 코드가 실행되었는지 알려주고, 파서는 코드가 무엇을 하는지 알려줍니다. 만약 "이 Hive 환경의 모든 종속성을 문서화하여 감사하거나 이동할 수 있도록 하세요"라는 질문이라면, 파싱이 바로 그 해답을 제시하는 도구이며, SQLFlow는 그 결과를 제공할 수 있습니다. DataHub, Microsoft Purview 또는 OpenMetadata 만약 그 중 하나가 귀하의 기록 시스템이라면.
실제 HiveQL 작업에서 가져온 열 수준 계보
다음은 모든 하둡 데이터 웨어하우스가 매일 밤 실행하는 작업의 형태입니다. 즉, 파티션된 형태입니다. 삽입 덮어쓰기 결합된 스테이징 테이블에서 생성됨:
INSERT OVERWRITE TABLE dw.daily_revenue PARTITION (ds = '2026-07-11') SELECT c.region, SUM(o.amount) AS revenue, COUNT(DISTINCT o.order_id) AS order_cnt FROM staging.orders o JOIN staging.customers c ON o.customer_id = c.customer_id WHERE o.ds = '2026-07-11' AND o.status = 'COMPLETE' GROUP BY c.region;
SQLFlow를 통해 실행하면 출력 열별로 다이어그램이 표시됩니다.
dw.일일수익.수익직접 공급됩니다스테이징.주문.금액~을 통해합집합().dw.daily_revenue.order_cnt~에 의해 공급됩니다스테이징.주문.주문_id~을 통해COUNT(DISTINCT).dw.일일수익.지역지도 바로가기스테이징.고객.지역.- 정적 파티션 값이 채워집니다.
dw.daily_revenue.ds— SQLFlow는 파티션 열이 SELECT 목록에 나타나지 않더라도 해당 열을 리니지 대상으로 모델링합니다. 스테이징.주문.상태,스테이징.오더.ds그리고 둘 다고객 ID컬럼은 결과를 형성합니다.어디그리고가입하다출력에 나타나지 않는 조건입니다. SQLFlow는 이를 다음과 같이 기록합니다. 간접적 (영향) 계보별도의 전환 가능한 관계 유형입니다. 대부분의 계보 도구는 이러한 구분을 하지 않지만, 영향 분석에 꼭 필요한 것이 바로 변경입니다.상태코딩과 그 이후의 모든 수익 수치는 변동합니다.
동일한 열 해상도가 적용됩니다. 측면 보기 explode()하위 테이블에서 선택하는 경우 품목.sku 폭발로부터 주문 이벤트.항목 배열, SQLFlow 추적 스쿠 테이블 별칭을 통해 도입된 측면 뷰를 거쳐 소스 컬렉션 열로 돌아갑니다. 또한 CTE, 중첩 서브쿼리, 뷰 등을 통한 참조도 해결합니다. 선택하다 * 확장성으로 인해 별표가 많은 기존 HQL도 여전히 정확한 열 가장자리를 생성합니다.
이주 시점의 벌집 계통
오늘날 팀들이 Hive 데이터 계보를 필요로 하는 가장 일반적인 이유는 Hive를 떠나기 때문입니다. Spark, Databricks 또는 클라우드 웨어하우스 등 어떤 목적지로 이동하든, 다음과 같은 질문이 제기됩니다. 어떤 작업이 어떤 테이블에 데이터를 제공하는지, 어떤 순서로 이동해야 하는지, 그리고 이 4,000개의 스크립트 중 실제로 더 이상 사용되지 않는 스크립트는 무엇인지입니다.
SQLFlow는 코드만으로 작동하기 때문에 클러스터(이미 동결되었을 수도 있음)에 접근할 필요 없이 어떤 머신에서든 HQL 리포지토리 내보내기 파일에 대한 분석을 실행할 수 있습니다. 배치 스캔은 이러한 용도로 설계되었습니다. SQLFlow는 100개 이상의 데이터베이스와 백만 개 이상의 열로 구성된 환경을 스캔하고, 결과를 영구적인 리미지 리포지토리에 저장하며, 마이그레이션 중에 스크립트가 변경될 때마다 점진적으로 새로 고칩니다. 그리고 Hive 이후로는, Spark SQL, 그리고 데이터브릭스 각각 고유한 방언 구문 분석기가 동일한 도구 내에 있으므로 원본 환경과 재작성된 대상 환경을 나란히 분석하고 새 계보가 이전 계보와 일치하는지 확인할 수 있습니다.
실행 방법
- HQL 파일을 붙여넣거나 업로드하세요. SQLFlow 클라우드(무료 티어)에서는 결과를 브라우저에서 바로 확인할 수 있으며, JSON, CSV 또는 PNG 형식으로 내보낼 수 있습니다.
- 메타스토어에서 메타데이터를 가져옵니다. JDBC를 통해 뷰 정의와 스키마가 해결됩니다.
선택하다 *또한 스크립트 간 참조를 올바르게 수행합니다. - 자동화하세요 ~을 통해 REST API 또는 헤드리스 CLI를 사용하여 CI에서 병합하기 전에 모든 HQL 변경 사항을 분석할 수도 있습니다.
- 모든 것을 네트워크 내에서 처리하세요 ~와 함께 온프레미스 SQLFlowDocker 또는 Kubernetes 환경(필요시 에어갭 구성 가능), 월 $500 또는 선택한 데이터베이스 유형별 일회성 $4,800. SQL 텍스트를 네트워크 외부로 전송할 수 없는 은행 및 통신 회사와 같은 환경에 Hadoop이 많이 설치되어 있으므로, 이 에디션은 이러한 환경을 위해 마련되었습니다.
SQLFlow는 모든 배포 환경에서 정적 분석만 수행합니다. SQL 코드와 스키마 메타데이터만 읽고 테이블의 행은 읽지 않습니다. 버전 8.2.3부터는 결과 그래프를 일반적인 영어 표현("어떤 테이블이 다음에 의존하는지")으로 쿼리할 수도 있습니다. 스테이징.주문답변의 모든 표와 열은 표시하기 전에 분석된 그래프와 비교하여 유효성을 검사합니다. 더 자세한 기능 둘러보기는 다음을 참조하세요. SQL 데이터 계보 도구 개요.
자주 묻는 질문
SQLFlow는 클러스터에 접근하지 않고도 Hive 계보를 구축할 수 있습니까?
네. SQLFlow는 HQL 텍스트를 파싱하므로 스크립트를 내보내면 (정확한 결과를 얻으려면 DDL도 포함) 됩니다. 선택하다 * 해상도)면 충분합니다. 이것이 Apache Atlas와 같은 후크 기반 접근 방식과의 핵심적인 차이점입니다. 후크 기반 접근 방식은 후크가 설치된 실제 클러스터에서 작업이 실행될 때만 계보를 캡처합니다.
LATERAL VIEW explode 및 기타 Hive 관련 구문을 지원합니까?
예. Hive는 SQLFlow의 39개 방언 파서 중 자체 전용 파서를 보유하고 있습니다. 측면 보기 explode()분할됨 삽입 덮어쓰기그리고 외부 테이블.
계보가 컬럼 수준인가요, 아니면 테이블 수준인가요?
컬럼 수준. SQLFlow는 각 출력 컬럼에 대해 해당 컬럼을 구동하는 정확한 소스 컬럼과 그 과정에서 사용된 함수, 형변환, 조인 및 집합 연산자를 식별합니다. 또한 간접적인 계보, 즉 다른 컬럼에서 사용된 컬럼도 기록합니다. 어디, 가입하다, 그리고 그룹화 기준 결과에 직접적으로 나타나지는 않지만 결과를 형성하는 조항들.
Hive 계보를 데이터 카탈로그로 내보낼 수 있나요?
예. 엔터프라이즈 배포에는 DataHub, Microsoft Purview 및 OpenMetadata용 내보내기 어댑터와 JSON 및 CSV 내보내기, 사용자 지정 통합을 위한 REST API가 포함됩니다.
SQLFlow는 Hive 테이블에 저장된 데이터를 읽을 수 있나요?
아니요. SQL 코드에 대한 정적 분석을 수행하고 선택적으로 메타스토어에서 스키마 메타데이터를 읽습니다. 테이블 행 데이터는 절대 건드리지 않으며, 온프레미스 버전의 경우 SQL 텍스트 자체는 네트워크를 벗어나지 않습니다.
SQLFlow 비용은 얼마인가요?
SQLFlow Cloud는 무료로 시작하며, 프리미엄 계정은 월 $49.99입니다. SQLFlow On-Premise는 선택한 데이터베이스 유형당 월 $500 또는 일회성 $4,800이며, 두 대의 서버에 설치할 수 있습니다. 추가 데이터베이스 유형은 각각 월 $100 또는 일회성 $1,000에 추가됩니다.
하이브 영지의 계보를 지도에 표시하세요
무료 시각화 도구에 HQL 스크립트를 붙여넣거나, 마이그레이션 시작 전에 전체 하둡 데이터 웨어하우스를 일괄 스캔하는 것에 대해 저희와 상담하세요.