O cluster compartilhado do Hologres (Lakehouse Acceleration) usa uma abordagem serverless para acelerar consultas em dados de data warehouses do MaxCompute e data lakes do OSS. Ele também oferece suporte a análises federadas entre data lakes e warehouses. Este serviço adota o mesmo método de faturamento do cluster compartilhado original (MaxCompute BI Acceleration). Você paga apenas pelas consultas executadas — não há cobrança quando a instância está ociosa.
Modelo de faturamento
A fórmula de faturamento é:
Cost per query job = Amount of input data scanned × Unit price
Principais regras de faturamento:
|
Regra |
Detalhe |
|
Cobrança mínima |
10 MB por consulta. Consultas que leem menos de 10 MB são faturadas como 10 MB para cobrir a sobrecarga de inicialização. |
|
Ciclo de faturamento |
As faturas são geradas por hora e contêm dados das duas horas anteriores. |
|
Sem cobrança por ociosidade |
Não há custos quando nenhuma consulta está em execução. |
|
Recursos dedicados |
O cluster compartilhado (Lakehouse Acceleration) usa recursos de computação dedicados. |
Preços
A partir de 8 de março de 2023, todas as consultas em instâncias de cluster compartilhado (Lakehouse Acceleration) recebem um desconto de 50%. Esta oferta termina em 1º de abril de 2025.
|
Região |
Preço original |
Preço promocional |
Unidade |
|
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 |
|
Singapura |
0,084049 |
0,0420245 |
USD/GB |
Reduzir custos de consulta
Três técnicas diminuem o volume de dados lidos e reduzem sua fatura:
Aplique filtros de partição: Ao consultar tabelas particionadas, adicione condições de filtro de partição para ignorar partições irrelevantes.
Selecione menos colunas: Consulte apenas os campos necessários em vez de usar
SELECT *.Use tabelas Hash Clustering: Converta tabelas do MaxCompute para tabelas Hash Clustering para ativar pruning de buckets, pushdown de agregação e otimização de armazenamento. Consulte Hash Clustering para obter detalhes.
Consultar volume de leitura
Permissões
O acesso aos dados de volume de leitura em hologres.hg_query_log depende da sua função:
|
Função |
Escopo |
|
Superusuário |
Todos os bancos de dados na instância |
|
Membro do grupo pg_read_all_stats |
Todos os bancos de dados na instância |
|
db_admin (modelo de permissão simples (SPM) ou modelo de permissão no nível de schema (SLPM) ativado) |
Apenas o banco de dados atual |
|
Usuário comum |
Apenas as próprias consultas no banco de dados atual |
Conceder acesso de superusuário
-- 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;
Conceder acesso ao 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
Conceder acesso ao db_admin (apenas banco de dados atual)
CALL spm_grant('<db_name>_admin', 'Alibaba Cloud account ID'); -- SPM
CALL slpm_grant('<db_name>.admin', 'Alibaba Cloud account ID'); -- SLPM
Para obter uma visão geral completa do gerenciamento de permissões, consulte Visão geral do gerenciamento de permissões.
Se log_min_duration_statement estiver definido para a instância, o hg_query_log registrará apenas instruções SQL cujo tempo de execução atinja ou exceda esse limiar. Os detalhes de faturamento de consultas mais rápidas não aparecerão. Para verificar o limiar atual:
SHOW log_min_duration_statement;
Consultar volume de leitura agregado por dia
Use esta consulta para obter os totais diários de leitura em um intervalo de tempo. Requer acesso de superusuário.
Sintaxe
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;
Exemplo: Consultar o volume de leitura das 10:00 às 11:00 em 1º de janeiro de 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;
Consultar volume de leitura por instrução SQL
Use esta consulta para visualizar o volume de leitura faturável de cada instrução SQL individual em um intervalo de tempo. Requer acesso de superusuário.
Todos os exemplos usam billing_read_bytes — o volume de leitura com o mínimo de 10 MB aplicado — como campo para cálculo de custo.
Sintaxe
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;
O campo billing_read_bytes representa o volume de dados lidos usado para faturamento.
Exemplo: Consultar o volume de leitura por instrução das 10:00 às 11:00 em 1º de março de 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;
Visualizar detalhes da consulta
Um superusuário pode visualizar detalhes de consultas de todos os usuários. Um usuário do Resource Access Management (RAM) visualiza apenas suas próprias instruções SQL.
SELECT usename, status, query_id, command_tag, duration, query, read_bytes, application_name
FROM hologres.hg_query_log;
Para mais informações, consulte Gerenciamento de consultas.
Gerenciamento de ciclo de vida
Após comprar e ativar uma instância de cluster compartilhado (Lakehouse Acceleration), o sistema agrega os dados de consulta do dia anterior, gera uma fatura e deduz automaticamente a taxa da sua conta.
Depois de comprar e ativar uma instância de cluster compartilhado do Hologres (Lakehouse Acceleration) no site da Alibaba Cloud, você pode começar a usá-la. O sistema então agrega os dados de todas as consultas SQL do dia anterior, gera uma fatura e deduz automaticamente a taxa da sua conta.
Caso sua conta da Alibaba Cloud tenha um pagamento em atraso, todas as instâncias dessa conta entrarão em estado de Atraso. Se o valor total em atraso for inferior a 1.000 USD, a instância continuará funcionando normalmente.
Quando o valor total em atraso atingir 1.000 USD, o sistema tentará deduzir o pagamento. Se a dedução falhar, a instância continuará funcionando normalmente por 14 dias.
No 15º dia após a falha na dedução, o serviço da instância será suspenso. A instância entrará em estado bloqueado e não poderá ser acessada. Nenhuma fatura será gerada durante esse período.
No 15º dia após a suspensão do serviço, a instância será liberada. Isso significa que a instância é excluída do console, e todos os seus dados são removidos permanentemente e não podem ser recuperados.
A tabela a seguir descreve o que acontece quando um pagamento entra em atraso:
|
Estágio |
Condição |
Resultado |
|
Estado de atraso |
Valor em atraso < 1.000 USD |
A instância continua funcionando normalmente |
|
Falha na dedução |
Valor em atraso atinge 1.000 USD; falha na dedução |
A instância funciona normalmente por mais 14 dias |
|
Serviço suspenso |
15º dia após falha na dedução |
A instância entra em estado bloqueado; não pode ser acessada; nenhuma fatura gerada |
|
Instância liberada |
15º dia após suspensão do serviço |
Instância excluída do console; todos os dados removidos permanentemente e irrecuperáveis |