使用 Amazon Redshift Spectrum 查詢外部資料 - Amazon Redshift

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

使用 Amazon Redshift Spectrum 查詢外部資料

使用 Amazon Redshift Spectrum,可以有效率地查詢裡的檔案並摘取結構化與半結構化的資 Amazon S3,無需將資 Amazon Redshift 載入資料表。Redshift Spectrum 採用了大量的平行處理,以便非常快速的運行大型資料集。大部分的處理發生在 Redshift Spectrum 層,而大部分資料則保留在 Amazon S3 中。多個叢集可以同時查詢 Amazon S3 中的相同資料集,無需為每個叢集複製資料副本。

Amazon Redshift Spectrum 概述

Amazon Redshift Spectrum 位於獨立於您叢集之外的專屬 Amazon Redshift 伺服器上。Redshift Spectrum 會推送許多 (例如述詞篩選和彙整等) 運算密集的工作到 Redshift Spectrum 層。因此,與其他查詢相比,Redshift Spectrum 查詢使用的叢集處理容量要低得多。Redshift Spectrum 也能聰明的擴展。根據您的查詢需求,Redshift Spectrum 可能會使用數千個執行個體來運用大規模平行處理。

您可以透過定義檔案結構,並將其做為資料表註冊到外部資料目錄中來建立 Redshift Spectrum 資料表。外部數據目錄可以是AWS Glue、隨 Amazon Athena 附帶的資料目錄,或您自己的 Apache Hive 中繼存放區。您可以使用資料定義語言 (DDL) 命令,或使用連接到外部資料目錄的任何其他工具,從 Amazon Redshift 建立和管理外部資料表。您的任何 Amazon Redshift 叢集都可以立即變更外部資料目錄。

您也可以選擇在一個或多個欄上對外部資料表進行分割。將分割區定義為外部資料表的一部分可以提高效能。這種改進的出現,是因為 Amazon Redshift 查詢優化工具會刪除不包含查詢資料的分割區。

在您定義 Redshift Spectrum 資料表後,您可以像任何其他 Amazon Redshift 資料表一樣查詢和聯結資料表。Redshift Spectrum 不支援外部資料表上的更新操作。您可以將 Redshift Spectrum 資料表新增到多個 Amazon Redshift 叢集,並從相同AWS區域。當您更新 Amazon S3 資料檔案時,資料可立即從任何 Amazon Redshift 叢集進行查詢。

您存取的 AWS Glue Data Catalog 可能會加密,以增加安全性。如果AWS Glue目錄已加密,則需要AWS Key Management Service(AWS KMS) 金鑰AWS Glue存取AWS Glue目錄。AWS Glue目錄加密並非在所有AWS地區。如需支援的AWS區域,請參閲的安全性、存取與加密AWS Glue中的AWS Glue開發人員指南如需有關 的詳細資訊AWS Glue數據目錄加密,請參閲加密AWS Glue資料目錄中的AWS Glue開發人員指南

注意

您無法使用與標準 Amazon Redshift 資料表相同的資源查看 Redshift Spectrum 資料表的詳細資訊,例如PG_TABLE_DEFSTV_TBL_PERM、PG_Class 或信息架構。如果您的商業智慧或分析工具無法識別 Redshift Spectrum 外部資料表,請將您的應用程式設定為查詢 SVV_EXTERNAL_TABLESSVV_EXTERNAL_COLUMNS

Amazon Redshift Spectrum 區域

Redshift 頻譜可在AWS 區域,Amazon Redshift 可用,除非在特定地區的文檔中另有説明。適用於AWS 區域可用性,請參閲服務端點中的Amazon Web Services 一般參考

Amazon Redshift Spectrum 注意事項

當您使用 Amazon Redshift Spectrum 時,請注意以下考量:

  • Amazon Redshift 叢集和 Amazon S3 儲存貯體必須位於同一AWS區域。

  • 如果您的叢集使用增強型 VPC 路由,則需要執行任何其他組態步驟。如需詳細資訊,請參閱使用 Amazon Redshift Spectrum 搭配增強型 VPC 路由

  • Redshift Spectrum 支援 Amazon S3 存取點別名。如需詳細資訊,請參閱「」為接入點使用存儲桶樣式別名中的Amazon Simple Storage Service 使用者指南。但是,Redshift 頻譜不支持帶有 Amazon S3 接入點別名的 VPC。如需詳細資訊,請參閱「」搭配增強型 VPC 路由使用 Redshift Spectrum中的Amazon Redshift 叢集管理指南

  • 您不能在外部資料表上執行更新或刪除操作。若要在指定的結構描述中建立新外部資料表,您可以使用 CREATE EXTERNAL TABLE。如需 CREATE EXTERNAL TABLE 的詳細資訊,請參閱 CREATE EXTERNAL TABLE。若要將 SELECT 查詢結果插入外部目錄上的現有外部資料表,您可以使用 INSERT (外部資料表)。如需 INSERT (外部資料表) 的詳細資訊,請參閱 INSERT (外部資料表)

  • 除非您正在使用AWS Glue Data Catalog已啟用AWSLake Formation um 中繼存放區域中,您無法控制外部資料表上的使用者許可。但是,您可以在外部結構描述上授予和撤銷許可。如需更多有關使用AWSLake Folumn,請參見使用 Redshift SpectrumAWS Lake Formation

  • 要執行 Redshift Spectrum 查詢,資料庫使用者必須具有在資料庫中建立臨時資料表的許可。下列範例可在資料庫 spectrumdb 上授予臨時許可至 spectrumusers 使用者群組。

    grant temp on database spectrumdb to group spectrumusers;

    如需詳細資訊,請參閱 GRANT

  • 當使用 Athena 數據目錄或AWS Glue作為元數據存儲的資料目錄,請參配額和限制中的Amazon Redshift 叢集管理指南

  • Redshift Spectrum 不支援使用 Kerberos 的 Amazon EMR。