Tous les produits
Search
Centre de documentation

DataWorks:Utiliser les tables dynamiques Hologres

Dernière mise à jour :Aug 25, 2026

Une table dynamique Hologres met à jour ses données de manière incrémentielle et automatique, tout en accélérant les requêtes. Grâce à la fonctionnalité Data Catalog, DataWorks propose une interface de gestion visuelle pour les tables dynamiques Hologres dans le module Data Directory. Vous pouvez ainsi créer, configurer, surveiller et gérer ces tables sans rédiger d'instructions DDL complexes. Utilisez les tables dynamiques pour construire des applications de données en temps réel et quasi temps réel.

Limites

Prérequis

  • Un espace de travail DataWorks avec l'option Use Data Studio (New Version) activée, associé à un groupe de ressources de calcul contenant le moteur Hologres. Pour plus d'informations, reportez-vous aux rubriques Configurer un espace de travail et Gérer les ressources de calcul.

  • Une instance Hologres exécutant Hologres V3.1 ou une version ultérieure. Sélectionnez cette version lors de la création de l'instance Hologres.

  • Une source de données Hologres dans DataWorks ayant passé le test de connectivité avec succès. Pour plus d'informations, consultez la rubrique Lier une ressource de calcul Hologres.

  • Le Binlog doit être activé sur chaque table source lue par une table dynamique. L'actualisation incrémentielle consomme le Binlog de la table source.

  • Un nœud SQL Hologres DataWorks ou un autre client Hologres pour exécuter les instructions SQL présentées dans cette rubrique.

Choisir un type de table dynamique

La colonne de partition que vous spécifiez lors de la création détermine le type de table dynamique. Choisissez l'une des approches suivantes. Ces deux options sont mutuellement exclusives : suivez celle qui correspond à vos besoins.

Accéder à la page de création de table dynamique

Les deux exemples de cette rubrique commencent depuis la page de création de table dynamique. Pour y accéder, procédez comme suit :

  1. Accédez à Data Studio dans votre espace de travail DataWorks.

    Rendez-vous sur la page Workspaces de la console DataWorks. Dans la barre de navigation supérieure, sélectionnez la région souhaitée. Localisez l'espace de travail cible, puis choisissez Shortcuts > Data Studio dans la colonne Actions.

  2. Dans le volet de navigation de gauche, cliquez sur image pour accéder au module Data Directory.

  3. Dans la section Data Directory, localisez l'instance Hologres cible sous le type Hologres, développez les répertoires successivement, puis cliquez sur l'icône image située à côté de Dynamic Table.

Dans un espace de travail en mode standard, le Data Directory Hologres contient deux instances de base de données : Development et Production. Il est recommandé de tester la nouvelle table dynamique Hologres dans la base de données de l'environnement de développement, puis de la créer dans la base de données de l'environnement de production après validation des résultats.

Important

Dans un espace de travail en mode standard, les tables dynamiques créées dans la base de données de l'environnement de développement Hologres ne sont pas synchronisées automatiquement vers la base de données de l'environnement de production. Pour interroger ces tables dans l'environnement de production, vous devez créer les tables dynamiques Hologres séparément dans cette base de données.

Démarrage rapide : créer une table dynamique non partitionnée

Cet exemple crée une table dynamique non partitionnée qui agrège automatiquement et de manière incrémentielle les données de commandes de la table source orders, tout en maintenant les données agrégées actualisées avec une latence maximale de 5 minutes.

Étape 1 : Préparer les données sources

Préparez une table source dans votre base de données Hologres. Exécutez les instructions SQL suivantes pour créer une table de commandes nommée orders et insérer des données initiales :

-- Create the source table and enable Binlog to support incremental refresh
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT,
    user_name TEXT,
    price FLOAT,
    order_time TIMESTAMPTZ
) WITH (
    binlog_level = 'replica', -- Key setting: enable Binlog
    binlog_ttl = '86400'      -- Binlog retention period in seconds, for example, one day
);
-- Insert initial data
INSERT INTO orders VALUES 
(1, 101, 'Alice', 99.9, NOW()),
(2, 102, 'Bob', 19.5, NOW()),
(3, 101, 'Alice', 25.0, NOW());

Étape 2 : Accéder à la page de création de table dynamique

