Apache Spark 的 Amazon Redshift 整合 - Amazon Redshift

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

Apache Spark 的 Amazon Redshift 整合

Apache Spark 是一種分散式處理架構和程式設計模型,可協助您執行機器學習、串流處理或圖形分析。與 Apache Hadoop 類似,Spark 是一種開放原始碼、分散式處理系統,通常用於大數據的工作負載。Spark 具有經過最佳化的有向無環圖 (DAG) 執行引擎,並且會主動快取記憶體中的資料。這可以提高效能,對於某些算法和互動式查詢來說更是如此。

這項整合可為您提供 Spark 連接器,讓您用於建置在 Amazon Redshift 和 Amazon Redshift Serverless 中讀取和寫入資料的 Apache Spark 應用程式。這些應用程式不會影響應用程式效能或資料的交易一致性。這項整合會自動納入到 Amazon EMRAWS Glue,因此您可以立即執行會在資料擷取和轉換管道中存取資料並將資料載入到 Amazon Redshift 的 Apache Spark 任務。

目前,您可以搭配這項整合使用 Spark 3.3.0、3.3.1、3.3.2 和 3.4.0 版。

這項整合會提供下列功能:

  • AWS Identity and Access Management (IAM) 身分驗證。如需詳細資訊,請參閱 Amazon Redshift 中的身分和存取管理

  • 述詞和查詢下推,以提升效能。

  • Amazon Redshift 資料類型。

  • 對 Amazon Redshift 和 Amazon Redshift Serverless 的連線。

使用 Spark 連接器時的考量和限制

  • tempdir URI 會指向 Amazon S3 位置。此臨時目錄不會自動清理,因此可能會增加額外的費用。建議您使用《Amazon Simple Storage Service 使用者指南》中的 Amazon S3 生命週期政策來定義 Amazon S3 儲存貯體的保留規則。

  • 根據預設,如果 S3 儲存貯體和 Redshift 叢集位於不同的 AWS 區域,Amazon S3 和 Redshift 之間便無法進行複製操作。若要使用不同的 AWS 區域,請將 tempdir_region 參數設定為用於 tempdir 的 S3 儲存貯體區域。

  • 如果使用 tempformat 參數寫入 Parquet 資料,則會在 S3 和 Redshift 之間進行跨區域寫入。

  • 建議您使用 Amazon S3 伺服器端加密來加密所用的 Amazon S3 儲存貯體。

  • 建議您封鎖對 Amazon S3 儲存貯體的公開存取

  • 建議您不要將 Amazon Redshift 叢集設為可公開存取。

  • 建議您開啟 Amazon Redshift 稽核記錄

  • 建議您開啟 Amazon Redshift 靜態加密

  • 建議您針對從 Amazon EMR 上的 Spark 到 Amazon Redshift 的 JDBC 連線開啟 SSL。

  • 建議您使用 Amazon Redshift 身分驗證參數的 aws_iam_role 參數傳遞 IAM 角色。