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つのシナリオでタグが含まれます。

  1. SQL ステートメントには COMMENT プロパティがありません。

  2. 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';
Copy

出力(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';
Copy

元ファイルの形式の違いにより、生成されたコードの形式がソースコードと異なって見える場合があります。


テーブルを作成する

入力コード(SparkSQL)

CREATE TABLE SOME_TABLE
(COL1 VARCHAR(5));
Copy

出力コード(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"}}';
Copy

CREATE VIEW

ソースコード(HiveSQL)

CREATE OR REPLACE VIEW experienced_employee
AS
SELECT id, name FROM all_employee
WHERE working_years > 5;
Copy

出力コード(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;
Copy

CREATE FUNCTION

入力コード(SparkSQL)

CREATE OR REPLACE FUNCTION blue()
RETURNS STRING
LANGUAGE SQL RETURN '0000FF';
Copy

出力(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';
Copy

ALTER STATEMENTS

ALTER ステートメントにタグが含まれるのは、コメントプロパティが空の場合です。これは SparkSQL の2つのシナリオで発生します。

  1. SET TBLPROPERTIES を空のコメントで使用する場合

  2. 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'= ' ');
Copy

出力(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'= ' ');
Copy

出力(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"}}');
Copy

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"}}'
Copy