Snowpark Migration Accelerator: SQL ステートメント¶
タグ付けされた要素 ¶
SQL ステートメントにはタグが付けられ、使用と消費状況をモニターします。
ステートメント |
HiveSQL |
SparkSQL |
SnowSQL |
---|---|---|---|
CREATE TABLE |
SUPPORTED |
SUPPORTED |
FUNCTIONAL EQUIVALENT |
CREATE VIEW |
SUPPORTED |
SUPPORTED |
FUNCTIONAL EQUIVALENT |
CREATE FUNCTION |
NOT SUPPORTED |
SUPPORTED |
FUNCTIONAL EQUIVALENT |
ALTER TABLE |
SUPPORTED |
SUPPORTED |
FUNCTIONAL EQUIVALENT |
ALTER VIEW |
SUPPORTED |
SUPPORTED |
FUNCTIONAL EQUIVALENT |
注釈
コメントが「FUNCTIONAL EQUIVALENT」とマークされている場合は、コメントのSnowflakeへの変換のみが検証されたことを意味します。コメント内のその他のステートメントは、このステータス評価には含まれません。
使用状況 ¶
このツールは、以下のステートメントを識別してとタグ付けします。
CREATE STATEMENTS¶
CREATE ステートメントには2つのシナリオでタグが含まれます。
SQL ステートメントには COMMENT プロパティがありません。
SQL ステートメントには
COMMENT
プロパティが含まれていますが、値は割り当てられていません。
SQL ステートメントにコメントが含まれている場合、そのコメントは変換処理中も保持されます。
例 ¶
入力(Apache SparkSQL)
CREATE OR REPLACE VIEW some_view
AS
SELECT id, name FROM some_table WHERE some_column > 5;
CREATE OR REPLACE FUNCTION blue()
RETURNS STRING
LANGUAGE SQL
COMMENT ''
RETURN '0000FF';
CREATE TABLE my_varchar (
COL1 VARCHAR(5)
) COMMENT 'The Table';
出力(Snowflake SQL)
CREATE OR REPLACE VIEW some_view
COMMENT = '{"origin":"sf_sit","name":"sma","version":{"major":1,"minor":2,"patch":3},"attributes":{"language":"HiveSql"}}'
AS
SELECT
id,
name
FROM
some_table
WHERE
some_column > 5;
CREATE OR REPLACE FUNCTION blue()
RETURNS STRING LANGUAGE SQL
COMMENT = '{"origin":"sf_sit","name":"sma","version":{"major":0,"minor":0,"patch":0},"attributes":{"language":"SparkSql"}}'
RETURN '0000FF';
CREATE TABLE my_varchar
(COL1 VARCHAR(5))
COMMENT = 'The Table';
元ファイルの形式の違いにより、生成されたコードの形式がソースコードと異なって見える場合があります。
テーブルを作成する¶
入力コード(SparkSQL)
CREATE TABLE SOME_TABLE
(COL1 VARCHAR(5));
出力コード(Snowflake SQL)
CREATE TABLE SOME_TABLEA
(COL1 VARCHAR(5))
COMMENT = '{"origin":"sf_sit","name":"sma","version":{"major":0,"minor":0,"patch":0},"attributes":{"language":"SparkSql"}}';
CREATE VIEW ¶
ソースコード(HiveSQL)
CREATE OR REPLACE VIEW experienced_employee
AS
SELECT id, name FROM all_employee
WHERE working_years > 5;
出力コード(Snowflake SQL)
CREATE OR REPLACE VIEW experienced_employee
COMMENT = '{"origin":"sf_sit","name":"sma","version":{"major":1,"minor":2,"patch":3},"attributes":{"language":"HiveSql"}}'
AS
SELECT
id,
name
FROM
all_employee
WHERE
working_years > 5;
CREATE FUNCTION ¶
入力コード(SparkSQL)
CREATE OR REPLACE FUNCTION blue()
RETURNS STRING
LANGUAGE SQL RETURN '0000FF';
出力(Snowflake SQL)
CREATE OR REPLACE FUNCTION blue()
RETURNS STRING
LANGUAGE SQL
COMMENT = '{"origin":"sf_sit","name":"sma","version":{"major":0,"minor":0,"patch":0},"attributes":{"language":"SparkSql"}}'
RETURN '0000FF';
ALTER STATEMENTS¶
ALTER ステートメントにタグが含まれるのは、コメントプロパティが空の場合です。これは SparkSQL の2つのシナリオで発生します。
SET TBLPROPERTIES
を空のコメントで使用する場合UNSET TBLPROPERTIES
を使用する場合
例¶
SET TBLPROPERTIES (ALTER VIEW と ALTER TABLE)
入力(Apache Spark SQL)
ALTER TABLE SOME_TABLE SET TBLPROPERTIES ('comment'= ' ');
-- ALTER VIEW
ALTER VIEW SOME_VIEW SET TBLPROPERTIES ('comment'= ' ');
出力(Snowflake SQL)
-- ALTER TABLE
ALTER TABLE SOME_TABLE
SET TBLPROPERTIES ('comment' = '{"origin":"sf_sit","name":"sma","version":{"major":0,"minor":0,"patch":0},"attributes":{"language":"SparkSql"}}');
-- ALTER VIEW
ALTER VIEW SOME_VIEW
SET TBLPROPERTIES ('comment' = '{"origin":"sf_sit","name":"sma","version":{"major":0,"minor":0,"patch":0},"attributes":{"language":"SparkSql"}}');
**Input (Apache HiveSQL)**
```{code} sql
:force:
-- ALTER TABLE
ALTER TABLE SOME_TABLE SET TBLPROPERTIES ('comment'= ' ');
-- ALTER VIEW
ALTER VIEW SOME_VIEW SET TBLPROPERTIES ('comment'= ' ');
出力(Snowflake SQL)
-- ALTER TABLE
ALTER TABLE SOME_TABLE
SET TBLPROPERTIES ('comment' = '{"origin":"sf_sit","name":"sma","version":{"major":0,"minor":0,"patch":0},"attributes":{"language":"HiveSql"}}');
-- ALTER VIEW
ALTER VIEW SOME_VIEW
SET TBLPROPERTIES ('comment' = '{"origin":"sf_sit","name":"sma","version":{"major":0,"minor":0,"patch":0},"attributes":{"language":"HiveSql"}}');
UNSET TBLPROPERTIES (ALTER VIEW と ALTER TABLE)
入力(Apache Spark SQL)
-- ALTER TABLE
ALTER TABLE SOME_TABLE UNSET TBLPROPERTIES ('comment');
-- ALTER VIEW
ALTER VIEW SOME_VIEW UNSET TBLPROPERTIES ('comment');
**Output (Snowflake SQL)**
```{code} sql
:force:
-- ALTER TABLE
ALTER TABLE SOME_TABLE
UNSET TBLPROPERTIES ('comment')
ALTER TABLE SOME_TABLE
SET COMMENT = '{"origin":"sf_sit","name":"sma","version":{"major":0,"minor":0,"patch":0},"attributes":{"language":"SparkSql"}}'
-- ALTER VIEW
ALTER VIEW SOME_VIEW
UNSET TBLPROPERTIES ('comment')
ALTER VIEW SOME_VIEW
SET COMMENT = '{"origin":"sf_sit","name":"sma","version":{"major":0,"minor":0,"patch":0},"attributes":{"language":"SparkSql"}}'