【Redshift】2023年下半期の最新情報まとめ

クラウドデータウェアハウスの雄、Redshiftの2023年下半期最新動向をまとめてみました。

普段からRedshiftを触っていても、最新動向のキャッチアップは優先度が低くなりがちだと思いますので、本記事をお役立てください。

これまでの最新動向は以下にまとめていますので、是非あわせてお読みください。

- [2023年上半期](https://qiita.com/cgshimo/items/e05b87f8f8f523ed749e)
- [2022年下半期](https://qiita.com/cgshimo/items/725cfe5308340ee7f76c)
- [2022年上半期](https://qiita.com/cgshimo/items/58e69bc7850eee266d03)

# Redshift公式ページ
https://aws.amazon.com/redshift/

# Redshift最新情報（2023/06/17~2023/12/27）
https://aws.amazon.com/jp/redshift/whats-new/

主に日本のリージョンに関連する情報を（私の主観で）分類してピックアップしています。

## AWSサービス統合
### ゼロETL統合
- 各データソースのデータをRedshiftですぐに利用できる機能。データソースのデータベース内のテーブルを選択するだけで、自動的にRedshiftにそのデータが複製される。

#### Aurora との統合
##### [AWS が Amazon Aurora MySQL と Amazon Redshift のゼロ ETL 統合 (パブリックプレビュー) を発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/06/amazon-aurora-mysql-zero-etl-integration-redshift-public-preview/) - 2023/06/28
##### [AWS が Amazon Aurora MySQL と Amazon Redshift のゼロ ETL 統合の一般提供開始を発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/aws-general-availability-amazon-aurora-mysql-zero-etl-integration-redshift/) - 2023/11/07
##### [AWS が Amazon Aurora PostgreSQL と Amazon Redshift のゼロ ETL 統合 (パブリックプレビュー) を発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-aurora-postgresql-zero-etl-integration-redshift-public-preview/) - 2023/11/28

#### RDSとの統合
##### [AWS が Amazon RDS for MySQL と Amazon Redshift のゼロ ETL 統合を発表 (パブリックプレビュー)](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-rds-mysql-zero-etl-integration-amazon-redshift-public-preview/) - 2023/11/28

#### DynamoDBとの統合
##### [AWS が Amazon DynamoDB と Amazon Redshift のゼロ ETL 統合を発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-dynamodb-zero-etl-integration-redshift/) - 2023/11/28

### [Amazon Kinesis Data Firehose が Amazon Redshift Serverless へのデータストリーム配信のサポートを追加](https://aws.amazon.com/jp/about-aws/whats-new/2023/06/amazon-kinesis-data-firehose-data-stream-delivery-redshift-serverless/) - 2023/06/19
- 数回のクリックするで、独自のデータインジェストや配信インフラストラクチャを構築および管理することなく、Kinesis Data Firehoseのストリーミングデータを Amazon Redshift Serverless に簡単に取り込める

### [Amazon Redshift ML が Amazon Forecast との統合を発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/07/amazon-redshift-ml-integration-amazon-forecast/) - 2023/07/20
- Redshift ML が Amazon Forecast を使用して予測モデルをトレーニングする。SQL ステートメントを使用して Amazon Redshift の時系列データから予測モデル (予測子と呼ばれる) を作成およびトレーニングし、それらのモデルを使用して、クエリやレポート内に収益、在庫、需要に関する予測を生成できる

### [Amazon Redshift が ThoughtSpot とのネイティブコンソール統合を発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/06/amazon-redshift-native-console-integration-thoughtspot/) - 2023/06/26
- Redshift コンソールからの ThoughtSpot とのネイティブ統合がサポートされた。ThoughtSpot を使用すると、複雑な変換や技術的な専門知識を必要とせずに、使いやすい環境で簡単にデータの検索や分析が行える

### [Amazon Redshift が AWS Glue データカタログの自動マウントを発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/07/amazon-redshift-automatic-mounting-aws-glue-data-catalog/) - 2023/07/25
- AWS Glue データカタログに登録されたデータレイクテーブルを使用するために、Amazon Redshift で外部スキーマを作成する必要がなくなった。Redshift によって AWS Glue データカタログがデータベースとして自動的にマウントされる

### [Amazon Redshift が AWS Lake Formation によるクロスリージョンデータ共有に対応](https://aws.amazon.com/jp/about-aws/whats-new/2023/09/amazon-redshift-cross-region-data-sharing-support-aws-lake-formation/) - 2023/09/19
- AWS Lake Formation によるクロスリージョンデータ共有のサポートが Amazon Redshift に追加された

### [Amazon Redshift と AWS Secrets Manager の統合を発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/10/amazon-redshift-integration-secrets-manager/) - 2023/10/18
- Redshift は AWS Secrets Manager と連携して、データベースインスタンスの作成、変更、復元時に、管理者の認証情報を生成および管理できる。AWS Secrets Manager は、Amazon Redshift 管理者の認証情報のメンテナンスをライフサイクル全体でサポートする。これにより、カスタム AWS Lambda 関数を設定してパスワードローテーションを管理するといった認証情報の複雑な管理作業が不要になる

### [Amazon Redshift が AWS Glue の列レベルの統計との統合を発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-redshift-integration-glue-column-statistics/) - 2023/11/20
- Redshift は、AWS Glue データカタログに保存されている列レベルの統計を活用して最適化されたクエリプランを生成することで、データレイククエリのパフォーマンスを向上させることができるようになった

## Redshift Serverless
### [Amazon Redshift が Redshift Serverless の新しいコンピューティングコストの管理設定である MaxRPU をリリース](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-redshift-maxrpu-compute-cost-control-redshift-serverless/) - 2023/11/09
- Redshift Serverless の新しいコンピューティングコストの管理設定である MaxRPU を使用すれば、コンピューティングしきい値の上限を任意で指定できる。Redshift Serverless がスケール可能な最大コンピューティングレベルをワークグループごとに選択して、あらゆる時点でのデータウェアハウスのコストを管理できる

### [Amazon Redshift Serverless、AI 主導のスケーリングと最適化を発表 (プレビュー)](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-redshift-serverless-ai-driven-scaling-optimizations-preview/) - 2023/11/27
- Redshift Serverless では AI 技術を使用して、データ量の変化、同時実行ユーザー数、クエリの複雑さなどの重要なすべての側面についてワークロードの変動に合わせて自動的にスケールし、料金パフォーマンスの目標を達成および維持する。内部テストでは、手動による操作を行わなくても、これらの最適化によって、変動するワークロードの料金パフォーマンスが最大 10 倍向上することが実証されている

### [Amazon Redshift Serverless の管理性とユーザビリティの機能強化を発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-redshift-serverless-manageability-usability-features/) - 2023/11/29
- クロスアカウントクロス VPC、カスタムドメイン名 (CNAME)、スナップショットスケジューリング、クロスリージョンコピー (CRC)、Redshift コンソールにおけるサーバーレスの請求の可視性の向上、バージョントラッキングなど。これらの機能により、シームレスなデータアクセス、堅牢なデータ保護、費用対効果の高い運用が可能に
  - クロスアカウントクロス VPC を使用すると、ご使用の VPC 内の Redshift Serverless に、別の AWS アカウントの VPC からアクセスできるようになる
  - デフォルトの URL よりも覚えやすいカスタムドメイン名を使用できるように
  - スナップショットスケジュールを作成して、スナップショットの取得タイミングと保持期間を制御
  - CRC により、自分の Serverless 名前空間内のデータを、自分で選んだ別のリージョンに自動的にバックアップできるように
  - AWS アカウントに含まれる Redshift Serverless ワークグループごとに Redshift コンソールで RPU 時間の請求メトリクスを簡単に追跡できる
  - コンソール上に Redshift Serverless のバージョンが示されて、データウェアハウスへのソフトウェア更新について常に最新情報を入手できる

## SQL
### [Amazon Redshift で SELECT SQL ステートメントの QUALIFY 句のサポートを開始](https://aws.amazon.com/jp/about-aws/whats-new/2023/07/amazon-redshift-qualify-clause-select-sql-statement/) - 2023/07/17
- サブクエリを使用せずにウィンドウ関数の結果にフィルタリング条件を適用できる

#### QUALIFYがないとき
```sql
-- サブクエリで行番号の列を作成し、12時以降に販売されたもので上位2件の高額の商品を出す
SELECT 
    ss_sold_date,
    ss_sold_time,
    ss_item,
    ss_sales_price
FROM (
  SELECT
    ss.*,
    ROW_NUMBER() OVER (PARTITION BY ss_sold_date ORDER BY ss_sales_price DESC) AS row_num
  FROM
    store_sales ss
  WHERE
    ss.ss_sold_time > TIME '12:00:00'
) subquery
WHERE
  subquery.row_num <= 2;
  

-- WITHを使う場合
WITH tmp_table AS (
  SELECT
    ss.*,
    ROW_NUMBER() OVER (PARTITION BY ss_sold_date ORDER BY ss_sales_price DESC) AS row_num
  FROM
    store_sales ss
  WHERE
    ss.ss_sold_time > TIME '12:00:00'
)
SELECT
  ss_sold_date,
  ss_sold_time,
  ss_item,
  ss_sales_price
FROM
  tmp_table
WHERE
  row_num <= 2;
```

#### QUALIFYがあるとき
```sql
SELECT *
FROM store_sales ss
WHERE ss_sold_time > time '12:00:00'
QUALIFY row_number()
OVER (PARTITION BY ss_sold_date ORDER BY ss_sales_price DESC) <= 2
```

クエリの参考資料↓

https://dev.classmethod.jp/articles/amazon-redshift-supports-qualify-calify-clause/

## Redshift クエリエディタ
### [自動入力の候補が Amazon Redshift クエリエディタ V2 で利用可能に](https://aws.amazon.com/jp/about-aws/whats-new/2023/10/amazon-redshift-query-editor-v2-autocomplete/) - 2023/10/17
- 自動入力の候補と構文エラーチェックが利用できるようになった。この機能により、SQL 構文やデータベースオブジェクト名の候補がエディタのタブまたはノートブックに表示されるようになるため、詳細を覚えなくても、関連するデータベースオブジェクト名にすばやくアクセスして利用できる

### [Amazon Q の生成系 SQL が Amazon Redshift クエリエディタで利用可能に (プレビュー版)](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-redshift-generative-sql-query-editor-preview/) - 2023/11/29
- 自然言語でクエリを表現したり、推奨される SQL コードを受け取ったりできるため、クエリの作成が簡単になり、生産性が向上する。Amazon Q の生成系 SQL の会話型インターフェイスでは、ユーザーは現在アクセス可能なデータの範囲内で、自然言語でクエリを送信できる

## セキュリティ
### [Amazon Redshift でデータウェアハウスを暗号化するエクスペリエンスが向上](https://aws.amazon.com/jp/about-aws/whats-new/2023/06/amazon-redshift-experience-encrypting-data-warehouse/) - 2023/06/21
- 特にデータウェアハウスに大量のデータが入力されている場合、Redshift データウェアハウスの暗号化は時間のかかる操作だった。今回の機能強化によって、このプロセスは少なくとも 5 倍速くなり、場合によっては数週間かかっていた時間がわずか数日間に短縮される。さらに、データウェアハウスを暗号化するプロセスが進行中でも、クエリにすばやく使用できるようになった

### [Amazon Redshift がワークロード管理 (WLM) におけるロールベースのアクセスコントロールのサポートを発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/09/amazon-redshift-role-based-access-control-wlm/) - 2023/09/25
- このサポートにより、Amazon Redshift のユーザーがデータベースでクエリを実行すると、そのクエリはユーザーロールに関連付けられたクエリキューにルーティングされる

### [Amazon Redshift がネストされたオブジェクトへの新しいきめ細かなアクセスコントロール機能を発表 (プレビュー)](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-redshift-fine-grained-access-control-capabilities-preview/) - 2023/11/27
- 動的データマスキングポリシーをデータ型が SUPER である列のスカラー属性に適用できる

### [Amazon Redshift がメタデータセキュリティのサポートを開始してマルチテナントアプリケーションを簡素化](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-redshift-metadata-security-tenant-applications/) - 2023/11/29
- 管理者がユーザーのロールと権限に基づいてカタログデータの可視性を制限できるようになった。ユーザーが現在表示できるのは、自分がアクセスできるデータベース、スキーマ、テーブル/ビューのメタデータだけ。これにより開発者はマルチテナントアプリケーションを、プロビジョニングされたクラスターまたは Serverless 名前空間にデプロイすることができる

### [Amazon Redshift が行レベルセキュリティ強化の一般提供を発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-redshift-row-level-security-enhancements/) - 2023/11/29
- 基礎となるデータが変化したりユーザー権限が変更されたりした場合でも、表示を許可された行にのみユーザーがアクセスできるようにすることができる

## 各種機能改善

### [Amazon Redshift で Apache Iceberg テーブルのクエリをサポート開始](https://aws.amazon.com/jp/about-aws/whats-new/2023/07/amazon-redshift-querying-apache-iceberg-tables/) - 2023/11/28
- Redshift を使用して AWS Glue データカタログ内の Apache Iceberg テーブルにクエリを実行できるようになったほか、他のユーザーやアプリケーションが Amazon EMR、Amazon Athena、AWS Glue などの ACID (不可分性、一貫性、分離性、耐久性) 準拠のサービスを使用してテーブルに対してデータ操作を安全に実行できるようになった。

### [AWS が Amazon Redshift の Apache Spark との統合のオープンソース化を発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/08/amazon-redshift-integration-apache-spark/) - 2023/08/01
- Redshift の Apache Spark 向けのコントリビューションと統合をオープンソース化した。これは、Apache Spark のデベロッパーが Amazon Redshift データ上で Apache Spark アプリケーションをシームレスに構築して実行できるようにするため

### [AWS が Amazon Redshift と Visual Studio Code の統合を発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/10/amazon-redshift-integration-visual-studio-code/) - 2023/10/17
- Visual Studio Code を使用して、ノートブックインターフェイスで SQL クエリを作成して実行することや、Redshift データウェアハウス内のスキーマオブジェクトを表示することができるようになった

### [Amazon Redshift マルチ AZ が RA3 クラスター向けに一般提供開始](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-redshift-multi-az-ra3-clusters/) - 2023/11/01
- Redshift マルチ AZ 配置では、データウェアハウスを複数の AWS アベイラビリティーゾーン (AZ) で同時に実行し、予期しない障害シナリオでも運用を続けることができる。マルチ AZ 配置では、Redshift サービスレベルアグリーメント (SLA) の可用性の保証を 99.99% に引き上げることができる。また、非常に要求の厳しいミッションクリティカルなワークロードに対応する可用性の高いデータウェアハウスを実現できる

### [Amazon Redshift で CNAME のサポートを開始](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-redshift-support-cname/) - 2023/11/17
- Canonical Name (CNAME)、つまり読みやすいドメインネームシステム (DNS) レコードであるカスタムドメイン名のサポートを開始。CNAME を使用すると、データベース接続で Redshift エンドポイントを公開する必要がないため、セキュリティが強化され、呼び出しや使用が簡単に。

### [AWS Analytics は IAM アイデンティティセンターによりサービスをまたぐユーザーのデータアクセスを簡素化](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/aws-analytics-users-data-access-iam-identity-center/) - 2023/11/26
- Amazon QuickSight、Amazon Redshift、Amazon EMR、AWS Lake Formation、S3 Access Grants 経由の Amazon S3 などの AWS Analytics サービスでは、AWS IAM アイデンティティセンターによる信頼性の高い ID 伝播を使用して、データやリソースへのアクセスをユーザー ID に基づいて管理および監査するようになった

### [Amazon Redshift がデータ共有による複数のデータウェアハウスからの書き込みをサポート (プレビュー)](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-redshift-multi-data-warehouse-writes-data-sharing-preview/) - 2023/11/26
- 数回のクリックで、複数の Redshift データウェアハウスから Redshift データベースに書き込むことができる。書き込まれたデータは、コミットされるとすぐにデータ共有されているすべてのウェアハウスで使用できるようになる

### [Redshift でプロビジョニングされた同時実行スケーリングとサーバーレス自動スケーリングが Create Table As Select (CTAS) を新たにサポート](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/redshift-provisioned-concurrency-scaling-serverless-autoscaling-ctas/) - 2023/11/26
- プロビジョニングされたクラスターの同時実行スケーリングとサーバーレス自動スケーリングを現在使用していれば、CTAS オペレーションをスケーリングできる

### [Amazon Redshift、クエリのパフォーマンスを最適化する多次元データレイアウトを発表 (プレビュー)](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-redshift-multidimensional-data-layouts-preview/) - 2023/11/27
- 多次元データレイアウトは、繰り返されるクエリのパフォーマンスを向上させる新しい強力なテーブルソートメカニズム。
- テーブルの 1 つ以上の列に基づいてデータを並べ替える従来のソート方法とは異なり、多次元データレイアウトでは、受信クエリのフィルター (例えば、特定の地域の「営業」) に基づいてデータを並べ替える。このため、テーブルスキャンのパフォーマンスが大幅に向上する。AWS の内部でベンチマークテストを実施したところ、ソートキーなしの場合と比べて実行時間が合計で 74% 短縮され、最適な単一列のソートキーと比べて実行時間が合計で 40% 短縮されることがわかった。

### [Amazon Redshift、データレイクのテーブルに対するマテリアライズドビューの増分更新をサポート (プレビュー)](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-redshift-incremental-refresh-materialized-views-data-lake-tables-preview/) - 2023/11/27
- 基となる SELECT ステートメントを再実行し、データをマテリアライズドビューに再度書き込む必要があるフル更新がデータレイクのテーブルについても不要になった

### [Amazon Redshift での Apache Iceberg のサポートの一般提供開始を発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-redshift-support-apache-iceberg/) - 2023/11/29
- データレイク上の Apache Iceberg テーブルに簡単にアクセスして、データウェアハウス内のデータと結合できる

### [Amazon Redshift で SUPER データ型の列サイズのサポートを 16 MB に拡張](https://aws.amazon.com/jp/about-aws/whats-new/2023/12/amazon-redshift-super-data-column-size-16mb/) - 2023/12/04
- 最大 16 MB のサイズのラージオブジェクトを SUPER データ型で保存できるようになった。JSON、PARQUET、TEXT、CSV ソースファイルから取り込む場合、半構造化データまたはドキュメントを最大 16 MB の SUPER データ型の値として読み込むことができる。今回の機能強化の前は、SUPER データ型の半構造化データまたはドキュメントを最大で 1 MB しか読み込めなかった。

### [Amazon Redshift、Advisor によるソートキーと分散キーの推奨事項の強化を発表](https://aws.amazon.com/jp/about-aws/whats-new/2023/12/amazon-redshift-advisor-sort-distribution-key-recommendations/) - 2023/12/08
- Redshift Advisor では新しい機械学習モデルを使用することで、最小限必要な量のワークロードを観察しなくてもすぐにソートキーと分散キーの推奨事項を提供できる

# おわりに
この下半期も色々なアップデートがありRedshiftが使いやすくなりました。
特に、クエリエディタでAmazon Qが使えるようになったり自動補完が効くようになったり、VSCodeとの連携が実現したりと、クエリ実行環境が大きく改善されたのはSQLをよく書くエンジニアにとって嬉しいアップデートですね。
「ゼロETL統合」の深化も、個人的には今後Redshiftをデータソースとして他のデータベースへのデータ複製もできるようになると嬉しいです（社内ニーズ）。