Accédez à la page de création de table dynamique pour la base de données Hologres cible. Pour plus d'informations, reportez-vous à la section Accéder à la page de création de table dynamique.

Étape 3 : Définir la logique de requête et exécuter la précompilation

  1. Saisissez les informations de base :

    • Dynamic table name : Entrez un nom de table unique, par exemple dt_user_orders_agg.

    • Description : Indiquez l'objectif de la table, par exemple « Statistiques de commandes agrégées par utilisateur ».

  2. Dans la section Field Information, sous l'onglet Data Generation SQL, rédigez la requête SELECT qui définit la logique des données de la table dynamique :

    SELECT 
        user_id,
        user_name,
        COUNT(*) AS order_count,
        SUM(price) AS total_price
    FROM public.orders
    GROUP BY user_id, user_name;
    Remarque

    Saisissez uniquement l'instruction SELECT. Vous n'avez pas besoin d'inclure la commande DDL CREATE DYNAMIC TABLE. Le système analyse l'instruction DDL complète à partir de votre configuration et l'affiche dans la zone DDL à droite.

  3. Cliquez sur Precompile au-dessus de l'éditeur SQL.

    La précompilation est une étape obligatoire. Une fois la précompilation réussie, le système liste les modes d'actualisation pris en charge et analyse les colonnes de sortie de la table dynamique. En cas d'échec, le système renvoie la cause spécifique. Modifiez l'instruction SQL selon le message affiché, puis relancez la précompilation. Pour savoir ce que vérifie la précompilation et comment interpréter son résultat, consultez la section Annexe : référence de configuration.

  4. (Facultatif) Cliquez sur l'onglet Field Details pour afficher toutes les colonnes, leurs types de données et leurs propriétés de non-nullité analysées par le système. Ajoutez un commentaire pour chaque colonne dans la colonne Description afin de faciliter la lecture des métadonnées.

Pour cet exemple, l'onglet Field Details affiche quatre colonnes : user_id (entier), user_name (texte), order_count (bigint) et total_price (double precision). Toutes les colonnes sont non nulles.

Cet exemple n'utilise ni les paramètres de partitionnement ni les paramètres avancés. Pour une description des paramètres, consultez la section Annexe : référence de configuration.

Étape 4 : Configurer la politique d'actualisation des données

Une fois la précompilation réussie, le panneau Refresh Policy situé à droite de la page devient modifiable.

Sélectionnez la politique d'actualisation adaptée à votre scénario. Auto-Refresh est l'option par défaut recommandée lorsque vous n'avez pas besoin d'imposer un mode d'actualisation spécifique. Incremental Refresh force exclusivement l'actualisation incrémentielle, tandis que Full Refresh s'applique lorsque la table source ne possède ni clé primaire ni Binlog. Cet exemple utilise Incremental Refresh car le scénario exige une synchronisation des données à faible latence.

Pour une description complète de chaque paramètre, consultez les sections Annexe : référence de configuration et Modes d'actualisation et ressources Hologres.

  • Basic Parameters :

    • Table Type : Comme aucune colonne de partition n'est sélectionnée, le système identifie la table comme une Non-Partitioned Table.

    • Refresh Policy : Sélectionnez Incremental Refresh.

    • Refresh trigger method : Conservez l'option Hologres auto refresh, qui est la seule valeur prise en charge.

    • Automatically Refresh Data : Conservez la valeur par défaut Yes.

    • Data Freshness : Définissez ce paramètre sur 5 minutes. La latence de la table dynamique par rapport à la table source restera ainsi toujours inférieure à 5 minutes.

    • Base Table Consumption Mode for Incremental Refresh : Sélectionnez stream.

    • Hologres computing resources : Sélectionnez Serverless resources afin que les tâches d'actualisation ne consomment pas les ressources de votre propre instance.

  • Advanced Parameters (facultatif) : Conservez les valeurs par défaut dans cet exemple. Pour définir des paramètres GUC spécifiques, consultez la rubrique Paramètres GUC.

Étape 5 : Publier la table dynamique

  1. Après avoir confirmé que toutes les configurations sont correctes, cliquez sur Publish en haut de la page.

  2. Dans la boîte de dialogue de confirmation qui s'affiche, cliquez à nouveau sur Publish.

