ApsaraDB RDS for MySQL インスタンスに大量のデータを保存すると、ストレージコストが増加します。ビジネスデータは通常、ホットデータまたはコールドデータに分類されます。コールドデータを Object Storage Service (OSS) にアーカイブすることで、ストレージコストを大幅に削減できます。
機能概要
Premium ESSD を使用する ApsaraDB RDS for MySQL インスタンスで OSS へのデータアーカイブを有効にすると、次の DDL 文を実行して ESSD と OSS の間でデータを移動できます。この機能により、アクセス頻度の低い大規模なテーブルを OSS にダンプできます。その後、ネイティブの InnoDB アクセスメソッドを使用して、これらのコールドテーブルからデータを読み取ることができます。データアーカイブの DDL 操作は次のとおりです。
アーカイブ
ALTER TABLE $table_name ENGINE_ATTRIBUTE='{"OSS":"Y"}';説明ApsaraDB RDS for MySQL は、テーブル全体の OSS へのアーカイブをサポートしています。テーブルがアーカイブされると、そのテーブルにデータを書き込むことはできません。SELECT、DROP TABLE、DROP DATABASE、および RENAME 操作のみがサポートされます。
取得
ALTER TABLE $table_name ENGINE_ATTRIBUTE='{"OSS":"N"}';
ApsaraDB RDS for MySQL のアーカイブ済みテーブルは、すべての InnoDB インデックス情報とトランザクションプロパティを保持します。高速なポイントクエリとキャッシュアクセラレーションをサポートし、コールドテーブルのアクセス効率を向上させます。
メリット
Premium ESSD を使用する ApsaraDB RDS for MySQL インスタンスで OSS へのデータアーカイブを有効にすると、OSS の大規模で安全、低コスト、高信頼性のストレージを活用できます。この機能は、ApsaraDB RDS for MySQL 上で非常に低コストのデータアーカイブソリューションを提供し、頻度の低いデータアクセスをサポートし、InnoDB トランザクション機能を維持します。これにより、ESSD PL1 ディスクを使用する場合と比較して、ストレージコストを 80% 削減できます。
クエリパフォーマンスを向上させるには、バッファープール拡張 (BPE) 機能を有効にできます。
適用性
エンジン: ApsaraDB RDS for MySQL
プロダクトタイプ: Standard Edition、Yitian Edition
ストレージタイプ: Premium ESSD
説明インスタンスが Premium ESSD を使用していない場合は、ディスクタイプを ESSD から Premium ESSD に変更できます。
ローカルディスクまたは標準 SSD を Premium ESSD に変更することはできません。
課金方法: 従量課金、サブスクリプション
バージョン: MySQL 8.0 20240131 以降
プロダクトシリーズ: Basic Edition、High-availability Edition、Cluster Edition
サポートされていないリージョン: タイ (バンコク)、韓国 (ソウル)、イギリス (ロンドン)、アラブ首長国連邦 (ドバイ)
料金
パブリックプレビュー期間中は無料
この機能は、2024 年 6 月 20 日から 2024 年 7 月 25 日までのパブリックプレビュー期間中は無料です。パブリックプレビューが終了すると、OSS にアーカイブされたデータ量に基づいて課金されます。
課金の詳細
現在、従量課金のみがサポートされています。次の表は、さまざまなリージョンにおける異なるプロダクトシリーズの料金を示しています。
リージョン | Basic Edition の料金 | High-availability Edition の料金 | Cluster Edition の料金 (ノード数に基づいて計算) |
中国(杭州)、中国(上海)、中国(青島)、中国(北京)、中国(張家口)、中国(フフホト)、中国(ウランチャブ)、中国(深セン)、中国(河源)、中国(広州)、中国(成都) | 0.000032 USD/GB/時間 | 0.000065 USD/GB/時間 | 0.000032 USD/GB/時間 |
中国(香港) | 0.000034 USD/GB/時間 | 0.000068 USD/GB/時間 | 0.000034 USD/GB/時間 |
フィリピン (マニラ)、米国 (シリコンバレー) | 0.000058 USD/GB/時間 | 0.000117 USD/GB/時間 | 0.000058 USD/GB/時間 |
日本 (東京)、シンガポール、インドネシア (ジャカルタ)、ドイツ (フランクフルト) | 0.000034 USD/GB/時間 | 0.000068 USD/GB/時間 | 0.000034 USD/GB/時間 |
マレーシア(クアラルンプール) | 0.000057 USD/GB/時間 | 0.000114 USD/GB/時間 | 0.000057 USD/GB/時間 |
米国(バージニア) | 0.000054 USD/GB/時間 | 0.000108 USD/GB/時間 | 0.000054 USD/GB/時間 |
サポートされていないリージョン: タイ (バンコク)、韓国 (ソウル)、イギリス (ロンドン)、アラブ首長国連邦 (ドバイ)。
制限事項
データアーカイブ機能は、サーバーレス ApsaraDB RDS for MySQL インスタンスではサポートされていません。
OSS に保存されているテーブルは、SELECT、DROP TABLE、DROP DATABASE、および RENAME 操作のみをサポートします。データが ESSD に戻されると、テーブルは完全なアクセス権限を回復します。
パーティションテーブル、フルテキストインデックスを持つテーブル、暗号化されたテーブル、外部キーを持つテーブル、または圧縮されたテーブル (テーブル圧縮およびページ圧縮を含む) では、OSS へのデータアーカイブはサポートされていません。
OSS のアクセスレイテンシのため、コールドテーブルのデータへのアクセスは、ESSD に保存されているデータへのアクセスと比較してレイテンシが高くなります (10 ms の範囲)。
ApsaraDB RDS for MySQL のアーカイブ済みテーブルのデータサイズは、少なくとも 6 MB である必要があります。
アーカイブ DDL 文の実行時間は、テーブルのデータ量に依存します。DDL 操作中、テーブルは読み取り可能ですが、書き込みはできません。
データアーカイブを有効にすると、インスタンスのバックアップと一部の機能に影響します。詳細は次のとおりです。
サポートされていない機能
説明
秒単位のバックアップ
秒単位のバックアップを有効にするには、データアーカイブ機能を無効にします。
インスタンスのデータアーカイブを有効にするには、まず秒単位のバックアップ機能が無効になっていることを確認してください。
リージョン間バックアップ
リージョン間バックアップを有効にするには、データアーカイブ機能を無効にします。
インスタンスのデータアーカイブを有効にするには、まずリージョン間バックアップ機能が無効になっていることを確認してください。
データベースとテーブルの回復
データベースごとにデータを回復する場合、選択したデータベース内のアーカイブされていないデータのみが回復できます。
バックアップセットのダウンロード
ダウンロードされたバックアップセットには、アーカイブされていないデータのみが含まれます。
説明データアーカイブが有効になっているインスタンスでは、アーカイブされたデータも回復する必要があるため、バックアップおよび回復操作は、この機能がないインスタンスよりも時間がかかります。
注意事項
OSS へのデータアーカイブとアーカイブ済みデータの読み取りは、メモリリソースを消費します。要件に基づいて、データ変換とアクセスの速度と頻度を調整する必要があります。
データアーカイブ機能の有効化と無効化
ApsaraDB RDS インスタンスページに移動します。上部のナビゲーションバーで、リージョンを選択します。次に、ターゲットインスタンスの ID をクリックします。インスタンスは、「適用性」セクションで説明されている要件を満たしている必要があります。
インスタンス詳細ページで、[Premium ESSD] の右側にある [Premium ESSD スイッチ設定] をクリックし、[データアーカイブ] スイッチをオンまたはオフにします。
重要データアーカイブ機能を有効または無効にすると、プライマリ/スタンバイスイッチオーバーが発生します。これにより、約 30 秒間の一時的な接続中断が発生します。この操作はオフピーク時に実行してください。アプリケーションに自動再接続メカニズムがあることを確認してください。
データアーカイブ機能を無効にするには、OSS にアーカイブされたテーブルデータが存在しないことを確認する必要があります。OSS にアーカイブされたテーブルが存在する場合、この機能を無効にすることはできません。まず、DDL 文を使用して、アーカイブされたテーブルをオンラインテーブルに変換するか、ドロップする必要があります。その後、データアーカイブ機能を無効にできます。
アーカイブされたデータ情報の表示
コンソールで表示:
ApsaraDB RDS インスタンスページに移動します。上部のナビゲーションバーで、リージョンを選択します。次に、ターゲットインスタンスの ID をクリックします。インスタンスは、「適用性」セクションで説明されている要件を満たしている必要があります。
左側のナビゲーションウィンドウで、[コールドストレージ管理] をクリックして、データアーカイブが有効になっているデータベースを表示します。
SQL コマンドを使用して表示:
MySQL 8.0 20241130 以降では、
information_schema.innodb_tablespaces_ossビューを直接クエリしてテーブルスペース情報を取得できます。この方法はより効率的です。-- 20241130 より前の ApsaraDB RDS for MySQL バージョンの場合 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; -- ApsaraDB RDS for MySQL 20241130 以降の場合 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;
参照資料
ApsaraDB RDS for MySQL のデータアーカイブ機能には、必要に応じて変更できる次のパラメーターが用意されています。詳細については、「ApsaraDB RDS for MySQL 8.0 のパラメーターリスト」をご参照ください。
パラメーター名 | デフォルト値 | 説明 |
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 |
|
よくある質問
Q: MySQL で ALTER DDL 文を実行すると、エラー [OSS] Size of tables is less than 6291456 が表示されます。なぜですか?
A: MySQL のアーカイブ済みテーブルのデータサイズは、少なくとも 6 MB である必要があります。