Hologres shared cluster (Lakehouse Acceleration) adopte une approche serverless pour accélérer les requêtes sur les données des entrepôts de données MaxCompute et des lacs de données OSS. Il prend également en charge l'analytique fédérée entre les lacs et les entrepôts de données. Ce service utilise la même méthode de facturation que le shared cluster d'origine (MaxCompute BI Acceleration). Vous ne payez que pour les requêtes que vous exécutez ; aucun frais n'est appliqué lorsque l'instance est inactive.
Modèle de facturation
La formule de calcul des coûts est la suivante :
Cost per query job = Amount of input data scanned × Unit price
Règles de facturation principales :
| Règle | Détail |
|---|---|
| Frais minimum | 10 Mo par requête. Les requêtes qui analysent moins de 10 Mo sont facturées sur la base de 10 Mo afin de couvrir les frais généraux de démarrage de la requête. |
| Cycle de facturation | Les factures sont générées toutes les heures et contiennent les données des deux heures précédentes. |
| Aucun frais d'inactivité | Aucun frais n'est encouru lorsqu'aucune requête n'est en cours d'exécution. |
| Ressources dédiées | Le shared cluster (Lakehouse Acceleration) utilise des ressources de calcul dédiées. |
Tarification
À compter du 8 mars 2023, toutes les requêtes sur les instances shared cluster (Lakehouse Acceleration) bénéficient d'une remise de 50 %. Cette offre prend fin le 1er avril 2025.
| Région | Prix initial | Prix promotionnel | Unité |
|---|---|---|---|
| China (Beijing) | 0.066705 | 0.0333525 | USD/GB |
| China (Shanghai) | 0.066705 | 0.0333525 | USD/GB |
| China (Hangzhou) | 0.066705 | 0.0333525 | USD/GB |
| China (Shenzhen) | 0.066705 | 0.0333525 | USD/GB |
| Singapore | 0.084049 | 0.0420245 | USD/GB |
Réduire les coûts des requêtes
Trois techniques permettent de réduire le volume de données analysées et donc votre facture :
Appliquez des filtres de partition : Lors de l'interrogation de tables partitionnées, ajoutez des conditions de filtrage par partition pour ignorer les partitions non pertinentes.
Sélectionnez moins de colonnes : Interrogez uniquement les champs dont vous avez besoin au lieu d'utiliser
SELECT *.Utilisez des tables Hash Clustering : Convertissez les tables MaxCompute en tables Hash Clustering pour activer l'élimination des buckets (bucket pruning), la poussée des agrégations (aggregation pushdown) et l'optimisation du stockage. Pour plus de détails, consultez Hash Clustering.
Consulter votre volume d'analyse
Autorisations
L'accès aux données de volume d'analyse dans hologres.hg_query_log dépend de votre rôle :
| Rôle | Étendue |
|---|---|
| Superuser | Toutes les bases de données de l'instance |
| Membre du groupe pg_read_all_stats | Toutes les bases de données de l'instance |
| db_admin (modèle d'autorisation simple (SPM) ou modèle d'autorisation au niveau du schéma (SLPM) activé) | Base de données actuelle uniquement |
| Utilisateur standard | Requêtes propres dans la base de données actuelle uniquement |
Accorder l'accès superuser
-- Replace "Alibaba Cloud account ID" with the actual username.
-- For a RAM user, add "p4_" before the account ID.
ALTER USER "Alibaba Cloud account ID" SUPERUSER;
Accorder l'accès pg_read_all_stats
GRANT pg_read_all_stats TO "Alibaba Cloud account ID"; -- Standard PostgreSQL authorization model
CALL spm_grant('pg_read_all_stats', 'Alibaba Cloud account ID'); -- SPM
CALL slpm_grant('pg_read_all_stats', 'Alibaba Cloud account ID'); -- SLPM
Accorder l'accès db_admin (base de données actuelle uniquement)
CALL spm_grant('<db_name>_admin', 'Alibaba Cloud account ID'); -- SPM
CALL slpm_grant('<db_name>.admin', 'Alibaba Cloud account ID'); -- SLPM
Pour un aperçu complet de la gestion des autorisations, consultez Permission management overview.
Si log_min_duration_statement est défini pour l'instance, hg_query_log n'enregistre que les instructions SQL dont le temps d'exécution atteint ou dépasse ce seuil. Les détails de facturation des requêtes plus rapides n'apparaîtront pas. Pour vérifier le seuil actuel :
SHOW log_min_duration_statement;
Interroger le volume d'analyse agrégé par jour
Utilisez cette requête pour obtenir les totaux d'analyse quotidiens sur une plage de temps donnée. Un accès superuser est requis.
Syntaxe
SELECT
to_char(query_end, 'DD Mon YYYY') AS day,
ROUND(
SUM(
CASE WHEN read_bytes < 10 * 1024 * 1024
THEN 10 * 1024 * 1024
ELSE read_bytes
END
) / 1024 / 1024
) AS scan_size_mb, -- 10 MB minimum applied per query
COUNT(*) AS sql_count
FROM hologres.hg_query_log
WHERE status = 'SUCCESS'
AND command_tag IN ('SELECT')
AND read_bytes IS NOT NULL
AND query_end >= 'start_time'::TIMESTAMPTZ
AND query_end < 'end_time'::TIMESTAMPTZ
GROUP BY 1
ORDER BY 3 DESC;
Exemple : Interroger le volume d'analyse de 10 h 00 à 11 h 00 le 1er janvier 2022 (UTC+8)
SELECT
to_char(query_end, 'DD Mon YYYY') AS day,
ROUND(
SUM(
CASE WHEN read_bytes < 10 * 1024 * 1024
THEN 10 * 1024 * 1024
ELSE read_bytes
END
) / 1024 / 1024
) AS scan_size_mb,
COUNT(*) AS sql_count
FROM hologres.hg_query_log
WHERE status = 'SUCCESS'
AND command_tag IN ('SELECT')
AND read_bytes IS NOT NULL
AND query_end >= '2022-01-01 10:00:00+08'::TIMESTAMPTZ
AND query_end < '2022-01-01 11:00:00+08'::TIMESTAMPTZ
GROUP BY 1
ORDER BY 3 DESC;
Interroger le volume d'analyse par instruction SQL
Utilisez cette requête pour afficher le volume d'analyse facturable pour chaque instruction SQL individuelle sur une plage de temps donnée. Un accès superuser est requis.
Tous les exemples utilisent billing_read_bytes — le volume d'analyse avec le minimum de 10 Mo appliqué — comme champ utilisé pour le calcul des coûts.
Syntaxe
SELECT
usename,
status,
query_id,
datname,
command_tag,
duration,
message,
query_start,
query_end,
query_date,
query,
CASE WHEN read_bytes < 10 * 1024 * 1024
THEN 10 * 1024 * 1024
ELSE read_bytes
END AS billing_read_bytes, -- 10 MB minimum applied
application_name
FROM hologres.hg_query_log
WHERE status = 'SUCCESS'
AND command_tag IN ('SELECT')
AND read_bytes IS NOT NULL
AND query_end >= 'start_time'::TIMESTAMPTZ
AND query_end < 'end_time'::TIMESTAMPTZ;
Le champ billing_read_bytes représente le volume de données analysées utilisé pour la facturation.
Exemple : Interroger le volume d'analyse par instruction de 10 h 00 à 11 h 00 le 1er mars 2022 (UTC+8)
SELECT
usename,
status,
query_id,
datname,
command_tag,
duration,
message,
query_start,
query_end,
query_date,
query,
CASE WHEN read_bytes < 10 * 1024 * 1024
THEN 10 * 1024 * 1024
ELSE read_bytes
END AS billing_read_bytes,
application_name
FROM hologres.hg_query_log
WHERE status = 'SUCCESS'
AND command_tag IN ('SELECT')
AND read_bytes IS NOT NULL
AND query_end >= '2022-03-01 10:00:00+08'::TIMESTAMPTZ
AND query_end < '2022-03-01 11:00:00+08'::TIMESTAMPTZ;
Afficher les détails des requêtes
Un superuser peut afficher les détails des requêtes de tous les utilisateurs. Un utilisateur Resource Access Management (RAM) ne peut afficher que ses propres instructions SQL.
SELECT usename, status, query_id, command_tag, duration, query, read_bytes, application_name
FROM hologres.hg_query_log;
Pour plus d'informations, consultez Query management.
Gestion du cycle de vie
Après l'achat et l'activation d'une instance shared cluster (Lakehouse Acceleration), le système agrège les données de requête de la veille, génère une facture et déduit automatiquement les frais de votre compte.
Après avoir acheté et activé une instance Hologres shared cluster (Lakehouse Acceleration) depuis le site web Alibaba Cloud, vous pouvez commencer à l'utiliser. Le système agrège ensuite les données de toutes les requêtes SQL de la veille, génère une facture et déduit automatiquement les frais de votre compte.
Si votre compte Alibaba Cloud présente un impayé, toutes les instances associées à ce compte passent à l'état Overdue. Si le montant total des impayés est inférieur à 1 000 USD, l'instance continue de fonctionner normalement.
Lorsque le montant total des impayés atteint 1 000 USD, le système tente d'effectuer le prélèvement. Si le prélèvement échoue, l'instance continue de fonctionner normalement pendant 14 jours.
Le 15e jour suivant l'échec du prélèvement, le service de l'instance est suspendu. L'instance passe à un état verrouillé et ne peut plus être accessible. Aucune facture n'est générée pendant cette période.
Le 15e jour suivant la suspension du service, l'instance est libérée. Cela signifie que l'instance est supprimée de la console et que toutes ses données sont purgées et ne peuvent pas être récupérées.
Le tableau suivant décrit ce qui se produit lorsqu'un paiement est en retard :
| Étape | Condition | Résultat |
|---|---|---|
| État Overdue | Montant des impayés < 1 000 USD | L'instance continue de fonctionner normalement |
| Échec du prélèvement | Le montant des impayés atteint 1 000 USD ; le prélèvement échoue | L'instance fonctionne normalement pendant 14 jours supplémentaires |
| Service suspendu | 15e jour suivant l'échec du prélèvement | L'instance passe à un état verrouillé ; elle n'est pas accessible ; aucune facture n'est générée |
| Instance libérée | 15e jour suivant la suspension du service | L'instance est supprimée de la console ; toutes les données sont purgées et ne peuvent pas être récupérées |