SnowConvert: Azure Synapse

SnowConvert for Azure Synapseとは

SnowConvert は、Azure Synapseスクリプトを理解し、このソースコードを関数的に等価なSnowflakeコードに変換するソフトウェアです。

変換タイプ

具体的には、 SnowConvert for Azure Synapseは以下の変換を行います。

Azure SynapseからSnowflake SQL へ

SnowConvert は、Azure Synapseのソースコードを理解し、ソースコード内のデータ定義言語(DDL)、データ操作言語(DML)、および関数をSnowflakeターゲット内の対応する SQL に変換します。

サンプルコード

Azure Synapseの基本入力コード:

 CREATE TABLE Persons (
    PersonID int,
    LastName varchar(255),
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
);
Copy

Snowflake SQL 出力コード:

 CREATE OR REPLACE TABLE Persons (
    PersonID INT,
    LastName VARCHAR(255),
    FirstName VARCHAR(255),
    Address VARCHAR(255),
    City VARCHAR(255)
)
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"azure synapse"}}'
;
Copy

ご覧の通り、ほとんどの構造は変わりません。たとえば、データ型を変換しなければならない場合があります。

Azure SynapseストアドプロシージャからSnowflake SQL に埋め込まれた JavaScript へ

SnowConvert は、Azure Synapseストアドプロシージャを取得し、Snowflake SQL に埋め込み JavaScript に変換します。Azure Synapseの CREATE PROCEDURE はSnowflakeの CREATE OR REPLACE PROCEDURE に置き換えられます。JavaScript はスクリプト言語として呼び出され、内部ステートメントはすべて JavaScript に変換されます。

サンプルコード

Azure Synapseの基本ストアドプロシージャ:

 CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO;
Copy

Snowflake SQL 出力コード、埋め込み JavaScript:

 -- Additional Params: -t JavaScript
CREATE OR REPLACE PROCEDURE SelectAllCustomers ()
RETURNS STRING
LANGUAGE JAVASCRIPT
COMMENT = '{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"transact"}}'
EXECUTE AS CALLER
AS
$$
   // REGION SnowConvert Helpers Code
   // END REGION

EXEC(`SELECT
   *
FROM
   Customers`);
$$;

!!!RESOLVE EWI!!! /*** SSC-EWI-0040 - THE STATEMENT IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
;
Copy
  • JavaScript コードを作成するとき、プロシージャのコンテンツを簡単に変換するために必要な_helper_というコードが追加されます。

  • 変換されたコードで何が起きているのかを知るために、関連するコードとともに警告が表示されることが期待できます。(問題とトラブルシューティング を参照)

SnowConvert 用語集

これらのコード変換のマジックに没頭する前に、ここで用語/定義のいくつかを紹介し、さまざまなドキュメントでこれらが使用されるときにその意味が分かるようにしておきます。

  • SQL (構造化クエリ言語): 大半の現代的なデータベースアーキテクチャーにおけるデータの保存、操作、検索のための標準言語。

  • SnowConvert: Azure SynapseファイルをSnowflakeクラウドデータプラットフォームに安全かつ自動的に変換するソフトウェア。

  • 変換ルール または 変換ルール: SnowConvert がソースコードの一部を予想されるターゲットコードに変換できるようにするルール。

  • 解析: 解析または構文解析は、 SnowConvert がソースコードを理解し、変換ルールを実行するために必要な内部データ構造を構築するために行われる初期処理です。

次のページでは、 SnowConvert for SQL Serverでどのような変換が可能かについて詳しくご紹介します。始める準備ができたら、このドキュメントの はじめるにあたり ページに移動します。