SnowConvert AI - Greenplum - CREATE MATERIALIZED VIEW

Traduction de Greenplum vers Snowflake

Description

Cette section explique les fonctionnalités exclusives à Greenplum.

Pour plus d’informations, voir la documentation [CREATE MATERIALIZE VIEW (https://techdocs.broadcom.com/us/en/vmware-tanzu/data-solutions/tanzu-greenplum/7/greenplum-database/ref_guide-sql_commands-CREATE_MATERIALIZED_VIEW.html).

Grammar Syntax

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

DISTRIBUTED BY

Hint

Cette syntaxe est traduite dans sa forme la plus équivalente dans Snowflake.

La clause DISTRIBUTED BY dans Greenplum contrôle la manière dont les données sont physiquement réparties entre les segments du système. Entre-temps, CLUSTER BY est un sous-ensemble de colonnes dans une table dynamique (ou d’expressions sur une table dynamique) qui sont explicitement désignées pour co-localiser les données dans la table dans les mêmes micro-partitions. Bien qu’elles fonctionnent à différents niveaux architecturaux, elles visent à améliorer les performances des requêtes en distribuant efficacement les données.

Grammar Syntax

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

Source d’exemple

Code d’entrée :

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

Code de sortie :

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

Note

Cette syntaxe n’est pas nécessaire dans Snowflake.

La clause DISTRIBUTED REPLICATED ou DISTRIBUTED RANDOMLY dans Greenplum contrôle la manière dont les données sont physiquement réparties entre les segments du système. Comme Snowflake gère automatiquement le stockage de données, ces options seront supprimées lors de la migration.