Este tópico apresenta os resultados de benchmarks de desempenho do Hologres para cargas de trabalho de consulta OLAP, consulta pontual, importação de dados, atualização de dados e ingestão em tempo real. Todos os testes foram executados em instâncias da nuvem pública da Alibaba Cloud.
Resumo dos principais resultados
|
Carga de trabalho |
Instância |
Resultado |
Tendência |
|
Consulta OLAP (TPC-H de 100 GB) |
64 CUs |
V3.1.3: 10,4 s no total |
12% mais rápido que a V2.2.19 |
|
Consulta OLAP (TPC-H de 100 GB) |
128 CUs |
V3.1.3: 7,05 s no total |
8% mais rápido que a V2.2.19 |
|
Consulta OLAP (TPC-H de 1 TB) |
96 CUs |
V4.2.0: 62,17 s no total |
11% mais rápido que a V4.0.4; 39% mais rápido que a V3.0.5 |
|
Consulta pontual de chave/valor |
64 CUs, 500 clientes |
112.435 QPS (chave única) |
O QPS escala linearmente com o tamanho da instância |
|
Importação de dados (122,4 GB no total) |
64 CUs |
MaxCompute: 251 s; COPY via VPC: 1.167 s |
O MaxCompute é 4,6 vezes mais rápido que o COPY via VPC |
|
Ingestão em tempo real (Flink) |
64 CUs |
Pico de 580.234 RPS |
— |
Benchmark TPC-H de 100 GB
Ambiente de teste
Quantidade de linhas por tabela
|
Tabela |
Linhas |
|
LINEITEM |
600.037.902 |
|
ORDERS |
150.000.000 |
|
PARTSUPP |
80.000.000 |
|
PART |
20.000.000 |
|
CUSTOMER |
15.000.000 |
|
SUPPLIER |
1.000.000 |
|
NATION |
25 |
|
REGION |
5 |
Especificações da instância
|
Recurso de computação |
Zona |
Shards |
Observações |
|
64 CUs (64 núcleos de CPU, 256 GB de memória) |
Hangzhou Zone J |
40 |
Configurações padrão da instância |
|
128 CUs (128 núcleos de CPU, 512 GB de memória) |
Hangzhou Zone J |
80 |
Configurações padrão da instância |
Desempenho de consultas OLAP
Todas as consultas foram executadas em tabelas internas do Hologres. O tempo de execução é medido em segundos: quanto menor, melhor. Duplicar os recursos de computação (de 64 CUs para 128 CUs) reduz o tempo de execução proporcionalmente.
Total na V3.1.3: 64 CUs — 10,4 s | 128 CUs — 7,05 s. Em comparação com a V2.2.19, a V3.1.3 reduziu o tempo total de consulta em 12% com 64 CUs e em 8% com 128 CUs.
|
ID da consulta TPC-H |
64 CUs (V3.1.3) |
128 CUs (V3.1.3) |
64 CUs (V2.2.19) |
128 CUs (V2.2.19) |
Melhoria com 64 CUs |
|
1 |
0,48 |
0,36 |
0,55 |
0,34 |
13% |
|
2 |
0,19 |
0,18 |
0,17 |
0,15 |
-12% |
|
3 |
0,43 |
0,28 |
0,38 |
0,29 |
-13% |
|
4 |
0,26 |
0,15 |
0,32 |
0,19 |
19% |
|
5 |
0,53 |
0,41 |
0,68 |
0,48 |
22% |
|
6 |
0,10 |
0,12 |
0,10 |
0,08 |
0% |
|
7 |
0,48 |
0,34 |
0,55 |
0,36 |
13% |
|
8 |
0,48 |
0,37 |
0,51 |
0,38 |
6% |
|
9 |
1,52 |
0,91 |
1,62 |
1,00 |
6% |
|
10 |
0,81 |
0,43 |
0,69 |
0,47 |
-17% |
|
11 |
0,19 |
0,17 |
0,37 |
0,32 |
49% |
|
12 |
0,19 |
0,14 |
0,22 |
0,15 |
14% |
|
13 |
0,53 |
0,36 |
0,67 |
0,37 |
21% |
|
14 |
0,19 |
0,13 |
0,19 |
0,13 |
0% |
|
15 |
0,34 |
0,19 |
0,36 |
0,23 |
6% |
|
16 |
0,35 |
0,29 |
0,41 |
0,33 |
15% |
|
17 |
0,21 |
0,18 |
0,22 |
0,16 |
5% |
|
18 |
1,57 |
0,89 |
2,02 |
0,94 |
22% |
|
19 |
0,26 |
0,19 |
0,25 |
0,17 |
-4% |
|
20 |
0,24 |
0,22 |
0,24 |
0,27 |
0% |
|
21 |
0,79 |
0,56 |
1,03 |
0,63 |
23% |
|
22 |
0,26 |
0,18 |
0,28 |
0,22 |
7% |
|
Total |
10,4 |
7,05 |
11,83 |
7,66 |
12% |
Desempenho de consultas pontuais de chave/valor
Todas as consultas foram executadas em tabelas internas do Hologres. Versão do software: r1.1.42. Cada cenário foi executado continuamente por 5 minutos. As consultas por segundo (QPS) escalam linearmente conforme o tamanho da instância aumenta.
Cenário 1 — busca por chave única
SELECT O_ORDERKEY, O_CUSTKEY, O_ORDERSTATUS, O_TOTALPRICE,
O_ORDERDATE, O_ORDERPRIORITY, O_CLERK, O_SHIPPRIORITY, O_COMMENT
FROM public.orders_row
WHERE o_orderkey = {parameter};
|
Instância |
Clientes simultâneos |
QPS (incluindo tempo de conexão) |
QPS (excluindo tempo de conexão) |
Latência média |
|
64 CUs |
500 |
112.435 |
112.443 |
4.447 ms |
|
128 CUs |
1.000 |
242.755 |
242.772 |
4.119 ms |
Cenário 2 — busca com cláusula IN de 9 chaves
SELECT O_ORDERKEY, O_CUSTKEY, O_ORDERSTATUS, O_TOTALPRICE,
O_ORDERDATE, O_ORDERPRIORITY, O_CLERK, O_SHIPPRIORITY, O_COMMENT
FROM public.orders_row
WHERE o_orderkey IN (
{parameter1}, {parameter2}, {parameter3},
{parameter4}, {parameter5}, {parameter6},
{parameter7}, {parameter8}, {parameter9}
);
|
Instância |
Clientes simultâneos |
QPS (incluindo tempo de conexão) |
QPS (excluindo tempo de conexão) |
Latência média |
|
64 CUs |
500 |
27.632 |
27.634 |
18.094 ms |
|
128 CUs |
1.000 |
90.086 |
90.092 |
11.100 ms |
Desempenho de gravação de dados
Todos os resultados utilizam 64 CUs e medem o tempo em segundos para importar dados para tabelas internas do Hologres.
A instrução COPY importa um arquivo por vez para uma tabela. A importação simultânea não está disponível com o comando COPY.
Principais conclusões:
A importação via Virtual Private Cloud (VPC) é significativamente mais rápida que a importação pela Internet, pois o desempenho do COPY é limitado pela largura de banda.
A importação por meio de uma tabela externa do MaxCompute é mais rápida que o COPY em ambos os caminhos de rede.
|
Tabela |
Linhas |
Tamanho dos dados |
COPY (Internet) |
COPY (VPC) |
Tabela externa do MaxCompute |
|
LINEITEM |
600.037.902 |
73,6 GB |
3.070,453 |
694.364 |
148.165 |
|
ORDERS |
150.000.000 |
16,4 GB |
691.060 |
172.529 |
37.741 |
|
PARTSUPP |
80.000.000 |
2,3 GB |
468,560 |
107.092 |
18,488 |
|
PART |
20.000.000 |
11,3 GB |
96.342 |
24.020 |
8.083 |
|
CUSTOMER |
15.000.000 |
2,3 GB |
95,190 |
22.937 |
10.363 |
|
SUPPLIER |
1.000.000 |
132 MB |
5,057 |
1.803 |
1.503 |
|
NATION |
25 |
2 KB |
0.580 |
0.584 |
0.747 |
|
REGION |
5 |
0,375 KB |
0.168 |
0.153 |
0.430 |
|
ORDERS_ROW |
150.000.000 |
16,4 GB |
717.653 |
143.800 |
25.676 |
|
Total |
122,4 GB |
722.080,410 |
1.167,282 |
251.196 |
O gráfico de barras abaixo compara os tempos de importação entre os três métodos. As barras azuis representam o COPY via Internet, as verdes representam o COPY via VPC e as cinzas representam a tabela externa do MaxCompute. Valores menores indicam uma importação mais rápida.