La table dynamique Hologres est créée et publiée. Lorsque des données sont insérées ou mises à jour dans la table source orders, la table dynamique dt_user_orders_agg met à jour ses résultats agrégés en environ 5 minutes.

Étape 6 : Vérifier l'actualisation

Insérez ou mettez à jour des lignes dans la table source orders. Une fois la fenêtre de fraîcheur des données configurée de 5 minutes écoulée, interrogez la table dt_user_orders_agg. Les résultats agrégés incluent les nouvelles données. Pour vérifier si les tâches d'actualisation s'exécutent comme prévu, consultez la section Afficher et surveiller les tables dynamiques.

Exemple avancé : créer une table dynamique partitionnée par jour

Cet exemple crée une table dynamique partitionnée. La table agrège les nouveaux utilisateurs quotidiens à partir d'une table d'inscription des utilisateurs, et crée et gère les partitions automatiquement.

Cet exemple utilise 2026-02-27 comme date actuelle. Remplacez chaque occurrence de 2026-02-27 par la date actuelle de votre environnement, afin que les données d'exemple, le nom de la partition et la requête de vérification fassent tous référence au même jour.

Étape 1 : Préparer les données sources

Créez une table source nommée users qui enregistre les informations d'inscription des utilisateurs. La table doit contenir une colonne d'horodatage pour servir de base au partitionnement.

-- Create the user registration table and enable Binlog
CREATE TABLE users (
    user_id INT PRIMARY KEY,
    user_name TEXT,
    region TEXT,
    registration_time TIMESTAMPTZ  -- User registration time, of the TIMESTAMPTZ type
) WITH (
    binlog_level = 'replica',
    binlog_ttl = '86400'
);
-- Insert test data. Replace the dates with the current data timestamp.
INSERT INTO users VALUES 
(1, 'Alice', 'CN-Hangzhou', '2026-02-27 10:00:00+08'),
(2, 'Bob', 'CN-Shanghai', '2026-02-27 14:30:00+08'),
(3, 'Charlie', 'CN-Beijing', (NOW() - INTERVAL '1 day')::TIMESTAMPTZ);

Dans ces données d'exemple, Alice et Bob sont inscrits à la date actuelle, tandis que Charlie s'est inscrit la veille. Ces deux dates d'inscription illustrent la répartition des enregistrements entre les partitions journalières.

Étape 2 : Accéder à la page de création de table dynamique

Accédez à la page de création de table dynamique pour la base de données Hologres cible. Pour plus d'informations, reportez-vous à la section Accéder à la page de création de table dynamique.

Étape 3 : Définir la logique de requête et exécuter la précompilation

  1. Saisissez les informations de base :

    • Dynamic table name : dwd_user_new_user_detail_di

    • Description : Statistiques détaillées des nouveaux utilisateurs quotidiens

  2. Rédigez une instruction SQL qui extrait tous les enregistrements d'utilisateurs de la table users. Vous n'avez pas besoin de filtrer manuellement le temps dans la clause WHERE, car le mécanisme de partitionnement de la table dynamique gère cela automatiquement.

    SELECT 
        user_id,
        user_name,
        region,
        registration_time, -- Keep the original precise time column for queries
        CAST(registration_time AS DATE) AS ds -- [Key] Cast the timestamp to the DATE type to use as the partition key
    FROM public.users;
  3. Cliquez sur Precompile. Une fois la précompilation réussie, le système analyse les informations des colonnes.

Étape 4 : Sélectionner la colonne de partition

La sélection d'une colonne de partition est l'étape qui transforme la table dynamique en table partitionnée.

  1. Dans la section Partition Field Information, cliquez sur la liste déroulante Partition Column.

  2. Sélectionnez la nouvelle colonne ds comme colonne de partition.

Après avoir sélectionné la colonne de partition, DataWorks identifie la table comme une table partitionnée et affiche les éléments de configuration liés au partitionnement.

Étape 5 : Configurer les politiques de partition et d'actualisation

