SQLトランスフォーメーション
SnowflakeでSQLクエリとストアドプロシージャを処理するため、Snowflake Data CloudマッピングでSQLトランスフォーメーションを設定できます。
SQLトランスフォーメーションをマッピングに追加する場合は、[SQL]タブで、データベース接続およびトランスフォーメーションが処理するSQLのタイプを定義します。
SQLトランスフォーメーションでパラメータ化された接続を使用することを選択できます。実行時にパラメータファイルで定義された値を上書きすることもできます。SQLトランスフォーメーションでパラメータ化された接続を使用するには、最初に、有効な接続を使用するマッピングでSQLトランスフォーメーションを作成します。次に、SQLトランスフォーメーションで接続をパラメータ化します。SQLトランスフォーメーションを使用して、SnowflakeでJavaまたはSQLユーザー定義関数(UDF)から読み取りを行うこともできます。
SQLトランスフォーメーションを使用して、次のタイプのSQL文を処理できます。
- ストアドプロシージャ
- Snowflakeでストアドプロシージャとオーバーロードされたストアドプロシージャを呼び出すようにSQLトランスフォーメーションを設定できます。ストアドプロシージャ名では大文字と小文字が区別されます。データベースからストアドプロシージャを選択するか、SQLトランスフォーメーションで呼び出すストアドプロシージャの正確な名前を入力します。SQLトランスフォーメーションを作成する前に、ストアドプロシージャがSnowflakeデータベースに存在することを確認してください。
- 詳細SQLプロパティでSnowflakeデータベース、スキーマ、およびプロシージャ名を指定した場合、エージェントでは最初にストアドプロシージャで指定したプロパティが考慮され、次に詳細ソースプロパティ、次に接続内の追加のJDBC URLパラメータ、最後にソースオブジェクトのメタデータが考慮されます。
- マッピングが開いている状態で新しいストアドプロシージャをデータベースに追加すると、新しいストアドプロシージャは使用可能なストアドプロシージャのリストに表示されません。リストを更新するには、マッピングを閉じてから再度開きます。
- SQLクエリ
- SQLエディタで定義した入力済みクエリを処理するようにSQLトランスフォーメーションを設定できます。SQLトランスフォーメーションで複数のSQLクエリを使用しないでください。
- SQLトランスフォーメーションはクエリを処理し、行を返します。SQLトランスフォーメーションは、基になるデータベースからエラーが発生した場合、またはユーザー構文にエラーがある場合でもエラーを返します。
SQLクエリとストアドプロシージャの詳細については、Data Integrationのドキュメントにある「トランスフォーメーション」を参照してください。
ルールおよびガイドライン
次のような制限付きで、SQLトランスフォーメーションを使用できます。
- •保存されたクエリタイプをSQLトランスフォーメーションで使用することはできません。
- •スキーマオーバーライドを指定して、同じ名前と引数の数を持つ複数のストアドプロシージャが生成された場合、マッピングは失敗します。
- •ストアドプロシージャにUnicode文字が含まれている場合、マッピングは失敗します。
- •ストアドプロシージャからNULLが返されると、ユーザーインターフェイスとセッションログに警告が表示されます。ただし、マッピングは引き続き行を処理します。
- •ランタイム処理では、SQLトランスフォーメーションの次のプロパティが無視されます。
- - 入出力および入力パラメータ
- - 詳細プロパティ
- - 自動コミット
- - トランスフォーメーション範囲
- - エラー時に停止
- •マッピングにSQLトランスフォーメーションが含まれている場合は、キー範囲パーティション化を使用できません。