BigQuery 데이터 계보: Google BigQuery SQL의 열 수준 계보

BigQuery 데이터 계보 이는 BigQuery 프로젝트에서 데이터가 어떻게 이동하는지 보여주는 지도입니다. 어떤 원본 테이블과 열이 각 파생 테이블, 뷰 및 예약된 쿼리에 데이터를 제공하는지, 그리고 어떤 표현식이 데이터를 변환하는지를 보여줍니다. Google Dataplex는 테이블 수준에서 BigQuery 작업의 데이터 계보를 자동으로 캡처합니다. 어떤 데이터가 어떤 경로로 이동했는지 확인하려면 다음을 참조하세요. 컬럼 어떤 함수와 조인을 통해 어떤 정보를 입력해야 하는지, 그리고 SQL 자체를 어떻게 파싱해야 하는지를 알아야 합니다. Gudu SQLFlow 이 기능은 중첩된 구문을 해결하는 전용 BigQuery 방언 파서를 통해 정확히 그 역할을 수행합니다. 구조 전지, 언네스트별 확장 및 열 단위의 세분화된 뷰 체인.

30초 안에 시도해 보세요: BigQuery 쿼리를 붙여넣으세요. 무료 SQLFlow 계보 시각화 도구BigQuery 방언을 선택하면 대화형 열 수준 계보도를 볼 수 있습니다. 클라우드 에디션은 무료 티어를 제공합니다.

BigQuery 계보 추적이 생각보다 어려운 이유

BigQuery의 SQL은 일반적인 ANSI SQL이 아닙니다. 특히 세 가지 기능 때문에 단일 문법에 의존하는 데이터 계보 도구가 제대로 작동하지 않습니다.

  • 중첩되고 반복되는 열. BigQuery의 단일 열은 다음과 같을 수 있습니다. 구조 다른 필드를 포함하거나 정렬 구조체의 경우. 실제 계보는 내부까지 도달해야 합니다. 주문.고객.이메일 는 다른 계보 노드입니다. 주문.고객.국가비록 둘 다 물리적으로 같은 공간에 살고 있지만 말입니다.
  • 언네스트. 반복되는 필드를 평면화하면 한 행이 여러 행으로 바뀌고 쿼리 중간에 파생 관계가 도입됩니다. 이를 모델링하지 않는 파서는... 언네스트 평면화된 별칭과 해당 별칭이 유래된 배열 필드 사이의 연결 고리가 사라집니다.
  • 별의 팽창. 선택하다 * 뷰 체인을 통해 처리한다는 것은 출력 열이 쿼리 텍스트 어디에도 명시되어 있지 않다는 것을 의미합니다. 따라서 이를 확인하려면 눈앞에 있는 단일 쿼리문뿐만 아니라 테이블 및 뷰 정의도 필요합니다.

SQLFlow는 BigQuery 전용 파서(다음 중 하나)를 제공합니다. 39개의 방언별 구문 분석기 제품 자체에 (단일 일반 문법이 아닌) 세 가지 모두를 처리하는 기능이 포함되어 있습니다. CTE, 서브쿼리, 뷰 및 스타 확장을 통해 모든 열 참조를 해결하고 중첩 구조를 모델링합니다. 구조 필드를 일급 계보 노드로 간주합니다.

Dataplex는 테이블 수준의 작업 계보를 제공합니다. 그 다음에는 무엇을 해야 할까요?

Dataplex(Google Cloud의 데이터 거버넌스 계층)는 실제로 매우 뛰어난 기능을 제공합니다. BigQuery 작업이 실행되는 동안 이를 관찰하고 각 작업이 어떤 테이블을 읽고 썼는지 기록합니다. 예약된 쿼리가 어떤 테이블을 채우는지 알고 싶다면 Dataplex를 사용하면 됩니다. dw.일일수익 ~에서 raw.orders데이터플렉스에서 이미 알려드렸습니다.

