使用 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 伺服器上。Amazon Redshift 會推送許多運算密集型任務 (例如述詞篩選和彙整) 到 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 不支援外部資料表的更新操作。您可以將紅移頻譜表新增到多個 Amazon Redshift 叢集,並從同一區域中的任何叢集查詢 Amazon S3 上的相同 AWS 資料。當您更新 Amazon S3 資料檔案時,資料可立即從任何 Amazon Redshift 叢集進行查詢。

您存取的 AWS Glue 資料目錄可能會加密以提高安全性。如果目 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 資料表 (例如、、PG_ CLASS 或資訊結構描述) 相同的資源來檢視紅移頻譜表的詳細資料。PG_TABLE_DEF STV_TBL_PERM如果您的商業智慧或分析工具無法識別 Redshift Spectrum 外部資料表,請將您的應用程式設定為查詢 SVV_EXTERNAL_TABLESSVV_EXTERNAL_COLUMNS

Amazon Redshift Spectrum 區域

除非區域特定文件 AWS 區域 中另有說明,否則可在提供 Amazon Redshift 的地方使用紅移頻譜。如需商業區域的 AWS 區域 可Redshift API 參閱. Amazon Web Services 一般參考

Amazon Redshift Spectrum 考量事項

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

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

  • Redshift 頻譜不支援已佈建叢集的增強型VPC路由功能。若要存取您的 Amazon S3 資料,您可能需要執行額外的設定步驟。如需詳細資訊,請參閱 Amazon Redshift 管理指南中的紅移頻譜和增強型VPC路由

  • Redshift Spectrum 支援 Amazon S3 存取點別名。如需詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的為您的存取點使用儲存貯體型別名。不過,Redshift 頻譜不支援 VPC Amazon S3 存取點別名。如需詳細資訊,請參閱 Amazon Redshift 管理指南中的紅移頻譜和增強型VPC路由

  • 您不能在外部資料表上執行更新或刪除操作。要在指定的模式中創建新的外部表,可以使用CREATEEXTERNALTABLE。如需有關的更多資訊 CREATE EXTERNALTABLE,請參閱CREATE EXTERNAL TABLE。若要將SELECT查詢結果插入外部目錄上現有的外部資料表,您可以使用 INSERT (外部資料表)。若要取得有關 INSERT (外部表格) 的更多資訊,請參閱INSERT(外部表格)

  • 除非您使用為 AWS Glue Data Catalog AWS Lake Formation 啟用的功能,否則您無法控制外部資料表的使用者權限。但是,您可以在外部結構描述上授予和撤銷許可。若要取得有關使用 AWS Lake Formation 的更多資訊,請參閱使用 Redshift 光譜 AWS Lake Formation

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

    grant temp on database spectrumdb to group spectrumusers;

    如需詳細資訊,請參閱GRANT

  • 使用 Athena 資料目錄或資 AWS Glue 料目錄做為中繼資料存放區時,請參閱 Amazon Redshift 管理指南中的配額和限制

  • Redshift 頻譜不支持 Amazon EMR 與 Kerberos。