O eixo x representa o nome da tabela. O eixo y representa o tempo de importação em segundos.
Desempenho de atualização de dados
Todos os resultados baseiam-se em operações de upsert em tabelas internas do Hologres. Versão do software: r1.1.42. Cada cenário foi executado continuamente por 5 minutos. O QPS escala linearmente conforme o tamanho da instância aumenta.
INSERT INTO public.orders_row(
o_orderkey, o_custkey, o_orderstatus, o_totalprice,
o_orderdate, o_orderpriority, o_clerk, o_shippriority, o_comment
) VALUES (
{parameter}, 1, 'demo', 1.1, '2021-01-01', 'demo', 'demo', 1, 'demo'
)
ON CONFLICT(o_orderkey)
DO UPDATE SET (
o_orderkey, o_custkey, o_orderstatus, o_totalprice,
o_orderdate, o_orderpriority, o_clerk, o_shippriority, o_comment
) = ROW(excluded.*);
|
Instância |
Clientes simultâneos |
QPS (incluindo tempo de conexão) |
QPS (excluindo tempo de conexão) |
Latência média |
|
64 CUs |
500 |
92.006 |
92.000 |
5.435 ms |
|
128 CUs |
1.000 |
191.761 |
191.771 |
5.215 ms |
Benchmark TPC-H de 1 TB
Ambiente de teste
Quantidade de linhas por tabela
|
Tabela |
Linhas |
Tamanho dos dados |
|
LINEITEM |
5.999.989.709 |
752,27 GB |
|
ORDERS |
1.500.000.000 |
167,11 GB |
|
PARTSUPP |
800.000.000 |
114,45 GB |
|
PART |
150.000.000 |
22,94 GB |
|
CUSTOMER |
200.000.000 |
22,85 GB |
|
SUPPLIER |
10.000.000 |
1,33 GB |
|
NATION |
25 |
2,15 KB |
|
REGION |
5 |
0,38 KB |
Configuração do ambiente de teste
|
Parâmetro |
Descrição |
|
Versão do software |
Hologres V4.2.0 |
|
Recursos de computação |
96 CUs (96 núcleos de CPU, 384 GB de memória) |
|
Capacidade de armazenamento |
1.000 GB |
|
Shards |
60 |
|
Cluster de teste |
China (Hangzhou) Zone J |
|
Tipo de máquina |
Processador Intel de 7ª geração |
|
Script de teste |
Script oficial de benchmark TPC-H |
Desempenho de consultas OLAP
Todas as consultas foram executadas em tabelas internas do Hologres. O tempo de execução é medido em segundos: quanto menor, melhor.
Total na V4.2.0: 62,17 s — 11% mais rápido que a V4.0.4 (69,99 s) e 39% mais rápido que a V3.0.5 (101,16 s).
|
ID da consulta TPC-H |
V4.2.0 |
V4.0.4 |
V3.0.5 |
|
1 |
2,43 |
3,07 |
8,47 |
|
2 |
0,31 |
0,34 |
0,36 |
|
3 |
3,53 |
3,98 |
5,77 |
|
4 |
1,46 |
1,53 |
1,71 |
|
5 |
4,67 |
4,55 |
7,65 |
|
6 |
0,18 |
0,27 |
0,34 |
|
7 |
1,72 |
3,48 |
3,56 |
|
8 |
1,98 |
1,97 |
5,61 |
|
9 |
13,00 |
13,28 |
16,83 |
|
10 |
3,38 |
4,33 |
5,61 |
|
11 |
2,21 |
1,79 |
2,23 |
|
12 |
0,63 |
0,69 |
0,84 |
|
13 |
4,11 |
4,56 |
5,78 |
|
14 |
0,69 |
0,78 |
0,79 |
|
15 |
2,10 |
1,87 |
2,27 |
|
16 |
1,63 |
2,02 |
1,64 |
|
17 |
1,06 |
0,93 |
4,64 |
|
18 |
9,08 |
11,51 |
13,74 |
|
19 |
0,82 |
0,86 |
3,00 |
|
20 |
0,82 |
0,76 |
0,95 |
|
21 |
4,40 |
4,73 |
7,20 |
|
22 |
1,81 |
2,72 |
2,17 |
|
Total |
62,17 |
69,99 |
101,16 |
Ingestão em tempo real com o Realtime Compute for Apache Flink
Ambiente de teste
Instância do Hologres
|
Recurso de computação |
Versão do software |
Shards |
Observações |
|
64 CUs (64 núcleos de CPU, 256 GB de memória) |
r1.1.53 |
40 |
Configurações padrão da instância |
Configuração do Flink
|
Parâmetro |
Valor |
|
Versão do mecanismo |
vvr-4.0.12-flink-1.13 |
|
Modo de configuração |
Basic mode |
|
Paralelismo |
15 |
|
CPU do JobManager |
1 |
|
Memória do JobManager |
1 GiB |
|
CPU do TaskManager |
1 |
|
Memória do TaskManager |
6 GiB |
Resultados dos testes
Durante a janela de testes das 19:35 às 19:50 de 8 de abril de 2022, o pico de registros por segundo (RPS) atingiu 580.234 e o mínimo foi de 357.729 RPS.