실행 중인 작업 관찰로는 테이블 간의 변환 로직, 즉 어떤 소스 열이 어떤 출력 열로 전달되는지, 어떤 표현식, 필터 및 조인을 거치는지 알 수 없습니다. 이러한 정보는 SQL 텍스트에만 존재하므로 추출하려면 SQL 구문 분석이 필요합니다. 두 접근 방식은 서로 다른 질문에 대한 답을 제시합니다.

질문데이터플렉스 작업 계보SQLFlow에서 파싱한 계보
이 작업은 어떤 테이블과 관련이 있나요?예, 작업 실행 시 자동으로 발생합니다.네, SQL에서요.
어떤 컬럼에 데이터가 공급되나요? 일일 매출 총액?아니요 - 테이블 세분화예, 출력 열별로 그렇습니다.
각 출력 열을 계산하는 표현식은 무엇입니까?아니요예: 함수, 형변환, 집합체
어떤 열이 필터링 또는 조인(간접 계보)에만 사용됩니까?아니요네, 별도의 토글 가능한 레이어로 제공됩니다.
아직 실행되지 않은 SQL에 대한 코드 계보(코드 검토, 마이그레이션)아니요, 실행된 작업이 필요합니다.예, SQL 텍스트에 대한 정적 분석입니다.

일반적으로 팀은 Dataplex를 상시 작업 인벤토리 관리에 사용하고, "이 열을 변경하면 어떤 문제가 발생하는지" 또는 "이 숫자는 정확히 어디에서 나온 것인지"와 같은 질문에 열 정밀도로 답해야 할 때는 SQL 구문 분석을 사용합니다.

예시: CREATE TABLE AS SELECT with UNNEST

다음은 일반적인 BigQuery 패턴입니다. 반복되는 데이터를 사용하여 주문 테이블에서 단일 수익 테이블을 생성하는 것입니다. 라인 항목 구조.

CREATE TABLE dw.order_line_revenue AS SELECT o.order_id, o.customer.email AS customer_email, li.product_id, li.qty * li.unit_price AS line_revenue FROM raw.orders AS o, UNNEST(o.line_items) AS li WHERE o.status = 'COMPLETE';

이 값을 SQLFlow에 입력하면 다음과 같은 열 수준 계보가 생성됩니다.

  • 주문 라인 수익.고객 이메일 중첩 필드에서 가져온 것입니다. raw.orders.customer.email — 구조체 전체가 아니라 구조체의 특정 멤버입니다. 고객 열.
  • 주문 라인 수익.라인 수익 ~에서 유래합니다 raw.orders.line_items.qty 그리고 raw.orders.line_items.unit_price를 통해 언네스트 별명 그리고 곱셈입니다. 두 소스 필드 모두 반복되는 구조체 내에 있으며, SQLFlow는 평면화 과정을 추적합니다.
  • raw.orders.status 다음과 같이 나타납니다 간접 혈통: 출력 결과에는 전혀 나타나지 않지만, 어디 필터는 결과의 모든 행을 조정하는 기능을 합니다. SQLFlow는 직접적인 데이터 흐름과 간접적인 영향(WHERE, JOIN, GROUP BY 열)을 서로 다른 관계 유형으로 모델링하여 다이어그램에서 개별적으로 전환할 수 있도록 합니다. 대부분의 데이터 계보 도구는 이러한 구분을 전혀 하지 않습니다.

간접 계보는 겉으로 보이는 것보다 훨씬 중요합니다. 누군가가 열거형 값을 변경하면... 상태순전히 직계 혈통 추적 도구라고 합니다. 라인 수익 영향을 받지 않는다고요? 아닙니다. 모든 하위 수익 수치가 변합니다. 간접적인 연관성을 고려하지 않은 영향 분석은 사각지대가 있는 영향 분석입니다.

예약된 쿼리 및 뷰 체인 추적

