最近 Amazonが「BabelfishforPostgreSQL」のソースコードをリリースすることを決定したというニュースが報じられました。 Microsoft SQLServerデータベースの特定の機能を実装したPostgreSQLデータベースの拡張を提案します。
プロジェクトの主な目標は、PostgreSQLを実行しているサーバー上でSQLServer用に作成されたアプリケーションを実行する機能を提供することです。 プロジェクトコードは、Apache2.0ライセンスとPostgreSQLライセンスの下で開かれています。
Babelfishに慣れていない人は、これを知っておく必要があります クライアントをSQLServer、T-SQL、およびSQLServer固有のクエリ言語拡張機能に接続するために使用されるネットワークプロトコルをサポートします。 コードを変更したり、最小限の変更を加えたり、DBMSのドライバーを置き換えたりすることなく、実行中のアプリケーションをMicrosoft SQLServerからPostgreSQLに変換できます。 アプリケーションの場合、Babelfishは通常のSQLサーバーのように見えます。 このプロジェクトはすでにAmazonAuroraで使用されています。
本日、AuroraPostgreSQLでBabelfishを利用できるようにします。 Babelfishを使用すると、Amazon Aurora PostgreSQL-CompatibleEditionがSQLServer接続プロトコルを理解できるようになります。 これにより、アプリケーションをSQL ServerからPostgreSQLに、より安く、より速く、そのような変更に伴うリスクを抑えて移行できます。
プロジェクトは Babelfishはオープン開発モデルに従います これにより、コミュニティの貢献者は変化を起こし、開発に影響を与えることができます。 ユーザーの場合、 Babelfishを使用すると、SQLServerを使用するための多額の使用料を回避できます。、ライセンス制限をバイパスし、プロプライエタリ製品のメンテナンスポリシーの変更(特典のキャンセル、プラットフォームサポートの終了、価格の上昇)に依存しません。
プロジェクトには、PostgreSQL拡張機能のセットが含まれています、PostgreSQLパッチのセット、およびコンパスツールキット:
拡張機能は、SQL Serverからの移行に必要な追加の構文、データ型、および関数に対するPostgreSQLサポートを提供します。 合計4つの拡張機能が提案されています。
- babelfishpg_tsql: これは、手続き型プログラミング、ローカル変数のサポート、および文字列、日付、数式を処理するための高度な関数でSQLを拡張するT-SQL(Transact-SQL)言語の実装を実行するための拡張機能です。 セーブポイント、ストアドプロシージャ、ネストされたトランザクションなど、要求されたT-SQL関数のほとんどが実装されています。 ただし、構文と関数の重要な部分は未実現のままです(原則として、これらは実際のアプリケーションではめったに使用されない特性であり、互換性テーブルです)。 たとえば、「ADD SIGNATURE」、「CREATE AGGREGATE」、「CREATE / ALTER / DROP APPLICATION ROLE | ASSEMBLY | ASYMMETRIC KEY」、「BEGIN CONVERSATION TIME」、「END / MOVECONVERSATION」などの構成要素です。 それらはまだ利用できません。
- babelfishpg_tds: DBMSとクライアント間のネットワーク接続のためにSQLServerで使用されるTDS(表形式データストリーム)プロトコルの実装の拡張。 TDSプロトコルバージョン7.1以降がサポートされています。
- babelfishpg_common: 特定のSQLServerデータ型を実装するための拡張機能。
babelfishpg_money: FixedDecimal拡張コードに基づくマネータイプの実装です。
パッチには、Babelfish拡張機能に追加機能を提供するために必要なPostgreSQLエンジンへの変更が含まれています。 現在、PostgreSQL開発者と協力して、準備されたパッチをメインのPostgreSQLコンポジションに含める作業が行われています。 PostgreSQL13用に準備されたパッチ。
コンパスユーティリティは、Babelfishとの互換性のためにT-SQLDDLスクリプトとSQLコードを解析するように設計されています。 出力では、アプリケーションの起動に必要な機能がBabelfishでまだサポートされていないというレポートが生成されます。
MS SQLServerに接続するための次のクライアントライブラリが正式にサポートされています。
- OLEDB / MSOLEDBSQLプロバイダー
- OLEDB / SQLOLEDBドライバー
- Ado.NETエンティティフレームワーク
- SQL Server11.0ネイティブクライアント
- ODBC(オープンデータベースコネクティビティ)
JDBC(Javaデータベースコネクティビティ)
最後に あなたがそれについてもっと知りたいのなら、メモの詳細を確認できます 次のリンクで。 ソースコードを見ることに興味がある人はそうすることができます このリンクから