Tous les produits
Search
Centre de documentation

Hologres:Extensions

Dernière mise à jour :Aug 11, 2026

Hologres prend en charge un ensemble d'extensions intégrées qui enrichissent les capacités de votre base de données, du calcul vectoriel et de l'analyse spatiale à la gestion des autorisations et au masquage des données. Cette rubrique répertorie toutes les extensions prises en charge et explique comment les charger, les consulter et les désinstaller.

Extensions prises en charge | Charger une extension | Consulter les extensions chargées | Désinstaller une extension | FAQ

Limites

  • Une extension ne peut être chargée que dans un seul schéma par base de données. Par exemple, si vous chargez une extension dans le schéma par défaut, vous ne pourrez pas la charger dans un autre schéma de cette même base de données.

  • Chargez une extension dans le schéma système pg_catalog pour la rendre disponible dans tous les schémas de la base de données. Si aucun schéma n'est spécifié, l'extension est chargée par défaut dans le schéma public.

  • Seuls les comptes disposant des autorisations Superuser peuvent charger ou désinstaller des extensions.

  • Actuellement, seules les extensions système intégrées sont prises en charge. Les extensions personnalisées ou externes ne peuvent pas être chargées.

Extensions prises en charge

ExtensionDescriptionContrainte de schémaCommande de chargement
spm, slpmActive le modèle d'autorisations simples (SPM) ou le modèle d'autorisations simples au niveau du schéma (SLPM). Consultez Utiliser le SPM et Utiliser le SLPM.Chargée par défaut dans le schéma hologres. Le schéma ne peut pas être modifié.CREATE EXTENSION IF NOT EXISTS spm;
hive_compatibleAjoute la fonction get_json_object(). Consultez Fonctions JSON.Doit être chargée dans pg_catalog.CREATE EXTENSION IF NOT EXISTS hive_compatible SCHEMA pg_catalog;
hologres_fdwActive les requêtes inter-bases de données (bêta). Consultez Requêtes inter-bases de données.Instances dédiées uniquement. Doit être chargée dans pg_catalog.CREATE EXTENSION IF NOT EXISTS hologres_fdw SCHEMA pg_catalog;
dlf_fdwLit les données OSS via DLF (Data Lake Formation). Consultez Accélérer l'accès aux lacs de données OSS avec DLF.Doit être chargée dans pg_catalog.CREATE EXTENSION IF NOT EXISTS dlf_fdw SCHEMA pg_catalog;
proximaActive le calcul vectoriel Proxima. Consultez Calcul vectoriel Proxima.Instances dédiées uniquement. Doit être chargée dans pg_catalog.CREATE EXTENSION IF NOT EXISTS proxima SCHEMA pg_catalog;
flow_analysisAjoute des fonctions de segmentation utilisateur et d'analyse en entonnoir. Consultez Fonctions d'entonnoir et Fonctions de segmentation utilisateur.Chargée par défaut dans le schéma public. Ne peut être chargée que dans public.CREATE EXTENSION IF NOT EXISTS flow_analysis;
roaringbitmapAjoute des fonctions Roaring Bitmap (RB). Consultez Fonctions RoaringBitmap.Instances dédiées uniquement. Chargée par défaut dans le schéma public. Ne peut être chargée que dans public.CREATE EXTENSION IF NOT EXISTS roaringbitmap;
hg_binlogPermet la consommation des données Binlog Hologres. Consultez Consommer les données Binlog Hologres avec JDBC.Instances dédiées uniquement. Chargée par défaut dans le schéma hologres. Le schéma ne peut pas être modifié.CREATE EXTENSION IF NOT EXISTS hg_binlog;
postgisAjoute des fonctions spatiales PostGIS. Consultez Fonctions spatiales PostGIS.Instances dédiées uniquement. Doit être chargée dans pg_catalog.CREATE EXTENSION IF NOT EXISTS postgis SCHEMA pg_catalog;
clickhouseAjoute des fonctions compatibles ClickHouse pour la migration. Consultez Importer des données depuis ClickHouse.Instances dédiées uniquement. Chargée par défaut dans le schéma public. Ne peut être chargée que dans public.CREATE EXTENSION IF NOT EXISTS clickhouse;
pgcryptoAjoute la fonction GEN_RANDOM_UUID. Consultez Fonctions de données aléatoires.Doit être chargée dans pg_catalog.CREATE EXTENSION IF NOT EXISTS pgcrypto SCHEMA pg_catalog;
bsiAjoute des fonctions Bit Slice Index (BSI). Consultez Fonctions BSI.Chargée par défaut dans le schéma public. Ne peut être chargée que dans public.CREATE EXTENSION IF NOT EXISTS bsi;
hg_anonActive le masquage des données. Consultez Masquage des données.Ne peut être chargée que dans pg_catalog.CREATE EXTENSION IF NOT EXISTS hg_anon SCHEMA pg_catalog;
mysql_compatibleAjoute des fonctions compatibles MySQL. Consultez Fonctions compatibles MySQL.Chargée par défaut dans le schéma hologres. Le schéma ne peut pas être modifié.CREATE EXTENSION IF NOT EXISTS mysql_compatible;