대부분의 BigQuery 환경에서 중요한 데이터 계보는 단일 쿼리문이 아니라 여러 단계가 연결된 사슬과 같습니다. 원시 테이블, 뷰 계층, 보고 테이블을 생성하는 예약된 쿼리, 그리고 그 위에 또 다른 뷰가 이어지는 구조입니다. 개별 링크는 쉽게 파악할 수 있지만, 소스 열에서 대시보드 필드까지의 전체 경로는 그렇지 않습니다.

SQLFlow는 전체 데이터 세트를 함께 분석합니다. 뷰 DDL과 예약된 쿼리 SQL(붙여넣기, 파일 업로드, JDBC를 통한 실시간 메타데이터, dbt 매니페스트 또는 Grabit 메타데이터 추출)을 제공하면 뷰 간 참조를 해결하고 전체 연결을 생성합니다. 선택하다 * 각 계층의 실제 스키마를 기준으로 확장되며, 결과 다이어그램을 통해 출력 열을 클릭하여 모든 중간 뷰를 거쳐 원시 테이블의 소스 열까지 거슬러 올라갈 수 있습니다. 내보내기 형식은 JSON, CSV, PNG 또는 REST API를 통한 프로그래밍 방식이며, 엔터프라이즈 환경에서는 데이터 계보를 DataHub, Microsoft Purview 또는 OpenMetadata로 푸시합니다.

강제되지 않은 제약 조건의 ER 다이어그램

BigQuery는 기본 키와 외래 키만 지원합니다. 시행되지 않음 제약 조건: 최적화 도구와 문서화를 위해 DDL에 선언되지만, 작성 시점에는 검사되지 않습니다. 강제되지 않기 때문에 많은 팀에서 이를 쓸모없는 메타데이터로 간주합니다. 하지만 그렇지 않습니다. 제약 조건은 ER 다이어그램에 꼭 필요한 관계 선언입니다.

SQLFlow의 ER 추론은 BigQuery를 이해합니다. 시행되지 않음 PK/FK 관용구: DDL을 실행하면 다음과 같은 제약 조건으로부터 엔티티-관계 다이어그램을 그려줍니다. 기본 키(order_id) 추가는 강제되지 않습니다. 그리고 일치하는 외국 키 ... 참조 ... 적용되지 않음 선언문들을 통해, 기존에 보유하고 있는 DDL로부터 바로 웨어하우스의 ER 모델을 생성할 수 있으며, 이 모델에 포함된 스키마들의 관계 문서는 다른 곳에는 존재하지 않을 가능성이 높습니다.

팀에서 BigQuery 데이터 계보를 사용하는 용도는 무엇인가요?

  • 스키마 변경 전 영향 분석: 컬럼이 실제로 제공하는 모든 예약된 쿼리, 보기 및 보고서를 찾습니다(다음 경로를 통해서도 포함). 언네스트 구조체 접근 권한 — 이름을 바꾸거나 다시 입력하기 전에.
  • 잘못된 숫자 디버깅: 대시보드 메트릭 하나에서 뷰 체인을 따라 역방향으로 이동하여 해당 메트릭을 생성한 정확한 소스 필드 및 표현식을 찾습니다.
  • 이주 계획: BigQuery로 데이터를 가져오거나 BigQuery에서 데이터를 가져올 때, 종속성 그래프는 어떤 순서로 데이터를 가져와야 하고 어떤 데이터를 안전하게 남겨둘 수 있는지 알려줍니다. SQLFlow도 동일한 열 수준 그래프를 구축합니다. 눈송이 그리고 아마존 레드시프트따라서 하나의 도구를 사용하여 양쪽에서 웨어하우스 간 마이그레이션을 매핑할 수 있습니다.
  • 규정 준수 및 감사: 감사자가 요구하는 열 단위로 규제된 출력에 포함되는 소스 필드를 입증해야 하며, 이 출력은 수동으로 관리하는 것이 아니라 SQL에서 생성되어야 합니다.

개인정보 보호, 배포 및 가격 책정

