日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Babelfish for RDS PostgreSQL

更新時間: 2024-12-02 16:19:46

當(dāng)您希望在單一的數(shù)據(jù)庫實(shí)例中同時使用SQL Server和PostgreSQL能力,或計劃將現(xiàn)有應(yīng)用從SQL Server遷移到更具成本效益的PostgreSQL時,Babelfish for RDS PostgreSQL實(shí)現(xiàn)了對T-SQL語句和TDS協(xié)議的支持。本文從產(chǎn)品特性、架構(gòu)、適用場景以及使用方法等維度介紹Babelfish for RDS PostgreSQL實(shí)例,幫助您快速了解并上手使用。

Babelfish是什么

基于Babelfish for PostgreSQL的開源項(xiàng)目,阿里云RDS PostgreSQL實(shí)例購買時開啟Babelfish選項(xiàng)后,可以同時獲得Microsoft SQL Server和PostgreSQL兩種數(shù)據(jù)庫引擎數(shù)據(jù)查詢和處理的能力,從而使RDS PostgreSQL具備解析執(zhí)行SQL Server T-SQL語句的能力。

Babelfish支持SQL Server Tabular Data Stream (TDS) wire protocolT-SQL(Microsoft SQL Server 查詢語言),因此您無需切換數(shù)據(jù)庫驅(qū)動程序或重新編寫SQL,只需要在適配少量代碼的情況下,將應(yīng)用程序的數(shù)據(jù)庫從SQL Server遷移至開啟了Babelfish的阿里云RDS PostgreSQL實(shí)例上。

支持的T-SQL內(nèi)置函數(shù)請參見Babelfish支持的T-SQL內(nèi)置函數(shù)

適用場景

  • 如果您期望節(jié)省SQL Server的License費(fèi)用支出。

  • 如果您計劃將SQL Server數(shù)據(jù)庫切換為PostgreSQL,又不希望投入大量的時間和精力重寫應(yīng)用程序。

  • 如果您期望使用PostgreSQL強(qiáng)大的開源插件庫能力,例如時空定位插件PostGIS,時序插件TimescaleDB等。

  • 如果您期望一份成本享受兩種數(shù)據(jù)庫引擎的數(shù)據(jù)處理能力。

Babelfish for RDS PostgreSQL架構(gòu)圖

image

架構(gòu)說明:

  • Babelfish for RDS PostgreSQL實(shí)例具備兩個TCP端口,分別監(jiān)聽來自SQL Server和PostgreSQL客戶端的SQL請求。

    • TDS Listener:接收SQL Server協(xié)議端口(TDS)的SQL請求,默認(rèn)端口號為1433。

      說明

      Babelfish支持TDS協(xié)議7.1及更高版本,即支持Microsoft SQL Server 2000及以上版本。

    • PostgreSQL Listener:接收PostgreSQL協(xié)議端口的SQL請求,默認(rèn)端口號為5432。

      說明

      當(dāng)前支持RDS PostgreSQL 15。

  • Babelfish for RDS PostgreSQL實(shí)例接收來自TDS Listener端口的SQL請求時,該請求被轉(zhuǎn)發(fā)到T-SQL解析器,將SQL Server的T-SQL轉(zhuǎn)換為PostgreSQL可識別的執(zhí)行計劃。

  • Babelfish for RDS PostgreSQL實(shí)例接收來自PostgreSQL Listener端口的SQL請求時,該請求被轉(zhuǎn)發(fā)到PostgreSQL解析器,生成執(zhí)行計劃。

  • PostgreSQL內(nèi)部的SQL執(zhí)行器統(tǒng)一處理,執(zhí)行所有計劃。

開啟了Babelfish功能的RDS PostgreSQL實(shí)例,使您同時具備了兩個數(shù)據(jù)庫引擎(PostgreSQL和SQL Server)的能力,既可以處理來自SQL Server的請求,又可以處理來自PostgreSQL的請求,在降低成本的同時獲得更多的能力支持。

遷移模式簡介

Babelfish for RDS PostgreSQL實(shí)例會預(yù)置一個名為babelfish_db的PostgreSQL數(shù)據(jù)庫,所有遷移的SQL Server對象和結(jié)構(gòu)都會放置在該數(shù)據(jù)庫下。

說明

如果您通過TDS端口連接實(shí)例,babelfish_db數(shù)據(jù)庫不可見。

您可以選擇Single-DB模式(單數(shù)據(jù)庫模式)或Multi-DB模式(多數(shù)據(jù)庫模式)。不同模式下,babelfish_db內(nèi)的SQL Server數(shù)據(jù)庫模式及名稱不同。

Single-DB模式

  • 架構(gòu)圖single-db

  • 說明:該模式下,babelfish_db數(shù)據(jù)庫中用戶數(shù)據(jù)庫的Schema名稱與SQL Server中的相同。

    例如:通過TDS端口創(chuàng)建數(shù)據(jù)庫DB_A,然后在DB_A下創(chuàng)建schema_A。

    • 在PostgreSQL的babelfish_db數(shù)據(jù)庫中,Schema名稱為:dbo和schema_A。

    • 在SQL Server的DB_A數(shù)據(jù)庫中,Schema名稱為:dbo和schema_A。

Multi-DB模式

  • 架構(gòu)圖Multi-DB

  • 說明:該模式下,在PostgreSQL中,用戶數(shù)據(jù)庫的schema名稱為dbname_schemaname。在SQL Server中,Schema名稱保持不變。

    例如:通過TDS端口創(chuàng)建數(shù)據(jù)庫DB_A,然后在DB_A下創(chuàng)建schema_A。

    • 在PostgreSQL的babelfish_db數(shù)據(jù)庫中,Schema名稱為:DB_A_dbo和DB_A_schema_A。

    • 在SQL Server的DB_A數(shù)據(jù)庫中,Schema名稱為:dbo和schema_A。

計費(fèi)

Babelfish for RDS PostgreSQL實(shí)例與通用RDS PostgreSQL實(shí)例售價相同,不會收取任何額外費(fèi)用,價格與所選地域、規(guī)格、存儲等配置相關(guān),請前往購買頁面查看。

注意事項(xiàng)

  • 當(dāng)前僅支持在購買實(shí)例時開通Babelfish,且實(shí)例需滿足以下條件:

    說明

    暫不支持集群系列實(shí)例。

    • 實(shí)例大版本:RDS PostgreSQL 15。

    • 實(shí)例產(chǎn)品類型為標(biāo)準(zhǔn)版。

  • 已購買的RDS PostgreSQL實(shí)例,暫不支持開通Babelfish。

  • 開通Babelfish后,暫不支持關(guān)閉。

  • 實(shí)例創(chuàng)建成功后,將會初始化創(chuàng)建babelfish_db數(shù)據(jù)庫,該數(shù)據(jù)庫為Babelfish實(shí)例的關(guān)鍵數(shù)據(jù)庫,請勿刪除,否則實(shí)例將不可用。

使用方法

上一篇: 變更實(shí)例彈性策略 下一篇: 創(chuàng)建Babelfish for RDS PostgreSQL實(shí)例
阿里云首頁 云數(shù)據(jù)庫 RDS 相關(guān)技術(shù)圈