Este tema presenta los resultados de benchmarks de rendimiento de Hologres en cargas de trabajo de consultas OLAP, consultas puntuales, importación de datos, actualización de datos e ingesta en tiempo real. Todas las pruebas se ejecutaron en instancias de la nube pública de Alibaba Cloud.
Resumen de resultados clave
|
Workload |
Instance |
Result |
Trend |
|
Consulta OLAP (TPC-H de 100 GB) |
64 CUs |
V3.1.3: 10.4 s en total |
12 % más rápido que V2.2.19 |
|
Consulta OLAP (TPC-H de 100 GB) |
128 CUs |
V3.1.3: 7.05 s en total |
8 % más rápido que V2.2.19 |
|
Consulta OLAP (TPC-H de 1 TB) |
96 CUs |
V4.2.0: 62.17 s en total |
11 % más rápido que V4.0.4; 39 % más rápido que V3.0.5 |
|
Consulta puntual clave/valor |
64 CUs, 500 clientes |
112,435 QPS (clave única) |
Las QPS escalan linealmente con el tamaño de la instancia |
|
Importación de datos (122.4 GB en total) |
64 CUs |
MaxCompute: 251 s; COPY por VPC: 1,167 s |
MaxCompute es 4.6 veces más rápido que COPY por VPC |
|
Ingesta en tiempo real (Flink) |
64 CUs |
Pico de 580,234 RPS |
— |
Benchmark TPC-H de 100 GB
Entorno de prueba
Recuento de filas por tabla
|
Table |
Rows |
|
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 |
Especificaciones de la instancia
|
Computing resource |
Zone |
Shards |
Notes |
|
64 CUs (64 núcleos de CPU, 256 GB de memoria) |
Hangzhou Zone J |
40 |
Configuraciones predeterminadas de la instancia |
|
128 CUs (128 núcleos de CPU, 512 GB de memoria) |
Hangzhou Zone J |
80 |
Configuraciones predeterminadas de la instancia |
Rendimiento de consultas OLAP
Todas las consultas se ejecutan en tablas internas de Hologres. El tiempo de ejecución se mide en segundos; un valor menor indica mejor rendimiento. Duplicar los recursos de cómputo (de 64 CUs a 128 CUs) reduce el tiempo de ejecución de forma proporcional.
Total en V3.1.3: 64 CUs — 10.4 s | 128 CUs — 7.05 s. En comparación con V2.2.19, V3.1.3 reduce el tiempo total de consulta en un 12 % con 64 CUs y en un 8 % con 128 CUs.
|
TPC-H query ID |
64 CUs (V3.1.3) |
128 CUs (V3.1.3) |
64 CUs (V2.2.19) |
128 CUs (V2.2.19) |
Improvement at 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% |
Rendimiento de consultas puntuales clave/valor
Todas las consultas se ejecutan en tablas internas de Hologres. Versión del software: r1.1.42. Cada escenario se ejecuta de forma continua durante 5 minutos. Las consultas por segundo (QPS) escalan linealmente a medida que aumenta el tamaño de la instancia.
Escenario 1: búsqueda por clave ú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};
|
Instance |
Concurrent clients |
QPS (incl. connection time) |
QPS (excl. connection time) |
Avg latency |
|
64 CUs |
500 |
112,435 |
112,443 |
4,447 ms |
|
128 CUs |
1,000 |
242,755 |
242,772 |
4,119 ms |
Escenario 2: búsqueda con cláusula IN de 9 claves
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}
);
|
Instance |
Concurrent clients |
QPS (incl. connection time) |
QPS (excl. connection time) |
Avg latency |
|
64 CUs |
500 |
27,632 |
27,634 |
18,094 ms |
|
128 CUs |
1,000 |
90,086 |
90,092 |
11,100 ms |
Rendimiento de escritura de datos
Todos los resultados corresponden a 64 CUs y miden el tiempo en segundos para importar datos a tablas internas de Hologres.
La sentencia COPY importa un archivo a una tabla a la vez. No es posible importar datos simultáneamente con COPY.
Hallazgos principales:
La importación mediante virtual private cloud (VPC) es significativamente más rápida que la importación por Internet, ya que el rendimiento de COPY está limitado por el ancho de banda.
La importación mediante una tabla externa de MaxCompute es más rápida que COPY en ambas rutas de red.
|
Table |
Rows |
Data size |
COPY (Internet) |
COPY (VPC) |
MaxCompute foreign table |
|
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 |
El siguiente gráfico de barras compara los tiempos de importación entre los tres métodos. Las barras azules representan COPY por Internet, las verdes representan COPY por VPC y las grises representan la tabla externa de MaxCompute. Los valores más bajos indican una importación más rápida.

El eje x representa el nombre de la tabla. El eje y representa el tiempo de importación en segundos.
Rendimiento de actualización de datos
Todos los resultados se basan en operaciones upsert sobre tablas internas de Hologres. Versión del software: r1.1.42. Cada escenario se ejecuta de forma continua durante 5 minutos. Las QPS escalan linealmente a medida que aumenta el tamaño de la instancia.
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.*);
|
Instance |
Concurrent clients |
QPS (incl. connection time) |
QPS (excl. connection time) |
Avg latency |
|
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
Entorno de prueba
Recuento de filas por tabla
|
Table |
Rows |
Data size |
|
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 |
Configuración del entorno de prueba
|
Parameter |
Description |
|
Versión del software |
Hologres V4.2.0 |
|
Recursos de cómputo |
96 CUs (96 núcleos de CPU, 384 GB de memoria) |
|
Capacidad de almacenamiento |
1,000 GB |
|
Shards |
60 |
|
Clúster de prueba |
China (Hangzhou) Zone J |
|
Tipo de máquina |
Procesador Intel de 7.ª generación |
|
Script de prueba |
Script oficial de benchmark TPC-H |
Rendimiento de consultas OLAP
Todas las consultas se ejecutan en tablas internas de Hologres. El tiempo de ejecución se mide en segundos; un valor menor indica mejor rendimiento.
Total en V4.2.0: 62.17 s — 11 % más rápido que V4.0.4 (69.99 s) y 39 % más rápido que V3.0.5 (101.16 s).
|
TPC-H query ID |
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 |
Ingesta en tiempo real con Realtime Compute for Apache Flink
Entorno de prueba
Instancia de Hologres
|
Computing resource |
Software version |
Shards |
Notes |
|
64 CUs (64 núcleos de CPU, 256 GB de memoria) |
r1.1.53 |
40 |
Configuraciones predeterminadas de la instancia |
Configuración de Flink
|
Parameter |
Value |
|
Versión del motor |
vvr-4.0.12-flink-1.13 |
|
Modo de configuración |
Basic mode |
|
Paralelismo |
15 |
|
CPU de JobManager |
1 |
|
Memoria de JobManager |
1 GiB |
|
CPU de TaskManager |
1 |
|
Memoria de TaskManager |
6 GiB |
Resultados de la prueba
Durante la ventana de prueba del 8 de abril de 2022, de 19:35 a 19:50, el pico de registros por segundo (RPS) alcanzó 580,234 y el mínimo fue de 357,729 RPS.

