SnowConvert AI - Greenplum - CREATE MATERIALIZED VIEW

Greenplum에서 Snowflake로의 변환

설명

이 섹션에서는 Greenplum의 독점적인 기능에 대해 설명합니다.

자세한 내용은 CREATE MATERIALIZE VIEW 설명서를 참조하세요.

문법 구문

CREATE MATERIALIZED VIEW <table_name>
AS <query>
[
    DISTRIBUTED { 
        BY <column> [<opclass>], [ ... ] | RANDOMLY | REPLICATED 
        }
]
Copy

DISTRIBUTED BY

Hint

이 구문은 Snowflake에서 가장 동등한 형식으로 변환됩니다.

Greenplum의 DISTRIBUTED BY 절은 데이터가 시스템의 세그먼트에 물리적으로 분산되는 방식을 제어합니다. 그렇지만 CLUSTER BY는 동일한 마이크로 파티션에서 테이블의 데이터를 같은 위치에 배치하도록 명시적으로 지정된 동적 테이블(또는 동적 테이블의 표현식)에 있는 열의 하위 세트입니다. 서로 다른 아키텍처 수준에서 작동하지만 데이터를 효율적으로 분산하여 쿼리 성능을 개선하는 것이 목표입니다.

문법 구문

DISTRIBUTED BY ( <column> [<opclass>] [, ... ] )
Copy

샘플 소스

입력 코드:

Greenplum

CREATE MATERIALIZED VIEW product_summary AS
SELECT
    category,
    COUNT(*) AS total_products,
    MAX(price) AS max_price
FROM products
GROUP BY category
DISTRIBUTED BY (category);
Copy

출력 코드:

Snowflake
CREATE OR REPLACE DYNAMIC TABLE product_summary
--** SSC-FDM-0031 - DYNAMIC TABLE REQUIRED PARAMETERS SET BY DEFAULT **
TARGET_LAG='1 day'
WAREHOUSE=UPDATE_DUMMY_WAREHOUSE
--** SSC-FDM-GP0001 - THE PERFORMANCE OF THE CLUSTER BY MAY VARY COMPARED TO THE PERFORMANCE OF DISTRIBUTED BY **
CLUSTER BY (category)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "greenplum",  "convertedOn": "04/24/2025",  "domain": "test" }}'
AS
    SELECT
    category,
    COUNT(*) AS total_products,
    MAX(price) AS max_price
FROM
    products
    GROUP BY category;
Copy

DISTRIBUTED RANDOMLY - REPLICATED

참고

이 구문은 Snowflake에서는 필요하지 않습니다.

Greenplum의 DISTRIBUTED REPLICATED 또는 DISTRIBUTED RANDOMLY 절은 데이터가 시스템의 세그먼트에 물리적으로 분산되는 방식을 제어합니다. Snowflake는 데이터 저장소를 자동으로 처리하므로 마이그레이션에서 이러한 옵션이 제거됩니다.