Pour une description complète de chaque paramètre, consultez les sections Annexe : référence de configuration et Propriétés de partition Hologres.

  • Partition Configurations :

    • Partition Properties : Le système affiche automatiquement l'option Logical Partition.

    • Partition Format : Sélectionnez yyyy-mm-dd pour créer des partitions par jour, ce qui correspond aux valeurs DATE de la clé de partition ds.

    • Partition Refresh Scope : Définissez ce paramètre sur 7 jours.

    • Partition Management > Partition Retention Period : Définissez ce paramètre sur 30 jours.

  • Refresh Policy Configurations :

    • Refresh Policy : Sélectionnez Auto-Refresh pour permettre à Hologres de choisir entre l'actualisation incrémentielle et l'actualisation complète.

    • Refresh trigger method : Conservez l'option Hologres auto refresh, qui est la seule valeur prise en charge.

    • Data Freshness : Définissez ce paramètre sur 10 minutes.

    • Hologres computing resources : Sélectionnez Serverless resources.

Étape 6 : Publier la table dynamique

Cliquez sur Publish en haut de la page.

Étape 7 : Afficher les partitions et vérifier les données

  1. Développez la table dwd_user_new_user_detail_di. Les sous-tables de partition créées en fonction de la date apparaissent, telles que 2026-02-27.

  2. Dans un nœud SQL Hologres, insérez de nouvelles données pour la journée en cours dans la table users :

    INSERT INTO users VALUES (4, 'David', 'CN-Shenzhen', '2026-02-27 18:00:00+08');
  3. Attendez environ 10 minutes que l'actualisation automatique s'exécute. Pour vérifier le résultat immédiatement, actualisez plutôt la partition manuellement :

    REFRESH DYNAMIC TABLE dwd_user_new_user_detail_di PARTITION (ds = '2026-02-27');
  4. Interrogez les données en utilisant la nouvelle clé de partition ds, ce qui est plus efficace :

    -- Efficient query: filter directly on the partition key
    SELECT * FROM dwd_user_new_user_detail_di WHERE ds = '2026-02-27';

La requête renvoie les enregistrements dont l'heure d'inscription correspond à la date interrogée, y compris le nouvel utilisateur David (user_id=4, CN-Shenzhen). Chaque enregistrement renvoyé contient les colonnes user_id, user_name, region, registration_time et ds, et la valeur ds de chaque enregistrement correspond à la date interrogée. Charlie (user_id=3, CN-Beijing) s'est inscrit la veille, donc cet enregistrement appartient à la partition du jour précédent et n'est pas renvoyé par la requête.

Afficher et surveiller les tables dynamiques

Une table dynamique continue de s'actualiser après sa publication. La page de détails de la table dynamique est donc l'endroit où vous vérifiez sa configuration et son statut d'actualisation. Dans la liste des tables dynamiques du module Data Directory, cliquez sur la table dynamique que vous avez créée, par exemple dt_user_orders_agg, pour accéder à la page de détails.

Afficher les informations statiques

Les éléments suivants sur la page de détails décrivent comment la table dynamique est définie :

  • Details : Les informations de schéma de la table, telles que la liste des colonnes, les types de données et la clé primaire.

  • Basic information : Les configurations principales de la table, telles que le propriétaire, la logique d'actualisation des données (SQL) et la politique d'actualisation.

  • DDL : L'instruction DDL complète qui crée la table dynamique. Vous pouvez copier cette instruction pour migrer ou reproduire la table.

Surveiller les tâches d'actualisation

Cliquez sur l'onglet Output information pour surveiller le statut d'actualisation de la table dynamique.

  • Data refresh : Si une tâche d'actualisation est en cours d'exécution, cette zone affiche des informations en temps réel sur la tâche, telles que le PID, l'ID de requête, le statut et la durée d'exécution.

  • Output History : Cette zone enregistre l'historique de chaque tâche d'actualisation. Le tableau suivant décrit les champs de chaque enregistrement.

Field

Description

Query ID

L'ID unique d'une tâche d'actualisation historique. Utilisez l'ID de requête pour un dépannage approfondi dans Hologres.

Refresh Mode

Le mode d'actualisation de la tâche, par exemple Incremental Refresh.

Status

Le statut final de la tâche : Successful ou Failed.

Run Time (seconds)

La durée totale de la tâche.

Data consumption delay (seconds)

(Actualisation incrémentielle uniquement) La latence de traitement des données de la table dynamique.

Compute resources

Les ressources consommées par la tâche. Utilisez ce champ pour l'analyse des coûts et l'optimisation des performances.

Gérer les tables dynamiques