SQLFlow는 SQL 코드와 스키마 메타데이터에 대한 정적 분석만 수행합니다. BigQuery 테이블의 행을 읽지 않으며, 데이터 액세스 권한이 있는 서비스 계정도 필요하지 않습니다. SQL 텍스트와 DDL만으로도 충분합니다. SQLFlow 클라우드는 무료 티어를 제공하며, 프리미엄 티어는 월 $49.99달러입니다. 규제 환경의 경우, 온프레미스 SQLFlow 자체 네트워크 내의 Docker 또는 Kubernetes 환경에서 실행되며, 필요한 경우 에어갭 구성도 가능합니다. 월 $500 또는 선택한 데이터베이스 유형당 일회성 $4,800의 요금이 부과됩니다. 자세한 내용은 다음에서 확인하세요. 가격 페이지엔터프라이즈 환경에서는 100개 이상의 데이터베이스와 백만 개 이상의 열을 포함하는 대규모 환경을 일괄 스캔하고, 증분 스캔 및 영구적인 데이터 계보 저장소를 활용합니다.

자주 묻는 질문

Dataplex에서 이미 BigQuery 계보 정보를 제공하지 않나요?

네, 테이블 수준에서는 가능합니다. Dataplex는 각 BigQuery 작업이 읽고 쓰는 테이블을 자동으로 기록하므로, 작업 인벤토리가 매우 정확합니다. 하지만 SQL 내부의 변환 로직, 즉 어떤 열이 어떤 표현식을 통해 다른 열에 전달되는지는 추출하지 않습니다. 이를 위해서는 SQL을 파싱하는 도구가 필요한데, SQLFlow가 바로 그 역할을 합니다.

SQLFlow는 STRUCT 및 ARRAY 열을 통해 추적 계보를 추적할 수 있습니까?

예. BigQuery 파서는 중첩된 구조체 필드를 개별 계보 노드로 모델링합니다. 고객 이메일 그리고 고객.국가 별개의 계보를 가지고 있으며, 여러 분야를 거쳐 추적됩니다. 언네스트 반복되는 열의 평면화.

SQLFlow는 BigQuery 뷰에서 SELECT *를 어떻게 처리하나요?

스타 표현식은 실제 테이블 및 뷰 정의에 대해 확장되므로 모든 암시적 열에 명시적인 계보가 부여됩니다. 이는 다중 계층 뷰 체인을 통해 작동하며, 상위 뷰 뒤에 있는 열은 상위 뷰 뒤에 있습니다. 선택하다 * 여러 상류 관점에서 정의될 수 있습니다.

예약된 쿼리와 뷰 전반에 걸쳐 계보를 함께 매핑할 수 있습니까?

예. 예약된 쿼리 SQL과 뷰 DDL을 하나의 작업으로 분석하면 SQLFlow가 전체 과정을 연결해 주므로, 보고서 열을 구체화된 쿼리와 모든 중간 뷰를 거쳐 원본 소스 열까지 추적할 수 있습니다.

SQLFlow는 BigQuery 데이터에 대한 접근 권한이 필요한가요?

아니요. 이는 정적 분석입니다. SQL 텍스트와 선택적으로 스키마 메타데이터만 분석합니다. 테이블 행 데이터는 절대 읽지 않습니다. 온프레미스 환경에서는 SQL 텍스트조차도 네트워크 내에 유지됩니다.

SQLFlow 비용은 얼마인가요?

SQLFlow Cloud는 무료로 시작하며, 프리미엄 계정은 월 $49.99입니다. SQLFlow On-Premise는 선택한 데이터베이스 유형당 월 $500 또는 일회성 결제 시 $4,800이며, 두 대의 서버에 설치할 수 있습니다.

BigQuery 계보를 지금 확인하세요

BigQuery 쿼리를 무료 시각화 도구에 붙여넣거나, 전체 프로젝트 스캔에 대해 저희와 상담해 보세요.