Apache Spark 用の Amazon Redshift の統合 - Amazon Redshift

Apache Spark 用の Amazon Redshift の統合

Apache Spark は、機械学習、ストリーム処理、グラフ分析に役立つ分散処理フレームワークおよびプログラミングモデルです。Apache Spark は、Apache Hadoop と同様に、ビッグデータのワークロードを処理するために一般的に使用されているオープンソースの分散処理システムです。Spark には最適化された有向非循環グラフ (DAG) 実行エンジンが搭載されており、データをメモリ内に積極的にキャッシュします。これにより、特に特定のアルゴリズムやインタラクティブクエリのパフォーマンスを向上させることができます。

この統合により、Amazon Redshift と Amazon Redshift Serverless のデータを読み書きする Apache Spark アプリケーションを構築するために使用できる Spark コネクタが提供されます。これらのアプリケーションは、アプリケーションのパフォーマンスやデータのトランザクションの一貫性を損なうことはありません。この統合は自動的に Amazon EMR および AWS 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 での Identity and Access Management」を参照してください。

  • パフォーマンスを向上させるための述語とクエリのプッシュダウン

  • Amazon Redshift のデータ型

  • Amazon Redshift および Amazon Redshift Serverless への接続

Spark コネクタを使用する際の考慮事項と制限事項

  • tempdir URI は Amazon S3 の場所を指します。この一時ディレクトリは自動的にはクリーンアップされないため、追加コストが発生する可能性があります。Amazon Simple Storage Service ユーザーガイドAmazon S3 ライフサイクルポリシーを使用して、Amaxon 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 ロールを渡すことをお勧めします。