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
}
]
DISTRIBUTED に BY¶
Hint
この構文は、Snowflakeで最も近い形式に変換されます。
Greenplumの DISTRIBUTED BY 句は、データが物理的にどのようにシステムのセグメントに分散されるかを制御します。一方、CLUSTER BY は、動的テーブル内の列(または動的テーブル上の式)のサブセットであり、テーブル内のデータを同じマイクロパーティションに共存させるように明示的に指定されます。これらは異なるアーキテクチャレベルで動作しますが、データを効率的に分散させることでクエリのパフォーマンスを向上させることを目的としています。
文法構文¶
DISTRIBUTED BY ( <column> [<opclass>] [, ... ] )
サンプルソース¶
入力コード:
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);
出力コード:
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;
DISTRIBUTED RANDOMLY - REPLICATED¶
注釈
Snowflakeではこの構文は必要ありません。
GreenplumのDISTRIBUTED REPLICATED またはDISTRIBUTED RANDOMLY 句は、データが物理的にどのようにシステムのセグメントに分散されるかを制御します。Snowflakeは自動的にデータストレージを処理するため、これらのオプションは移行時に削除されます。