Utilisez l'onglet Output information de la page de détails pour contrôler l'actualisation d'une table dynamique, et utilisez la liste des tables dynamiques du module Data Directory pour modifier ou supprimer la table.

Contrôler l'actualisation d'une table dynamique

Les boutons d'action suivants sont disponibles sur l'onglet Output information :

  • Pause Refresh / Recovery Refresh : Arrête temporairement ou reprend l'actualisation automatique Hologres.

  • Manual Refresh : Déclenche manuellement une tâche d'actualisation pour mettre à jour les données immédiatement.

  • Convert to Full Table : Change le mode d'actualisation de la table dynamique en Full Refresh et arrête l'actualisation automatique. Ce bouton n'apparaît que lorsque la politique d'actualisation de la table dynamique est Auto-Refresh ou Incremental Refresh.

Important

L'option Convert to Full Table modifie définitivement le mode d'actualisation de la table dynamique, et la table cesse de s'actualiser automatiquement après la conversion. Confirmez que l'actualisation complète répond aux exigences de fraîcheur des données de votre charge de travail avant d'utiliser cette action.

Modifier une table dynamique

Localisez la table dynamique dans le module Data Directory, puis cliquez sur Edit dans le coin supérieur droit de la page de détails pour ouvrir la page d'édition. La plupart des éléments de configuration peuvent être modifiés. Pour connaître les paramètres modifiables, consultez la documentation Hologres : Modifier une table dynamique.

Supprimer une table dynamique

Dans la liste des tables dynamiques du module Data Directory, faites un clic droit sur la table cible et sélectionnez Delete.

Annexe : référence de configuration

Cette section sert de référence pour chaque élément de configuration d'une table dynamique Hologres. Les étapes des exemples indiquent uniquement la valeur utilisée pour chaque scénario.

Informations sur les colonnes et colonne de partition

  • Informations sur les colonnes (SQL) — La requête SELECT qui définit la source de données de la table dynamique. La précompilation est une étape obligatoire.

  • Colonne de partition

    • Non sélectionnée : Crée une table non partitionnée.

    • Une colonne de type heure ou date sélectionnée : Crée une table partitionnée. Le système bascule automatiquement en mode de configuration de table partitionnée.

Précompilation

La précompilation interagit en temps réel avec le moteur Hologres pour effectuer les tâches suivantes :

  • Valider la syntaxe — Vérifie si votre instruction SELECT respecte les règles de syntaxe SQL.

  • Déduire le mode d'actualisation — Analyse la logique de la requête et les propriétés de la table source pour déterminer quels modes d'actualisation sont pris en charge : automatique, incrémentiel ou complet.

  • Analyser les colonnes — Si la syntaxe est correcte, le système analyse les colonnes de sortie et les types de données de la table dynamique.

La précompilation renvoie l'un des résultats suivants :

  • Succès — Le système indique que la syntaxe est correcte et liste les modes d'actualisation pris en charge. Vous pouvez poursuivre avec les configurations restantes.

  • Échec — Si l'instruction SQL contient une erreur ou si la logique ne répond pas aux exigences d'une table dynamique, le système renvoie la cause spécifique. Modifiez l'instruction SQL selon le message affiché, puis relancez la précompilation.

Configurations d'actualisation des données

Configurations courantes

  • Politique d'actualisation

    • Auto-Refresh — (Recommandé) Hologres décide s'il faut actualiser de manière incrémentielle ou complète, ce qui équilibre les performances et la facilité d'utilisation.

    • Incremental Refresh — Force exclusivement l'actualisation incrémentielle. Utilisez cette option lorsque vous avez besoin d'une grande fraîcheur des données.

    • Full Refresh — Recalcule toutes les données à chaque actualisation. Utilisez cette option lorsque la table source ne possède ni clé primaire ni Binlog, ou lorsque la logique de requête est complexe.

  • Mode de déclenchement de l'actualisation — Seule l'option Hologres auto refresh est prise en charge.

  • Automatically Refresh Data — Interrupteur principal de l'actualisation automatique.

  • Data Freshness — Définit la latence maximale acceptable des données et constitue la condition de déclenchement principale de l'actualisation automatique. Le système déclenche les actualisations dynamiquement en fonction des données entrantes afin que la latence de la table dynamique par rapport à la table source reste dans la valeur configurée.

  • Base Table Consumption Mode for Incremental Refresh — Définit comment le Binlog est consommé. Le mode stream (streaming) est le mode par défaut et recommandé, offrant une faible latence.

  • Hologres computing resources

    • Serverless resources — (Recommandé) Utilise les ressources serverless Hologres pour exécuter les actualisations, sans consommer les ressources de calcul de l'instance, ce qui isole les ressources.

    • Local Instance Resources (local) — Utilise les ressources de calcul de l'instance. Si l'instance utilise des entrepôts virtuels (V4.0 ou ultérieur), vous pouvez sélectionner un entrepôt virtuel spécifique.