Charger une extension

Le chargement d'une extension dans pg_catalog la rend disponible dans tous les schémas de la base de données. Si vous chargez une extension dans un autre schéma, ses fonctions ne sont accessibles que via le search_path de ce schéma.

Remarque

Certaines extensions ne peuvent être chargées que dans un schéma spécifique. Vérifiez la colonne Schema constraint du tableau ci-dessus avant d'exécuter la commande de chargement.

-- Requires Superuser permissions
CREATE EXTENSION IF NOT EXISTS <extension_name> SCHEMA <schema_name>;
Paramètre Description
extension_name Nom de l'extension. Consultez le tableau des extensions prises en charge pour connaître les valeurs valides.
schema_name Schéma dans lequel charger l'extension. Utilisez pg_catalog pour une disponibilité dans toute la base de données. La valeur par défaut est public si ce paramètre est omis.

Exemple : Chargez l'extension postgis dans pg_catalog :

CREATE EXTENSION IF NOT EXISTS postgis SCHEMA pg_catalog;

Consulter les extensions chargées dans la base de données actuelle

Exécutez la requête suivante pour répertorier toutes les extensions chargées dans la base de données actuelle, y compris celles chargées par défaut :

SELECT
    e.extname AS "Name",
    e.extversion AS "Version",
    n.nspname AS "Schema",
    c.description AS "Description"
FROM
    pg_catalog.pg_extension e
    LEFT JOIN pg_catalog.pg_namespace n ON n.oid = e.extnamespace
    LEFT JOIN pg_catalog.pg_description c ON c.objoid = e.oid
        AND c.classoid = 'pg_catalog.pg_extension'::pg_catalog.regclass
    ORDER BY 1;

Désinstaller une extension

Important

N'utilisez pas DROP EXTENSION <extension_name> CASCADE. L'option CASCADE supprime tous les objets dépendant de l'extension, y compris les données PostGIS, RoaringBitmap, Proxima, Binlog et BSI, ainsi que les métadonnées, les tables, les vues et les données serveur.

-- Requires Superuser permissions
DROP EXTENSION <extension_name>;
Paramètre Description
extension_name Nom de l'extension à désinstaller. Consultez le tableau des extensions prises en charge pour connaître les valeurs valides.

Exemple : Interroger une extension entre plusieurs schémas

Certaines extensions, telles que roaringbitmap, ne peuvent être chargées que dans le schéma public. Si votre table se trouve dans un schéma différent, l'appel d'une fonction RB sans préfixe de schéma échoue avec l'erreur function xxx does not exist. Pour résoudre ce problème, ajoutez le préfixe public. à la fonction.

L'exemple suivant illustre le problème et sa solution.

  1. Créez une table dans un schéma autre que public et remplissez-la avec des données.

    CREATE EXTENSION roaringbitmap;
    
    CREATE SCHEMA test;
    
    -- Create a table in the test schema
    CREATE TABLE test.t1 (
        id integer,
        bitmap roaringbitmap
    );
    
    -- Insert a bitmap from an array
    INSERT INTO test.t1
    SELECT 1, RB_BUILD(ARRAY[1, 2, 3, 4, 5, 6, 7, 8, 9, 200]);
    
    -- Insert a bitmap aggregated from a series
    INSERT INTO test.t1
    SELECT 2, RB_BUILD_AGG(e)
    FROM GENERATE_SERIES(1, 100) e;
  2. Interrogez à l'aide d'une fonction RB alors que search_path est défini sur public. La requête aboutit.

    SELECT RB_OR(a.bitmap, b.bitmap)
    FROM (SELECT bitmap FROM test.t1 WHERE id = 1) AS a,
         (SELECT bitmap FROM test.t1 WHERE id = 2) AS b;
  3. Basculez search_path vers le schéma test et exécutez la même requête. La requête échoue.

    SET search_path TO test;
    
    SELECT RB_OR(a.bitmap, b.bitmap)
    FROM (SELECT bitmap FROM test.t1 WHERE id = 1) AS a,
         (SELECT bitmap FROM test.t1 WHERE id = 2) AS b;
    -- ERROR: function rb_or(public.roaringbitmap, public.roaringbitmap) does not exist
  4. Ajoutez le préfixe public. à la fonction pour l'appeler depuis le schéma correct.

    SELECT public.RB_OR(a.bitmap, b.bitmap)
    FROM (SELECT bitmap FROM test.t1 WHERE id = 1) AS a,
         (SELECT bitmap FROM test.t1 WHERE id = 2) AS b;

FAQ

Une extension a été chargée dans le mauvais schéma. Après avoir changé de schéma, ses fonctions sont inaccessibles et renvoient l'erreur function xxx does not exist.

Ce problème survient lorsqu'une extension est chargée dans le schéma public mais que le search_path actif n'inclut plus public. Désinstallez l'extension sans utiliser CASCADE, puis rechargez-la dans pg_catalog pour la rendre accessible depuis tous les schémas :

DROP EXTENSION hologres_fdw;

CREATE EXTENSION IF NOT EXISTS hologres_fdw SCHEMA pg_catalog;