Tous les produits
Search
Centre de documentation

Hologres:Upgrade storage format of column-oriented table

Dernière mise à jour :Aug 11, 2026

Avant la version 0,10 de Hologres, les tables orientées colonne utilisaient l'ancien format Segment. À partir de la version 0,10, les nouvelles tables orientées colonne utilisent par défaut le format AliORC (orc), qui offre une meilleure compression des données et réduit les coûts de stockage. Les versions 1.3 et ultérieures de Hologres ne prennent plus en charge la création de tables au format Segment. Cette rubrique explique comment vérifier le format de stockage actuel de vos tables et migrer les tables existantes vers le format ORC.

Formats de stockage

Hologres stocke les données selon trois formats :

Format

Type de table

Description

segment

Orientée colonne

Ancien format de fichier par colonne. Il s'agissait du format par défaut pour les tables orientées colonne dans les versions antérieures à la 0,10. La création de nouvelles tables avec ce format n'est plus prise en charge à partir de la version 1.3.

orc

Orientée colonne

Format columnaire AliORC. Format par défaut pour les tables orientées colonne depuis la version 0,10. Il offre une meilleure compression des données et des coûts de stockage inférieurs à ceux du format segment.

sst

Orientée ligne

Format par défaut pour les tables orientées ligne.

Remarque

Vous ne pouvez pas convertir une table orientée colonne en table orientée ligne en modifiant simplement le format de stockage. Pour changer le type de table, vous devez créer une nouvelle table avec le schéma requis.

Prérequis

Avant de commencer, assurez-vous que :

  • Votre instance Hologres exécute la version 0,10 ou une version ultérieure. Vérifiez la version de votre instance sur la page des détails de l'instance dans la console Hologres. Si votre instance utilise une version antérieure à la 0,10, effectuez d'abord la mise à niveau. En cas d'erreur lors de la mise à niveau, consultez la section Erreurs courantes lors de la préparation de la mise à niveau ou obtenez une assistance en ligne.

  • Vous disposez d'une table Segment Hologres.

    Remarque

    Pour une table partitionnée, exécutez la commande uniquement sur la table parente.

Vérification du format de stockage

Exécutez l'instruction SQL suivante pour afficher le format de stockage de chaque table de la base de données actuelle :

SELECT *
FROM hologres.hg_table_properties
WHERE property_key = 'storage_format';

Exemple de résultat :

 table_namespace |     table_name     |  property_key  | property_value
-----------------+--------------------+----------------+----------------
 public          | part               | storage_format | segment
 public          | partsupp           | storage_format | segment
 public          | customer           | storage_format | segment
 public          | orders_row         | storage_format | sst
 public          | sp_orders          | storage_format | segment
 public          | sp_orders_20161231 | storage_format | segment
 public          | sp_orders_20171231 | storage_format | segment
 public          | sp_orders_20181231 | storage_format | segment
 public          | lineitem           | storage_format | segment
 public          | nation             | storage_format | orc
 public          | region             | storage_format | orc
 public          | supplier           | storage_format | orc
 public          | orders             | storage_format | orc
(13 rows)

Les tables dont la valeur property_value est segment doivent être migrées vers le format ORC.

Conversion d'une table unique au format ORC

Important

Après l'exécution de la commande, un processus d'arrière-plan convertit les données au format ORC de manière asynchrone. Ce processus consomme des ressources CPU, E/S et bande passante réseau, ce qui peut affecter les performances des services en ligne. Exécutez cette commande pendant les heures creuses.

Exécutez la commande suivante pour modifier le format de stockage d'une table :

call set_table_property ('table_name', 'storage_format', 'orc');

Remplacez table_name par le nom de votre table. L'exemple suivant convertit la table part :

call set_table_property ('public.part', 'storage_format', 'orc');

Conversion par lot des tables du format Segment vers le format ORC

Les versions 1.3.35 et ultérieures de Hologres prennent en charge la conversion par lot du format Segment vers le format ORC. Utilisez cette méthode lorsque vous devez migrer un grand nombre de tables Segment existantes.

Important

La commande de conversion par lot s'exécute de manière asynchrone et consomme des ressources CPU et mémoire, ce qui peut affecter les charges de travail en ligne. Exécutez-la pendant les heures creuses.

Étape 1 : Identifiez les tables Segment dans la base de données actuelle.

select * from hologres.hg_table_properties
where property_key = 'storage_format' and property_value like '%segment%';

Si la requête renvoie un résultat vide, aucune table de la base de données actuelle ne nécessite de conversion.

Étape 2 : Démarrez la conversion par lot.

call hg_convert_segment_orc([<BATCH_SIZE>]);

Le paramètre BATCH_SIZE est facultatif. Il spécifie le nombre de tables à convertir simultanément. La valeur par défaut est 100.

La commande fonctionne comme suit :

  1. Elle renvoie immédiatement un message de succès et démarre la conversion en arrière-plan.

  2. Elle convertit jusqu'à BATCH_SIZE tables simultanément par exécution.

  3. Elle consomme des ressources CPU et mémoire pendant la conversion. Surveillez ces métriques : une baisse de l'utilisation du processeur et de la mémoire indique que la conversion est terminée. La durée de la conversion varie généralement de quelques minutes à plusieurs heures, selon le volume de données.

  4. Si la commande renvoie un résultat vide, toutes les tables de la base de données actuelle ont été converties ou sont en cours de conversion.

  5. Si la commande renvoie le message continue to call hg_convert_segment_orc() if you want to convert all tables in current database., il reste des tables Segment à convertir. Continuez à exécuter la commande jusqu'à ce qu'elle renvoie un résultat vide.

Répétez les étapes 1 et 2 pour chaque base de données de votre instance.

Conversion automatique lors de la création d'une table Segment (version 1.3.29 et ultérieures)

À partir de la version 1.3.29 de Hologres, si vous exécutez une instruction CREATE TABLE avec le format Segment, le système convertit automatiquement le format en ORC et affiche l'avis suivant :

NOTICE:storage format 'segment' is no longer supported,converted to 'orc'