Configurations de partition

Les éléments de configuration suivants n'apparaissent qu'après avoir sélectionné une colonne de partition. Les tables dynamiques de la nouvelle version utilisent toutes des partitions logiques.

  • Format de partition — (Obligatoire) Définit comment les partitions sont générées à partir des valeurs de la colonne de partition. Par exemple, si le type de colonne est TIMESTAMPTZ et que vous sélectionnez le format yyyy-mm-dd, les partitions sont créées par jour.

  • Étendue d'actualisation des partitions — Définit la plage de partitions actives pour l'actualisation automatique. Par exemple, si vous définissez la plage sur les 7 derniers jours, Hologres actualise automatiquement uniquement les partitions des 7 derniers jours. Les partitions plus anciennes ne sont plus actualisées automatiquement, ce qui permet d'économiser des ressources.

  • Gestion des partitions (réduit par défaut)

    • Période de rétention des partitions — Définit la durée de vie (TTL) d'une partition. Les partitions expirées sont supprimées automatiquement.

    • Période de rétention du stockage chaud pour les données de partition — Fonctionne avec le stockage hiérarchisé chaud et froid pour définir la durée pendant laquelle les données de partition restent dans le stockage chaud (SSD).

Paramètres avancés (propriétés de table)

Les propriétés physiques suivantes s'appliquent à la table dynamique elle-même et sont similaires aux paramètres d'une table Hologres classique.

Parameter

Description

Storage Mode

Hologres prend en charge trois modes de stockage : Column-oriented Storage, Line Deposit et Coexistence of ranks. Le mode par défaut est Column-oriented Storage. Le stockage orienté colonne convient aux requêtes complexes dans les scénarios OLAP, le stockage orienté ligne convient aux requêtes clé-valeur (KV) basées sur la clé primaire (PK), et la coexistence ligne-colonne convient aux deux types de scénarios. Pour plus d'informations, consultez la rubrique Modes de stockage.

Table Group

Sélectionnez le nom Table Group généré lors de la création d'une table interne dans la source de données Hologres. Pour plus d'informations, consultez la rubrique Groupes de tables.

Storage Policy

Hologres propose deux politiques de stockage pour les données : le stockage standard (Thermal storage) et le stockage à accès peu fréquent (Cold storage). Le stockage chaud est un stockage entièrement SSD et le stockage par défaut de Hologres. Il répond aux exigences d'accès aux données à faible latence et haute performance, et constitue le choix le plus efficace et rentable pour la plupart des scénarios. Le stockage froid est un stockage entièrement HDD et répond aux exigences de stockage à faible coût pour les données rarement consultées. Il convient aux très grands ensembles de données qui ne sont pas sensibles à la latence ou qui sont rarement consultés. Pour plus d'informations, consultez la rubrique Politiques de stockage.

Table Data Lifecycle

Personnalisez le cycle de vie maximal des données de la table dynamique.

Binlog

Activez (replica) ou désactivez (none) l'abonnement au Binlog Hologres. Cette fonctionnalité est désactivée par défaut. Pour plus d'informations, consultez la rubrique S'abonner au Binlog Hologres.

Binlog lifecycle

Après avoir activé (replica) l'abonnement au Binlog Hologres, définissez le cycle de vie maximal du Binlog Hologres stocké. Pour plus d'informations, consultez la rubrique S'abonner au Binlog Hologres.

Field Properties

Paramètres des propriétés des colonnes. Configurez la Distribution Column, la Event Time Column, la Clustering Key, la Bitmap Column et les Dictionary Encoding Columns pour le Field Name correspondant, selon les descriptions à l'écran. Pour plus d'informations, consultez la rubrique Propriétés des colonnes.