使用 Amazon Redshift 存取聯合資料時的注意事項 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon Redshift 存取聯合資料時的注意事項

某些 Amazon Redshift 功能不支援存取聯合資料。您可以在下面找到相關的限制和考量。

以下是將聯合查詢與 Amazon Redshift 搭配使用時的限制及考量:

  • 聯合查詢支援讀取外部資料來源。您無法在外部資料來源中寫入或建立資料庫物件。

  • 在某些情況下,您可能會在不同的 AWS 區域存取 Amazon RDS 或 Aurora 資料庫叢集資料庫,而不是 Amazon Redshift。在這些情況下,跨 AWS 區域傳輸資料通常會產生網路延遲和帳單費用。我們建議您將 Aurora 全球資料庫與 Amazon Redshift 叢集位於相同 AWS 區域的本機端點搭配使用。Aurora 全域資料庫使用專用的基礎設施來進行跨越任意兩個 AWS 區域的儲存體類型複寫,其延遲一般低於 1 秒。

  • 請考慮存取 Amazon RDS 或 Aurora 資料庫叢集的成本。例如,使用此功能存取 Aurora 資料庫叢集時,Aurora 資料庫叢集費用會根據 IOPS 計算。

  • 聯合查詢無法啟用從 RDS 或 Aurora 資料庫叢集存取 Amazon Redshift 的功能。

  • 聯合查詢僅適用於同時提供 Amazon Redshift 和 Amazon RDS 或 Aurora 資料庫叢集的 AWS 區域。

  • 聯合查詢目前不支援 ALTER SCHEMA。若要變更結構描述,請使用 DROP 再使用 CREATE EXTERNAL SCHEMA

  • 聯合查詢不會使用並行擴展。

  • 聯合查詢目前不支援透過 PostgreSQL 外部資料包裝程式存取。

  • 對 RDS MySQL 或 Aurora MySQL 的聯合查詢支援 READ COMMITTED 層級上的交易隔離。

  • 如果未指定,Amazon Redshift 會連線到連接埠 3306 上的 RDS for MySQL 或 Aurora MySQL。在為 MySQL 建立外部結構描述之前,請先確認 MySQL 連接埠號碼。

  • 如果未指定,Amazon Redshift 會連線到連接埠 5432 上的 RDS PostgreSQL 或 Aurora PostgreSQL。在為 PostgreSQL 建立外部結構描述之前,請先確認 PostgreSQL 連接埠號碼。

  • 當從 MySQL 擷取 TIMESTAMP 和 DATE 資料類型時,零值會視為 NULL。

  • 如果使用 Aurora DB 叢集資料庫讀取器端點,可能會發生「無效的快照集」錯誤。這可以透過以下其中一個方法來避免:

    • 使用特定的 Aurora 資料庫叢集執行個體端點 (而非使用 Aurora 資料庫叢集端點)。此方法會針對 PostgreSQL 資料庫的結果使用 REPEATABLE READ 交易隔離。

    • 使用 Aurora 資料庫叢集讀取器端點,並針對工作階段設pg_federation_repeatable_read定為 false。此方法會針對 PostgreSQL 資料庫的結果使用 READ COMMITTED 交易隔離。如需 Aurora 資料庫叢集讀取器端點的詳細資訊,請參閱 Amazon Aurora Aurora 資料庫叢集端點的類型 (英文)。如需 pg_federation_repeatable_read 的資訊,請參閱「pg_federation_repeatable_read」。

以下是針對 PostgreSQL 資料庫使用聯合查詢時交易的考量:

  • 如果查詢由聯合資料表組成,則領導者節點會在遠端資料庫上啟動 READ ONLY REPEATABLE READ 交易。在 Amazon Redshift 交易期間會一直保留此交易。

  • 領導者節點透過呼叫 pg_export_snapshot 來建立遠端資料庫的快照,並對受影響的表進行讀取鎖定。

  • 運算節點會啟動交易,並使用在領導者節點上建立的快照,向遠端資料庫發出查詢。

支援的聯合資料庫版本

Amazon Redshift 外部結構描述可參考外部 RDS PostgreSQL 或 Aurora PostgreSQL 中的資料庫。當其這樣做時,適用下列限制:

  • 建立參考 Aurora 資料庫叢集的外部結構描述時,Aurora PostgreSQL 資料庫必須是 9.6 版或更新版本。

  • 建立參考 Amazon RDS 的外部結構描述時,Amazon RDS PostgreSQL 資料庫的版本必須是 9.6 或更新版本。

Amazon Redshift 外部結構描述可參考外部 RDS MySQL 或 Aurora MySQL 中的資料庫。當其這樣做時,適用下列限制:

  • 建立參考 Aurora 資料庫叢集的外部結構描述時,Aurora MySQL 資料庫必須是 5.6 版或更新版本。

  • 建立參考 Amazon RDS 的外部結構描述時,RDS MySQL 資料庫的版本必須是 5.6 或更新版本。