그린플럼 데이터 계보 이는 Greenplum 데이터 웨어하우스를 통해 데이터가 흐르는 방식을 열 수준에서 보여주는 지도입니다. 외부 테이블과 스테이징 스키마에서 시작하여 INSERT-SELECT ELT 체인과 뷰를 거쳐 보고서에서 읽는 분산 팩트 테이블과 차원 테이블로 데이터가 이동하는 경로를 나타냅니다. Gudu SQLFlow Greenplum SQL을 Greenplum 전용 방언 파서(제공되는 39개의 방언별 파서 중 하나)로 구문 분석하여 해당 맵을 자동으로 생성하고 열별로 추적할 수 있는 대화형 다이어그램을 렌더링합니다.
지금 바로 시도해 보세요: Greenplum 쿼리 또는 DDL을 여기에 붙여넣으세요. 무료 온라인 SQL 계보 시각화 도구그린플럼 방언을 선택하면 몇 초 만에 열 수준의 계보도를 얻을 수 있습니다.
Greenplum 데이터 계보에 전용 파서가 필요한 이유
Greenplum은 PostgreSQL 계열의 MPP 데이터베이스이며, 대부분의 쿼리 구문은 PostgreSQL을 아는 사람이라면 누구나 익숙하게 느낄 것입니다. 하지만 Greenplum의 계보에서 가장 중요한 부분은 바로 일반 PostgreSQL과 차별화되는 부분입니다.
- 외부 테이블.
외부 테이블 생성~와 함께gpfdist파일 위치 또는 경로는 Greenplum에 데이터가 유입되는 표준 경로입니다. 파서가 이 경로에서 오류를 일으키는 경우위치그리고체재해당 절은 모든 로드 파이프라인의 첫 번째 홉을 손실합니다. - 배포 키.
배포처:그리고무작위로 배포됨절은 거의 모든 테이블 정의에 나타납니다. 일반적인 ANSI 문법은 이를 허용하지 않으므로 DDL도 허용되지 않으며, 결과적으로 해당 테이블에 대한 계보를 전혀 추적할 수 없습니다. - INSERT-SELECT ELT 체인. Greenplum 데이터 웨어하우스는 일반적으로 데이터베이스 내에서 데이터를 변환합니다. 스테이징 테이블에서 표준화된 테이블로, 그리고 최종적으로 팩트 테이블로 변환하는 각 단계가 포함됩니다.
...에 삽입 선택조인, 캐스팅, 집계 등을 포함하므로, 계보는 각 문장별로 개별적으로 계산하는 것이 아니라 체인의 모든 단계를 거쳐 연결되어야 합니다.
SQLFlow는 Greenplum 지원을 별도의 방언 파서로 처리하기 때문에 세 가지 모두를 처리합니다. 오류가 억제된 PostgreSQL이 아닙니다. 내부 엔진은 다음과 같습니다. 일반 SQL 파서, a commercial SQL compiler front-end developed since the mid-2000s and validated against roughly 13,600 per-dialect SQL test fixtures.
예시: 외부 테이블의 데이터를 분산 팩트 테이블로 로드하는 방법
다음은 Greenplum의 대부분의 로드 파이프라인이 따르는 패턴을 간략하게 설명한 것입니다. 일일 주문 파일은 다음을 통해 도착합니다. gpfdist데이터는 외부 테이블에 저장되고, 이후 팩트 테이블로 병합되어 배포됩니다. 주문 ID:
CREATE EXTERNAL TABLE ext_stage.daily_orders ( order_id bigint, customer_id bigint, order_ts timestamp, amount numeric(12,2), channel text ) LOCATION ('gpfdist://etl-host:8081/daily_orders*.csv') FORMAT 'CSV' (HEADER); CREATE TABLE dw.fact_orders ( order_id bigint, customer_sk bigint, order_date date, net_amount numeric(12,2) ) DISTRIBUTED BY (order_id); INSERT INTO dw.fact_orders (order_id, customer_sk, order_date, net_amount) SELECT o.order_id, c.customer_sk, o.order_ts::date, o.amount - COALESCE(r.refund_amount, 0) FROM ext_stage.daily_orders o JOIN dw.dim_customer c ON c.customer_id = o.customer_id LEFT JOIN dw.stg_refunds r ON r.order_id = o.order_id WHERE o.channel <> 'test';
SQLFlow를 통해 실행하면 다이어그램이 표시되며 각 열에 대해 다음과 같은 결과가 나타납니다. dw.fact_orders데이터가 정확히 어디에서 왔는지, 그리고 전송 과정에서 어떤 일이 있었는지:
| 대상 열 | 원본 열 | 변환 |
|---|---|---|
fact_orders.order_id | ext_stage.daily_orders.order_id | 직접 복사 |
fact_orders.customer_sk | dw.dim_customer.customer_sk | 직접 가입 고객 ID |
사실_주문.주문_날짜 | ext_stage.daily_orders.order_ts | 캐스팅 날짜 |
fact_orders.net_amount | 일일 주문량, stg_환불.환불금액 | 뺄셈 합체하다 |
테이블 수준 보기에서는 어떤 내용이 숨겨져 있었는지 주목하세요. 순금액 두 개의 서로 다른 테이블에서 데이터를 공급받으며, 외부 테이블의 채널 해당 열은 팩트 테이블에 전혀 도달하지 않지만, 어떤 행이 도달할지를 제어합니다. SQLFlow는 이러한 두 번째 유형의 관계도 포착합니다.
ELT 사슬에서 직접 계보와 간접 계보의 차이점
위 예시에서, 채널 오직 ~에만 나타납니다 어디 절과 조인 키는 다음에만 나타납니다. 에 조건들입니다. 이 조건들 중 어느 것도 출력에 반영되지 않지만, 이 조건들 중 하나라도 변경하면 숫자가 바뀝니다. 사실 순서SQLFlow는 이러한 것들을 다음과 같이 모델링합니다. 간접적 (영향) 계보이는 직접적인 데이터 흐름과는 별개의 관계 유형이며, 다이어그램에서 각각을 독립적으로 켜고 끌 수 있습니다. 대부분의 데이터 계보 도구는 이러한 구분을 하지 않기 때문에 영향 분석에서 필터 및 조인 종속성을 제대로 파악하지 못하는 경우가 많습니다.
Greenplum에서는 INSERT-SELECT 체인이 매우 깊게 연결되기 때문에 다른 환경보다 이 점이 더욱 중요합니다. 일반적인 환경에서는 외부 테이블, 스테이징 테이블, 컨폼 레이어, 팩트 레이어, 보고 뷰가 서로 겹겹이 쌓여 있습니다. SQLFlow는 CTE, 서브쿼리, 뷰 등을 포함한 모든 단계에서 열 참조를 해결합니다. 선택하다 * 확장성이 뛰어나므로 보고서 열에서 소스 파일 피드까지 하나의 연속적인 경로로 추적할 수 있습니다.
Greenplum에서 다른 플랫폼으로 마이그레이션하시나요? 먼저 맵 종속성을 확인하세요.
현재 많은 Greenplum 데이터베이스가 클라우드 웨어하우스로 마이그레이션될 가능성이 높으며, 마이그레이션 비용 초과의 가장 큰 원인은 알려지지 않은 종속성입니다. 예를 들어, 문서화되지 않은 뷰, 세 명의 사용자가 조용히 읽는 스테이징 테이블, 하위 보고서에서 필요하지만 새 모델에서 삭제된 열 등이 있습니다. 마이그레이션 전에 종속성 맵을 구축하면 프로덕션 환경에서 이러한 문제를 발견하는 것을 방지할 수 있습니다.
SQLFlow를 사용한 계보 우선 마이그레이션 워크플로는 다음과 같습니다.
- 저택을 훑어보세요. Greenplum DDL, 뷰 정의 및 로드 스크립트를 SQLFlow에 붙여넣거나 파일로 업로드하거나 JDBC를 통해 실시간으로 가져와 사용하세요. 엔터프라이즈 환경에서는 100개 이상의 데이터베이스와 백만 개 이상의 열을 포함하는 대규모 환경을 일괄 스캔하고, 코드 변경 시 증분 재스캔을 수행합니다.
- 실제로 사용되는 것을 찾아보세요. 컬럼 수준의 계보를 사용하면 실시간 출력에 사용되는 테이블과 컬럼을 아무도 읽지 않는 테이블 및 컬럼과 분리할 수 있으므로 20년 동안 축적된 데이터가 아닌 실제 데이터 웨어하우스를 마이그레이션할 수 있습니다.
- 동작 순서를 정하세요. 계보 그래프는 종속성 순서를 보여줍니다. 즉, 어떤 주제 영역이 독립적으로 이동할 수 있고 어떤 주제 영역이 상위 피드들을 함께 이동시키는지 알 수 있습니다.
- 대상을 확인하십시오. 동일한 엔진이 Snowflake, BigQuery, Redshift, Databricks 및 기타 39개의 지원되는 방언을 포함한 대상 방언을 구문 분석하기 때문에 마이그레이션된 SQL을 다이어그램으로 나타내고 마이그레이션 전후의 계보를 비교할 수 있습니다.
혼합된 레거시 시스템을 운영하는 팀은 다른 MPP 플랫폼에서도 동일한 접근 방식을 사용합니다. 관련 페이지를 참조하세요. 테라데이터 데이터 계보 그리고 버티카 데이터 계보Greenplum은 PostgreSQL 기반이기 때문에 일반 PostgreSQL을 사용하는 환경에서도 하나의 도구로 두 가지 모두를 관리할 수 있습니다. PostgreSQL 데이터 계보 이 페이지에서는 차이점을 다룹니다.
Greenplum SQL을 SQLFlow에 통합하는 방법
- 붙여넣거나 업로드하세요: 개별 쿼리, 스크립트 또는 일괄 처리
.sql브라우저에 있는 파일들. - JDBC 메타데이터: Greenplum에 연결하여 테이블 정의를 가져오고 SQL을 직접 볼 수 있으므로, 리전이 저장소에 있는 내용이 아닌 배포된 내용을 반영합니다.
- 그라빗 섭취자: 예약된 반복 스캔을 위한 자동화된 메타데이터 추출.
- REST API 및 CLI: CI 또는 오케스트레이션 파이프라인을 통해 드라이브 분석을 수행합니다. SQLFlow REST API 또는 헤드리스 CLI를 사용하여 결과를 JSON, CSV 또는 PNG 형식으로 내보낼 수 있습니다.
SQLFlow는 SQL 텍스트와 스키마 메타데이터에 대한 정적 분석을 수행합니다. 테이블의 행을 읽지 않으며, 온프레미스 버전(Docker 또는 Kubernetes, 에어갭 환경 지원)은 SQL 텍스트까지 네트워크 내부에 보관합니다. 이는 Greenplum이 널리 사용되는 규제 산업 분야에 특히 유용합니다. 또한, 데이터 계보는 DataHub, Microsoft Purview 또는 OpenMetadata와 같이 시스템 레코드로 지정된 카탈로그로 내보낼 수 있습니다.
오픈소스 계보 도구는 어떻습니까?
오픈소스 파서(예: ...) sqllineage 그리고 sqlglot 개별적이고 제대로 작동하는 쿼리에서 테이블 관계를 추출하는 데는 실제로 유용하며, 문제가 그것뿐이라면 충분할 수도 있습니다. 하지만 실제 운영 환경에서 사용하는 Greenplum 코드에서는 이러한 기능이 부족해 보입니다. 외부 테이블 생성 그리고 배포처: 구문, 문장 간 연결이 필요한 다중 홉 INSERT-SELECT 체인, 선택하다 * 스키마 메타데이터를 필요로 하는 확장과 필터 및 조인을 통한 간접적인 계보 추적을 비교해 보세요. 실제 로드 스크립트 중 하나를 두 가지 방식으로 실행하고 출력을 비교해 보면, 어떤 기능 매트릭스보다도 빠르게 문제를 해결할 수 있습니다.
자주 묻는 질문
SQLFlow는 외부 테이블 및 DISTRIBUTED BY와 같은 Greenplum 고유 구문을 지원합니까?
네. SQLFlow에는 Greenplum 방언 파서가 내장되어 있습니다. 외부 테이블 생성, 배포처: 절 및 기타 Greenplum DDL은 오류를 발생시키는 대신 깔끔하게 구문 분석되고 계보 그래프에 참여합니다.
Greenplum에서 PostgreSQL 방언을 사용해도 될까요?
일반 SELECT 문은 대부분 구문 분석이 가능하지만, 로드 파이프라인을 정의하는 문(외부 테이블 DDL 및 분산 테이블 정의)은 Greenplum에 특화되어 있습니다. 전체 시스템이 구문 분석되도록 하려면 Greenplum 방언을 사용하십시오. SQLFlow는 두 가지 모두 지원하므로 Greenplum과 PostgreSQL이 혼합된 환경에서도 문제없이 작동합니다.
SQLFlow는 Greenplum 테이블의 데이터에 접근해야 하나요?
아니요. SQLFlow는 SQL 코드에 대한 정적 분석을 수행하고 선택적으로 JDBC를 통해 스키마 메타데이터를 읽습니다. 테이블 행은 절대 읽지 않으며, 온프레미스 버전은 SQL 텍스트를 네트워크 내부에 완전히 보관합니다.
SQLFlow는 Greenplum에서 클라우드로의 마이그레이션 계획을 세우는 데 도움이 될 수 있을까요?
예. Greenplum 환경을 스캔하여 실제 열 수준 종속성 그래프를 얻고, 이를 사용하여 마이그레이션의 범위와 순서를 정한 다음, 대상 플랫폼(Snowflake, BigQuery, Redshift, Databricks 및 동일한 엔진에서 지원하는 35개 이상의 다른 언어)에서 마이그레이션된 SQL을 다이어그램으로 작성하여 고아 테이블이 없는지 확인합니다.
Greenplum 계보 분석을 위한 SQLFlow 비용은 얼마인가요?
SQLFlow 클라우드는 무료 티어를 제공하며, 프리미엄 티어는 월 $49.99입니다. SQLFlow 온프레미스는 선택한 데이터베이스 유형당 월 $500 또는 일회성 결제 시 $4,800이며, 두 대의 서버에 설치할 수 있습니다. 자세한 내용은 다음을 참조하십시오. 가격 자세한 내용은 다음을 참조하세요.
지금 바로 그린플럼 계보를 확인하세요
Greenplum 로드 스크립트를 무료 시각화 도구에 붙여넣거나, 마이그레이션 시작 전에 전체 시스템을 스캔하는 것에 대해 저희와 상담해 보세요.