Tous les produits
Search
Centre de documentation

AnalyticDB:Tiered storage of hot and cold data

Dernière mise à jour :Aug 10, 2026

AnalyticDB for MySQL vous permet de stocker les partitions chaudes et froides sur des supports distincts : des SSD pour les données chaudes et Object Storage Service (OSS) pour les données froides. Cette approche garantit des performances de requête élevées là où elles sont essentielles, tout en maîtrisant les coûts de stockage.

Important

Le stockage hiérarchisé s'applique uniquement aux tables partitionnées par date ou par heure. Le cluster doit exécuter la version mineure 3.1.3.3 ou ultérieure et appartenir à l'une des éditions suivantes : Enterprise Edition, Basic Edition, Data Lakehouse Edition ou Data Warehouse Edition (mode Elastic). Pour vérifier ou mettre à jour la version mineure, connectez-vous à la console AnalyticDB for MySQL et accédez à la section Configuration Information de la page Cluster Information.

Choisir une politique de stockage

AnalyticDB for MySQL propose trois politiques de stockage. Utilisez le tableau ci-dessous pour sélectionner celle qui correspond le mieux à votre charge de travail :

Politique de stockage Emplacement des données Cas d'usage idéal Coût
Stockage chaud Toutes les données sur SSD Tables fréquemment interrogées avec des exigences strictes en matière de latence Le plus élevé
Stockage froid Toutes les données dans OSS (stockage redondant interzones, ZRS) Données d'archivage rarement ou jamais consultées Le plus bas
Stockage mixte Partitions chaudes sur SSD, partitions froides dans OSS Grandes tables partitionnées temporellement dont les données récentes sont actives et les anciennes rarement interrogées Moyen

Critères de sélection :

  • Optez pour le stockage chaud lorsque la latence des requêtes est critique et que vous accédez régulièrement à la majorité des données.

  • Privilégiez le stockage froid pour les données archivées que vous n'interrogez presque jamais.

  • Le stockage mixte convient aux charges de travail de séries temporelles, telles que les tables de journaux, l'historique des commandes et les données de surveillance. Il s'agit du choix le plus courant pour les grandes tables partitionnées.

Fonctionnement du stockage mixte

Lorsque vous choisissez le stockage mixte, vous spécifiez le nombre de partitions chaudes (N). AnalyticDB for MySQL trie toutes les partitions par valeur de clé de partition dans l'ordre décroissant : les N premières partitions sont considérées comme chaudes et stockées sur des SSD, tandis que les autres sont froides et stockées dans OSS.

En cas d'ajout de partitions ou de modification du nombre de partitions chaudes, le système retrier et migre automatiquement les données afin de maintenir la distribution correcte. Pour plus de détails, consultez la section Impact des modifications du nombre de partitions.

Définir une politique de stockage

Lors de la création de la table

Spécifiez la politique à l'aide du paramètre storage_policy dans votre instruction CREATE TABLE :

CREATE TABLE your_table (
    ...
)
PARTITION BY ...
PROPERTIES (
    "storage_policy" = "MIXED",   -- HOT, COLD, or MIXED
    "hot_partition_count" = "5"   -- Required when storage_policy = MIXED
);

Pour une table existante

Utilisez l'instruction ALTER TABLE pour modifier la politique de stockage. Après l'exécution de cette commande, vous pouvez suivre la progression de la migration. Consultez la section Suivre la progression de la modification de la politique de stockage.

-- Switch to mixed storage with 5 hot partitions
ALTER TABLE your_table
SET PROPERTIES (
    "storage_policy" = "MIXED",
    "hot_partition_count" = "5"
);

Pour la référence complète de la syntaxe, consultez les rubriques CREATE TABLE et ALTER TABLE.

Important

Après avoir défini ou modifié une politique de stockage, la migration des données entre le stockage chaud et froid nécessite l'exécution d'une tâche BUILD. Vous pourrez consulter les tailles mises à jour des données chaudes et froides une fois la tâche BUILD terminée. Si aucune modification de données n'intervient après la définition de la politique, le système ne déclenche pas automatiquement de tâche BUILD. Dans ce cas, vous devez exécuter manuellement BUILD TABLE pour lancer la migration des données.

Facturation

Une fois le stockage hiérarchisé des données chaudes et froides activé, le stockage des données froides fait l'objet de frais distincts facturés à l'utilisation, indépendamment du stockage des données chaudes. Pour connaître les tarifs, consultez la page Tarification.

Utilisez les plans de stockage pour compenser les coûts de stockage.

Impact des modifications du nombre de partitions

Lors de l'insertion d'une nouvelle partition

Toutes les partitions sont retriées afin de conserver exactement N partitions chaudes. La partition dont la valeur de clé est la plus faible passe du statut chaud au statut froid.

Exemple : Le paramètre hot_partition_count est défini sur 5. Une nouvelle partition 20241226 (valeur de clé la plus élevée) est insérée. Après l'exécution d'une tâche BUILD, le système promeut 20241226 au statut chaud et déplace 20241221 (la précédente partition chaude ayant la valeur de clé la plus faible) vers le stockage froid.

image

