SnowConvert AI :Greenplum CREATE MATERIALIZED VIEW

GreenplumからSnowflakeへの変換

説明

このセクションでは、Greenplum独自の機能について説明します。

詳しくは [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)ドキュメントを参照してください。

文法構文

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は自動的にデータストレージを処理するため、これらのオプションは移行時に削除されます。