ApsaraDB RDS for MySQL インスタンスに大量のデータを保存すると、ストレージコストが増加します。ほとんどの場合、ビジネスデータはコールドデータとホットデータに分けられます。 コールドデータを Object Storage Service (OSS) バケットにアーカイブすることで、ストレージコストを大幅に削減できます。
機能の説明
RDS インスタンスの Premium Enterprise SSD (ESSD) のデータアーカイブ機能を有効にすると、DDL 文を実行して ESSD と OSS バケット間でデータを変換できます。 データアーカイブ機能を使用すると、アクセス頻度の低い大きなテーブルを OSS バケットに保存し、ネイティブの InnoDB アクセスメソッドを使用してテーブルからデータを読み取ることができます。 次の DDL 文がサポートされています。
次のステートメントを実行してデータを OSS にアーカイブできます。
ALTER TABLE $table_name ENGINE_ATTRIBUTE='{"OSS":"Y"}';
説明ApsaraDB RDS for MySQL では、テーブル内のすべてのデータを OSS バケットにアーカイブできます。 テーブルをアーカイブした後、テーブルにデータを書き込むことはできなくなります。 テーブルに対して SELECT、DROP TABLE、DROP DATABASE、および RENAME 操作を実行できます。
次の文を実行して、アーカイブされたデータを Premium ESSD に移動できます。
ALTER TABLE $table_name ENGINE_ATTRIBUTE='{"OSS":"N"}';
ApsaraDB RDS for MySQL では、アーカイブされたテーブルは完全な InnoDB インデックスを保持し、トランザクションに対応しています。 これにより、アーカイブされたテーブルのオフセットクエリとキャッシュアクセラレーションが可能になり、コールドテーブルへのアクセスの効率が向上します。
メリット
データアーカイブ機能を有効にすると、OSS のマスストレージ、セキュリティ、費用対効果、高信頼性に基づいて、RDS インスタンスのデータを低コストで OSS バケットに保存できます。 データアーカイブ機能を使用すると、InnoDB トランザクション機能を保持し、アクセス頻度の低いデータを読み取ることができます。 データアーカイブ機能を有効にすると、ストレージコストはパフォーマンスレベル 1 (PL1) の ESSD を使用する場合のストレージコストよりも 80% 低くなります。
クエリのパフォーマンスを向上させるには、I/O アクセラレーション機能を有効にすることができます。 詳細については、「汎用 ESSD の I/O アクセラレーション機能を使用する」をご参照ください。
適用範囲
エンジン: MySQL
製品タイプ: standard および YiTian
ストレージタイプ: Premium ESSD
説明RDS インスタンスで Premium ESSD を使用していない場合は、RDS インスタンスのストレージタイプを Premium ESSD に変更できます。 詳細については、「ApsaraDB for MySQL インスタンスのストレージタイプを ESSD から汎用 ESSD に変更する」をご参照ください。
ストレージタイプを Premium ローカル SSD または標準 SSD から Premium ESSD に変更することはできません。
バージョン: マイナーエンジンバージョン 20240131 以後の MySQL 8.0
エディション: RDS Basic Edition、RDS High-availability Edition、および RDS Cluster Edition
利用できないリージョン: 韓国 (ソウル)、英国 (ロンドン)
課金ルール
パブリックプレビュー中は無料
During the public preview, which starts from June 20, 2024 to July 25, 2024, you can use the feature free of charge. After the public preview ends, you are charged based on the volume of data that is archived to the OSS bucket.
課金
従量課金方式のみがサポートされています。次の表は、異なる RDS エディションを実行する RDS インスタンスの機能の価格について説明しています。
リージョン | RDS Basic Edition | RDS High-availability Edition | RDS Cluster Edition(ノード数に基づいて計算) |
中国(杭州)、中国(上海)、中国(青島)、中国(北京)、中国(張家口)、中国(フフホト)、中国(ウランチャブ)、中国(深セン)、中国(河源)、中国(広州)、中国(成都) | 1 GB 時間あたり 0.000032 米ドル | 1 GB 時間あたり 0.000065 米ドル | 1 GB 時間あたり 0.000032 米ドル |
中国(香港) | 1 GB 時間あたり 0.000034 米ドル | 1 GB 時間あたり 0.000068 米ドル | 1 GB 時間あたり 0.000034 米ドル |
フィリピン(マニラ)、米国(シリコンバレー) | 1 GB 時間あたり 0.000058 米ドル | 1 GB 時間あたり 0.000117 米ドル | 1 GB 時間あたり 0.000058 米ドル |
日本(東京)、シンガポール、インドネシア(ジャカルタ)、ドイツ(フランクフルト) | 1 GB 時間あたり 0.000034 米ドル | 1 GB 時間あたり 0.000068 米ドル | 1 GB 時間あたり 0.000034 米ドル |
マレーシア(クアラルンプール) | 1 GB 時間あたり 0.000057 米ドル | 1 GB 時間あたり 0.000114 米ドル | 1 GB 時間あたり 0.000057 米ドル |
米国(バージニア) | 1 GB 時間あたり 0.000054 米ドル | 1 GB 時間あたり 0.000108 米ドル | 1 GB 時間あたり 0.000054 米ドル |
この機能は、タイ(バンコク)、韓国(ソウル)、英国(ロンドン)、UAE(ドバイ)の各リージョンではサポートされていません。
制限事項
RDS インスタンスでサーバーレス課金方式を使用している場合、RDS インスタンスのデータアーカイブ機能はサポートされていません。
OSS バケットに格納されているテーブルは、SELECT、DROP TABLE、DROP DATABASE、および RENAME 操作をサポートしています。 OSS バケットから ESSD にテーブルのデータを転送した後、テーブルはすべての操作をサポートします。
パーティションテーブル、フルテキストインデックスを含むテーブル、暗号化テーブル、外部キーを含むテーブル、および圧縮テーブルは、OSS バケットに格納できません。 テーブル圧縮とページ圧縮を使用するテーブルは、圧縮テーブルと見なされます。
OSS のアクセスレイテンシのため、OSS バケットのコールドテーブルのアクセスレイテンシは 10 ミリ秒に達し、これは ESSD のアクセスレイテンシよりも高くなります。
RDS インスタンスのアーカイブ済みテーブルのサイズは、6 MB 以上である必要があります。
データをアーカイブするために使用される DDL 文の実行時間は、アーカイブされるテーブルのサイズによって異なります。 これらの DDL 文の実行中は、テーブルからデータを読み取ることはできますが、テーブルにデータを書き込むことはできません。
データアーカイブ機能は、インスタンスのバックアップと RDS インスタンスの特定の機能に影響を与える可能性があります。 次の表は、影響を受ける機能を示しています。
機能
説明
秒単位バックアップ
1 桁秒バックアップ機能を有効にするには、データアーカイブ機能を無効にする必要があります。
データアーカイブ機能を有効にするには、秒単位バックアップ機能を無効にする必要があります。
リージョン間バックアップ
リージョン間バックアップ機能を有効にするには、データアーカイブ機能を無効にする必要があります。
データアーカイブ機能を有効にするには、リージョン間バックアップ機能を無効にする必要があります。
個々のデータベースとテーブルの復元
データベースを復元する場合、データベース内でアーカイブされていないデータのみを復元できます。
バックアップセットのダウンロード
ダウンロードしたバックアップセットには、アーカイブされていないデータのみが含まれています。
説明データアーカイブ機能を有効にすると、アーカイブされたデータを復元する必要があるため、インスタンスのバックアップまたは復元の速度が低下します。
使用上の注意
OSS ストレージと読み取り操作はメモリ リソースを消費します。データ変換とデータ アクセスの速度と頻度を変更する必要があります。
データアーカイブ機能の有効化と無効化
ApsaraDB RDS コンソールにログインし、インスタンス ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDS インスタンスを見つけて、インスタンスの ID をクリックします。 RDS インスタンスがデータアーカイブ機能をサポートするリージョンに存在することを確認してください。
表示されるページで、[Premium ESSD] の横にある [Premium ESSD の構成] をクリックします。 表示されるダイアログボックスで、[データアーカイブ] 機能を有効または無効にします。
重要RDS インスタンスのデータアーカイブ機能を有効または無効にすると、インスタンスへの接続が約 30 秒間中断されます。
データアーカイブ機能を無効にする場合は、OSS バケットにアーカイブされたテーブルが含まれていないことを確認してください。 OSS バケットにアーカイブされたテーブルが含まれている場合、この機能を無効にすることはできません。 この場合、DDL 文を実行してアーカイブされたテーブルをオンラインテーブルに変換するか、アーカイブされたテーブルに対して DROP 操作を実行してから、データアーカイブ機能を無効にする必要があります。
アーカイブ済みデータの表示
コンソールでアーカイブ済みデータを表示します。
[インスタンス] ページに移動します。 上部のナビゲーションバーで、リージョンを選択します。 次に、データアーカイブ機能の要件を満たす RDS インスタンスの ID をクリックします。
左側のナビゲーションウィンドウで、[コールドストレージ管理] をクリックして、データアーカイブ機能が有効になっているデータベースを表示します。
SQL 文を実行して、アーカイブ済みデータを表示します。
RDS インスタンスで MySQL 8.0 20241130 以降を実行している場合は、より効率的な
information_schema.innodb_tablespaces_oss
から表領域情報を取得できます。-- MySQL 8.0 20241130 より前のエンジンバージョンを実行している RDS インスタンス用の文 SELECT t.NAME AS tablespace_name, SUBSTRING_INDEX(t.NAME, '/', 1) AS database_name, SUBSTRING_INDEX(t.NAME, '/', -1) AS table_name, oss.OSS_OBJECT_NUM * oss.OSS_OBJECT_SIZE AS SIZE_IN_OSS_BYTES FROM information_schema.innodb_tables AS t JOIN information_schema.innodb_tablespaces_oss AS oss ON t.space = oss.space; -- MySQL 8.0 20241130 以降を実行している RDS インスタンス用の文 SELECT NAME AS tablespace_name, SUBSTRING_INDEX(NAME, '/', 1) AS database_name, SUBSTRING_INDEX(NAME, '/', -1) AS table_name, OSS_PART_SIZE AS SIZE_IN_OSS_BYTES FROM information_schema.innodb_tablespaces_oss;
参照資料
次の表に、データアーカイブ機能でサポートされているパラメーターを示します。ビジネス要件に基づいてパラメーター設定を変更できます。詳細については、「MySQL 8.0 を実行する ApsaraDB RDS インスタンスでサポートされているパラメーター」をご参照ください。
パラメーター | デフォルト値 | 説明 |
innodb_oss_ddl_threads | 16 |
|
innodb_oss_files_limit | 10240 |
|
innodb_oss_prefetch | ON |
|
innodb_oss_prefetch_linear_pct_threshold | 10% |
|
innodb_oss_prefetch_random_pct_threshold | 30% |
|
innodb_oss_prefetch_task_limit | 32 |
|
oss_max_connections | 64 |
|
よくある質問
RDS インスタンスで ALTER
文を実行すると、[OSS] Size of tables is less than 6291456
エラーメッセージが表示されるのはなぜですか?
RDS インスタンス上のアーカイブ済みテーブルのデータサイズは、6 MB より小さくすることはできません。