Lors de la modification du nombre de partitions chaudes

  • Augmentation de N à M (M > N) : Les M - N partitions froides possédant les valeurs de clé les plus élevées sont promues au statut chaud.

  • Diminution de N à M (M < N) : Les N - M partitions chaudes possédant les valeurs de clé les plus faibles sont rétrogradées au statut froid.

Exemple — augmentation de 5 à 6 : La partition 20241220 (clé de partition froide la plus élevée) passe du stockage froid au stockage chaud.

image

Exemple — diminution de 5 à 4 : La partition 20241221 (clé de partition chaude la plus faible) passe du stockage chaud au stockage froid.

image

Interroger la politique de stockage

Requête pour toutes les tables

SELECT * FROM information_schema.table_usage;

Requête pour une table spécifique

SELECT * FROM information_schema.table_usage
WHERE table_schema = '<schema_name>' AND table_name = '<table_name>';

Paramètres de réponse

Paramètre Description
table_schema Nom de la base de données
table_name Nom de la table
storage_policy Politique de stockage : HOT, COLD ou MIXED
hot_partition_count Nombre de partitions chaudes (après union des shards ; peut dépasser la valeur configurée, voir la note ci-dessous)
cold_partition_count Nombre de partitions froides
rt_total_size Taille totale des données en temps réel (rt_data_size + rt_index_size). Unité : octets
rt_data_size Taille des données en temps réel. Unité : octets
rt_index_size Taille des données de clé primaire et d'index dans les données en temps réel. Unité : octets
hot_total_size Taille totale des données dans les partitions chaudes (hot_data_size + hot_index_size). Unité : octets
hot_data_size Taille des données dans les partitions chaudes. Unité : octets
hot_index_size Taille des données de clé primaire et d'index dans les partitions chaudes. Unité : octets
cold_total_size Taille totale des données dans les partitions froides (cold_data_size + cold_index_size). Unité : octets
cold_data_size Taille des données dans les partitions froides. Unité : octets
cold_index_size Taille des données de clé primaire et d'index dans les partitions froides. Unité : octets

Remarques d'utilisation :

  • Toutes les valeurs de taille (rt_*, hot_*, cold_*) évoluent au fil des opérations INSERT, UPDATE, DELETE et BUILD.

  • Si hot_total_size et cold_total_size valent tous deux 0 après l'écriture des données, celles-ci sont synchronisées en temps réel. La valeur rt_total_size reflète alors la taille actuelle. Exécutez une instruction BUILD pour convertir les données en temps réel en données historiques ; les champs hot_total_size et cold_total_size seront alors renseignés.

  • Le paramètre hot_partition_count configuré indique le nombre de partitions chaudes par shard. La valeur hot_partition_count renvoyée par la requête correspond à l'union sur l'ensemble des shards et peut être supérieure si la distribution des partitions diffère d'un shard à l'autre.

Exemple — différence entre la valeur hot_partition_count interrogée et la valeur configurée :

La table A comporte deux shards et le paramètre hot_partition_count est configuré sur 2.

  • Shard 1 : P4 et P5 sont chaudes ; P1, P2 et P3 sont froides.

  • Shard 2 : P3 et P4 sont chaudes ; P1 et P2 sont froides.

La valeur interrogée correspond à l'union : {P4, P5} ∪ {P3, P4} = {P3, P4, P5}, donc hot_partition_count renvoie 3.

image

Suivre la progression de la modification de la politique de stockage

Après avoir exécuté l'instruction ALTER TABLE pour modifier une politique de stockage, suivez la progression de la migration via la vue information_schema.storage_policy_modify_progress.

Requête pour toutes les tables

SELECT * FROM information_schema.storage_policy_modify_progress;

Requête pour une table spécifique

SELECT * FROM information_schema.storage_policy_modify_progress
WHERE table_schema = '<schema_name>' AND table_name = '<table_name>';

Paramètres de réponse

Paramètre Description
table_schema Nom de la base de données
table_name Nom de la table
task_id ID de la tâche de modification de la politique de stockage
source_storage_policy Politique de stockage d'origine : HOT, COLD ou MIXED
source_hot_partition_count Nombre de partitions chaudes avant la modification
dest_storage_policy Nouvelle politique de stockage : HOT, COLD ou MIXED
dest_hot_partition_count Nombre de partitions chaudes après la modification
hot_to_cold_partition_count Nombre de partitions déplacées du stockage chaud vers le stockage froid
cold_to_hot_partition_count Nombre de partitions déplacées du stockage froid vers le stockage chaud
hot_to_cold_data_size Taille des données déplacées du stockage chaud vers le stockage froid. Unité : octets
cold_to_hot_data_size Taille des données déplacées du stockage froid vers le stockage chaud. Unité : octets
hot_data_size_before_change Taille des données chaudes avant la modification. Unité : octets
cold_data_size_before_change Taille des données froides avant la modification. Unité : octets
hot_data_size_after_change Taille des données chaudes après la modification. Unité : octets
cold_data_size_after_change Taille des données froides après la modification. Unité : octets
start_time Début de la plage horaire durant laquelle la politique de stockage est modifiée
update_time Fin de la plage horaire durant laquelle la politique de stockage est modifiée
progress Progression de la modification. Unité : %
status État de la modification : INIT (non démarré), RUNNING (en cours) ou FINISH (terminé)