Microsoft SQL Server Transact-SQLからVerticaへの変換
アプリケーション変換ツールIspirer MnMTKはSQL Server T-SQLからVerticaへの変換をサポートしています。
なぜIspirer MnMTKなのか
データベース・アプリケーション移行ツールIspirer MnMTKは、様々な個別のビジネス要件に応えることができる費用対効果の高い製品です。私たちの柔軟性の高いツールは絶えず進化しています。それによる、Microsoft SQL Server T-SQLからVerticaへの移行はほぼ99%の自動化になります。IspirerはMicrosoft SQL Server T-SQLからVerticaへの移行における、ツールライセンスか移行サービスをご提供します。
主な利点:
- 全般的なサポート:私たちのテクニカルチームは絶大経験のおかげで、最も複雑なタスクの解決策を見つけることをお約束します
- 迅速なカスタマイズ:修正、カスタム変換、最適化(ほとんどの要件は 1~2 日で対応)
- 検討段階での共同作業:お客様の検討期間中に変換のデモをお見せすることができます
- 柔軟な価格設定:幅広いオプションの提供
- 最適化された変換:インテリジェントで保守し易いコードを生成します。変換後特別なIspirerのミドルウェア等は必要ありません
Ispirer移行ソリューションMicrosoft T-SQLからVerticaへ リクエスト
変換機能
Ispirer MnMTKはMicrosoft SQL Serverのトリガ、プロシージャおよびファンクションをVerticaのJavaスカラ関数に変換することができます。ツールは、Transact-SQL(T-SQL)要素ごとにいくつかのファイルを作成します。
T-SQLファンクションまたはプロシージャから以下のファイルが生成されます:
- ファンクションクラスを含むファイル
- ファンクションクラスに関するメタデータを提供するファクトリクラスを含むファイル
SQL Serverプロシージャの移行
ソースSQL Serverプロシージャ:
CREATE PROCEDURE basic_procedure @j INT AS BEGIN SET @j=10 END GO
User Defined Scalar Functions (UDSFs)を含むJavaコード:
import com.vertica.sdk.*; public class BasicProcedureFactory extends ScalarFunctionFactory { @Override public void getPrototype(ServerInterface srvInterface, ColumnTypes argTypes, ColumnTypes returnType) { RETURN TYPE.addInt(); } @Override public ScalarFunction createScalarFunction (ServerInterface srvInterface) { RETURN NEW BasicProcedure(); } public class BasicProcedure extends ScalarFunction { @Override public void processBlock(ServerInterface srvInterface, BlockReader argReader, BlockWriter resWriter) throws UdfException, DestroyInvocation { do { INTEGER j=NULL; j=10; resWriter.setLong(1); }while(argReader.NEXT()); } } }
BasicProcedureFactory.javaをクラスファイルにコンパイルし、Java UDF JARライブラリに含みます。開発システムとしてVerticaノードを使用している場合は、BasicProcedureFactory.javaファイルをホスト上の別の場所にコピーするか、ルート権限を持っている場合はコンパイルします。
ソースSQL Serverプロシージャ:
CREATE PROCEDURE sp_select AS BEGIN DECLARE @customerID INT, @CityCount INT SELECT @CustomerID=CustomerID, @CityCount = COUNT(City) FROM customer GROUP BY customerID; END GO
Javaコード:
import java.SQL.*; import java.util.Properties; import com.vertica.sdk.*; public class SpSelect extends ScalarFunction { @Override public void processBlock(ServerInterface srvInterface, BlockReader argReader, BlockWriter resWriter) throws UdfException, DestroyInvocation { Properties mProp=NEW Properties(); Connection mConn = DriverManager.getConnection ("jdbc:default:connection",mProp); mConn.setAutoCommit(FALSE); INTEGER ErrorCode = -1; String SqlState = ""; do { INTEGER CustomerID=NULL; INTEGER CityCount=NULL; try (PreparedStatement pstmt=mConn.prepareStatement ("SELECT CustomerID,COUNT(City) FROM customer GROUP BY customerID");) { try( ResultSet s = pstmt.executeQuery();) { IF(rs.NEXT()) { CustomerID = rs.getInt(1); CityCount = rs.getInt(2); } }
詳細はお問い合わせください。
|