Canonical は、Azure 上で稼働する Ubuntu 上の SQL Server について Microsoft と共同サポートを提供しています。一方、Amazon は、現在オープンソースとなっている Babelfish 互換性拡張機能の一般提供により、ユーザーを PostgreSQL へと誘導しています。
SQL Server for Linux は 5 年以上前に導入され、一般公開されてから 4 年が経過しているため、もはや目新しいものではありません。
2018年、MicrosoftのAzure Data担当ゼネラルマネージャーは、RとPythonが組み込まれたLinux版SQL Serverを「これまでで最も成功した[SQL]サーバー製品」と呼びました。Microsoftは、「SQL ServerのコアデータベースエンジンはLinuxでもWindowsと同じです」と述べていますが、マージレプリケーション、FileStream、Stretch DB(Azureへのデータの動的拡張)、データベースミラーリング、SQL Server Agent、Analysis Services、Reporting Services、Data Quality Servicesなどの追加機能など、一部の機能が欠けていると述べています。
ただし、Linux には、Kubernetes で Linux コンテナーを使用できる、インフラストラクチャの残りの部分が Linux である場合に一貫性がある、一般的にライセンス コストが低いなどの利点もあります (ただし、SQL Server 自体のコストは同じです)。
パフォーマンス? 類似のハードウェアでパフォーマンスを比較する試みがなされましたが、一般的に違いは劇的ではないという結論に達しました。
Canonicalは、Azure向けにUbuntu Pro 20.04または18.04(いずれもLTSエディション)のインスタンスをSQL Server 2017または2019とともに提供開始しました。Microsoftとの共同サポート、最大10年間のメンテナンスアップデート、FedRAMP、HIPAA、PCIなどの標準への準拠が提供されます。ユーザーは以前からAzureマーケットプレイスでUbuntu版SQL Serverを見つけることができましたが、これらはMicrosoftのイメージであり、自動セキュリティアップデートとカーネルライブパッチを備えた強化された構成であるCanonicalのUbuntu Proではありません。Canonicalはこれを「再起動の必要がなく、カーネルパッチが即座に配信される」と説明しています。
新しいイメージでは、XFSファイルシステムと永続メモリ(PMEM)(利用可能な場合)も利用できます。SQL ServerのWeb、Standard、Enterpriseの各エディション用のイメージが用意されています。
Babelfish は PostgreSQL を SQL Server のデータやアプリケーションとある程度互換性を持たせます
SQL Server をまったく使用しないというのはどうでしょうか? これは、SQL Server の SQL フレーバーである T-SQL や、SQL Server のプロトコルである TDS (表形式データ ストリーム) を使用するアプリケーションを使用している場合でも、1 つの選択肢となる可能性があります。
Amazon は、SQL Server 用に構築されたデータベースおよびアプリケーションとの互換性を実現する Aurora PostgreSQL 向け Babelfish の一般提供を発表しました。
完全な互換性があるでしょうか?残念ながら、そうではありません。このページでは制限事項について説明し、「Babelfish は T-SQL を完全にサポートしていない」ことを明確にしています。
Amazonは、サポートされていないGROUP BY句、JSONサポート、XMLサポート、Geography型、全文検索といった機能の不足を補うため、T-SQLとPostgreSQLを組み合わせることをユーザーに推奨しています。サポートされていない、あるいは部分的にしかサポートされていないT-SQL関数のリストは長大ですが、SQL Serverは大規模な製品であり、多くのユーザーはその機能のごく一部しか利用していません。
AWS による Babelfish の商用提供は Aurora リレーショナル データベース サービスのみを対象としていますが、同社は Babelfish のコードを Apache 2.0 ライセンスで、また PostgreSQL コードについては PostgreSQL ライセンスで GitHub にも公開しています。
- Javaの奇妙な性質によってITの神が偽りの偶像だと暴露される ― 彼がサーバーに手を出すまでは
- Azure Purviewはプレビュー版ではなくなりました。マイクロソフトは機密データを盗聴する準備ができています。
- Google、分散型RDBMS SpannerのJSONサポートで追いつく
- AWSはS3ストレージクラウドのソフトウェアのアップグレードを開始した。
Postgres企業EDBのCTO、マーク・リンスター氏は、Babelfishプロジェクトは「AWSによる戦略的かつ重要な動きです。これは、世界がレガシーデータベースからPostgresへと移行しつつあるという長年の私たちの信念を裏付けるものです」と述べました。さらに、AWSがオープンソースのPostgresプロジェクトに貢献していることを嬉しく思います、と付け加えました。
Babelfish の難点の一つは、PostgreSQL のフォークが必要になることです。ドキュメントには、「Babelfish のフックを PostgreSQL に組み込むための作業が進行中です。その間、拡張機能とは別に、すべてのフックが組み込まれた別のコードツリーが利用可能になります」と記載されています。
これは、ユーザーが既存のPostgreSQL環境にBabelfish拡張機能を単純に追加できないことを意味します。オープンソースのBabelfishを使用するユーザーは、Babelfish向けに修正されたPostgresをビルドしてインストールする必要があります。Ubuntu 20.04またはAmazon Linux 2向けの手順が提供されています。ただし、この方法を採用することで、SQL Serverのライセンス費用とAurora PostgreSQLの運用コストの両方から解放されます。
SQL Serverのライセンスは高額であり、この点とオープンソースの他の利点を組み合わせることで、Babelfishは魅力的な選択肢となります。既存のアプリケーションの移植に伴う潜在的な労力と不確実性、そしてPostgreSQLのフォーク版の使用は、Babelfishにとってマイナス要因となります。ネイティブPostgreSQLへの移植は労力はかかりますが、長期的にはより大きなメリットをもたらす可能性があります。®