この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
AWSチームのすずきです。
2021年11月18日、MySQL 8.0 と互換性を持つ Amazon Aurora 3 がリリースされました。
今回、DBエンジンバージョン「8.0.mysql_aurora.3.01.0」の Auroraクラスタを東京リージョンで起動、 新しくサポートされたウィンドウ関数を利用したSQLの実行を試す機会がありましたので、紹介させていただきます。
データベース作成
バージョン指定
Aurora MySQL 3.01.0 (Compatible with MySQL 8.0.23) の選択が可能になりました。
DBインスタンスクラス
最も廉価に利用できる「db.t4g.medium」を利用しました。
「db.t3.small」は、Auraora 3ではサポート外となった模様です。
メモリ最適化クラスでは、「r4」「r5」「r6g」のインスタンスクラスが指定可能でした。
パラメーターグループ
パラメーターグループの変更を行う場合、「aurora-mysql8.0」ファミリーを指定して、パラメータグループ、DB クラスターのパラメータグループを作成します。
確認
「8.0.mysql_aurora.3.01.0」のDBインスタンスを起動する事ができました。
動作確認
MySQL 8.0 でサポートされた Windows関数を含むSQLの利用が可能になりました。
- 月別の投稿実績ベスト3
SELECT
d.user_nicename,
c.post_count,
c.post_month,
c.monthly_rank,
c.monthly_dense_rank
FROM
(
SELECT
b.post_author,
b.post_count,
b.post_month,
rank() over(partition BY b.post_month ORDER BY b.post_count DESC) AS monthly_rank,
dense_rank() over(partition BY b.post_month ORDER BY b.post_count DESC) AS monthly_dense_rank
FROM
(
SELECT
a.post_author,
COUNT(1) AS post_count,
DATE_FORMAT(a.post_date, '%Y-%m') AS post_month
FROM
wp_posts a
WHERE
a.post_type = 'post'
AND post_status = 'publish'
AND a.post_date >= date_add(date_add(last_day(NOW()), INTERVAL 1 DAY), INTERVAL - 4 MONTH)
AND a.post_date < date_add(date_add(last_day(NOW()), INTERVAL 1 DAY), INTERVAL - 1 MONTH)
GROUP BY
a.post_author,
DATE_FORMAT(a.post_date, '%Y-%m')
) b
) c,
wp_users d
WHERE
c.post_author = d.ID
AND c.monthly_rank <= 3
+-----------------+------------+------------+--------------+--------------------+
| user_nicename | post_count | post_month | monthly_rank | monthly_dense_rank |
+-----------------+------------+------------+--------------+--------------------+
| iwasa-takahito | 31 | 2021-08 | 1 | 1 |
| wakatsuki-ryuta | 31 | 2021-08 | 1 | 1 |
| sin | 17 | 2021-08 | 3 | 2 |
| iwasa-takahito | 32 | 2021-09 | 1 | 1 |
| wakatsuki-ryuta | 30 | 2021-09 | 2 | 2 |
| kim-jaewook | 12 | 2021-09 | 3 | 3 |
| iwasa-takahito | 31 | 2021-10 | 1 | 1 |
| wakatsuki-ryuta | 31 | 2021-10 | 1 | 1 |
| mori-ryosuke | 19 | 2021-10 | 3 | 2 |
+-----------------+------------+------------+--------------+--------------------+
9 rows in set (0.00 sec)
まとめ
MySQL8 でサポートされた機能を必須とするため、これまで Amazon Aurora の採用のネックとなっていた場合、新しい Amazon Aurora MySQL 3 をぜひお試しください。
また、Instant DDL、Common table expressions (CTEs)、Improved parallel query support、New index types など Aurora3で利用可能になった新機能や、改善されたバイナリログレプリケーションについても 追って評価を試みてみたいと思います。