在 Amazon Redshift Spectrum 為查詢建立資料檔案 - Amazon Redshift

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

在 Amazon Redshift Spectrum 為查詢建立資料檔案

您在 Amazon Redshift Spectrum 中用於查詢的資料檔案,通常與您用於其他應用程式的檔案相同類型。例如,Amazon Athena、亞馬遜 EMR 和亞馬 Amazon QuickSight 使用相同類型的文件。您可以直接從 Amazon S3 查詢原始格式的資料。若要執行此作業,資料檔案的格式必須是 Redshift Spectrum 支援的格式,且位於您叢集可存取的 Amazon S3 儲存儲體中。

包含資料檔案和 Amazon Redshift 叢集的 Amazon S3 儲存貯體必須位於同一AWS區域。如需有關支援的AWS區域,請參閲Amazon Redshift Spectrum 區域

Redshift 頻譜的數據格式

Redshift Spectrum 支援下列結構化與半結構化的資料格式。

檔案格式 直欄式 支援平行讀取 分割單位
Parquet 資料列群組
ORC Stripe
RCFile 資料列群組
TextFile
SequenceFile 資料列或區塊
RegexSerde
OpenCSV
AVRO 區塊
Ion N/A
JSON N/A

在上表中,標題指出下列項目:

  • 直欄式— 檔案格式是否物理上以資料欄導向的結構存放資料,而不是以資料列導向的結構。

  • 支援平行讀取— 檔案格式是否支援讀取檔案內的個別區塊。讀取個別區塊可以跨多個獨立 Redshift Spectrum 請求分配檔案的處理,而不必在單一請求中讀取完整檔案。

  • 分割單位— 對於可 parallel 讀取的檔案格式,分割單位是單一 Redshift Spectrum 可處理的最小資料區塊。

    注意

    文字檔案中的時間戳記值格式必須為 yyyy-MM-dd HH:mm:ss.SSSSSS,如以下的時間戳記值所示:2017-05-01 11:30:59.000000

    我們建議使用例如 Apache Parquet 的直欄式儲存檔案格式。使用直欄式儲存檔案格式,您只需選擇所需的資料欄,即可最大幅度地減少 Amazon S3 中的資料傳輸。

Redshift 頻譜的壓縮類型

為減少儲存空間,提高效能並降低成本,我們強烈建議您壓縮您的資料檔案。Redshift Spectrum 會根據副檔名識別檔案壓縮類型。

Redshift Spectrum 支援下列壓縮類型和副檔名:

壓縮演算法 副檔名 支援平行讀取
Gzip .gz
Bzip2 .bz2
Snappy .snappy

您可以套用不同層級的壓縮。最常見的是,您可以壓縮整個檔案或壓縮檔案中的個別區塊。在文件級別壓縮列式不會帶來性能優勢。

若要使 Redshift Spectrum 能夠 parallel 讀取檔案,下列條件必須成立:

  • 檔案格式支援平行讀取。

  • 檔案層級壓縮 (如果有的話) 支援平行讀取。

檔案中的個別分割單位是否使用可 parallel 讀取的壓縮算法進行壓縮並不重要,因為每個分割單位都是由單一 Redshift Spectrum 請求處理。此情況的範例是 Snappy 壓縮的 Parquet 檔案。Parquet 檔案中的個別資料列群組會使用 Snappy 進行壓縮,但檔案的頂層結構仍會保持未壓縮狀態。在此情況下,可以 parallel 讀取檔案,因為每個 Redshift Spectrum 請求都可以從 Amazon S3 讀取和處理個別資料列組。

Redshift Spectrum 的加密

Redshift Spectrum 可透明的解密使用以下加密選項加密的資料檔案:

  • 使用由 Amazon S3 管理的 AES-256 加密密鑰的服務器端加密 (SSE-S3)。

  • 使用由管理的密鑰進行的伺服器端加密AWS Key Management Service(小時公裏)。

Redshift Spectrum 不支援 Amazon S3 用户端加密。如需伺服器端加密的詳細資訊,請參「」使用伺服器端加密保護資料中的Amazon Storage Service 用户指南

Amazon Redshift 使用大量 parallel 處理 (MPP) 來達成在大量資料上操作複雜查詢的快速執行。Redshift Spectrum 擴展了相同的原則來查詢外部資料,並依需要使用多個 Redshift Spectrum 執行個體來掃描檔案。將檔案放在每個資料表的單獨資料夾中。

您可以透過執行下列動作來最佳化資料以進行平行處理:

  • 如果您的檔案格式或壓縮不支援平行讀取,請將大型檔案分成許多較小的檔案。建議您使用介於 64 MB 與 1 GB 之間的檔案大小。

  • 將所有檔案維持相同大小。如果某些檔案比其他檔案大得多,則 Redshift Spectrum 無法平均分配工作負載。