O Star Schema Benchmark (SSB) é uma ferramenta padrão do setor para avaliar o desempenho de consultas OLAP em data warehouses. Este tópico descreve como executar um teste de desempenho do SSB no EMR Serverless StarRocks.
A implementação do SSB neste tópico baseia-se no benchmark SSB. Os resultados não são comparáveis aos resultados publicados do benchmark SSB.
Resultados de referência
Os resultados a seguir foram medidos em uma instância de 8 CUs (8 núcleos, 32 GB de memória). Cada valor representa o tempo de resposta da consulta em milissegundos. Valores menores indicam melhor desempenho.
Ambiente de teste
|
Componente |
Especificação |
|
Unidades de computação (CUs) |
8 CUs (8 núcleos, 32 GB de memória) |
|
Fator de escala |
1 (1 GB de dados brutos) |
Consulta de tabela wide do SSB (modo ssb-flat)
|
Consulta |
Tempo (ms) |
|
Q1,1 |
26 |
|
Q1,2 |
13 |
|
Q1,3 |
20 |
|
Q2,1 |
46 |
|
Q2,2 |
40 |
|
Q2,3 |
26 |
|
Q3,1 |
40 |
|
Q3,2 |
33 |
|
Q3,3 |
30 |
|
Q3,4 |
23 |
|
Q4,1 |
26 |
|
Q4,2 |
30 |
|
Q4,3 |
20 |
|
Total |
373 |
Consulta de tabela padrão do SSB (modo ssb)
|
Consulta |
Tempo (ms) |
|
Q1,1 |
26 |
|
Q1,2 |
20 |
|
Q1,3 |
23 |
|
Q2,1 |
103 |
|
Q2,2 |
53 |
|
Q2,3 |
50 |
|
Q3,1 |
86 |
|
Q3,2 |
46 |
|
Q3,3 |
46 |
|
Q3,4 |
36 |
|
Q4,1 |
83 |
|
Q4,2 |
63 |
|
Q4,3 |
53 |
|
Total |
688 |
Visão geral do SSB
O SSB simula um modelo de dados típico de star schema com cinco tabelas: Date, Customer, Supplier, Part e Lineorder. Ele avalia as seguintes métricas de desempenho de um data warehouse ou sistema OLAP:
Tempo de resposta da consulta
Processamento simultâneo
Carregamento de dados
Otimização de consulta
O SSB também permite personalizar o modelo de dados. Por exemplo, é possível achatar o star schema em uma tabela wide para reduzir a sobrecarga de junções.
A ferramenta de geração do SSB utiliza um fator de escala (SF) para controlar o volume de dados: 1 SF = 1 GB de dados brutos. O armazenamento de índices não está incluído; portanto, reserve espaço adicional em disco ao configurar seu ambiente.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância do Elastic Compute Service (ECS) para gerar dados, carregá-los no StarRocks e executar consultas de cliente
Uma instância do EMR Serverless StarRocks
Requisitos da instância ECS
|
Requisito |
Detalhes |
|
Sistema operacional |
CentOS ou Alibaba Cloud Linux |
|
Disco de dados |
Enhanced SSD (ESSD); capacidade baseada no volume de dados alvo |
|
Rede |
Mesma região e Virtual Private Cloud (VPC) da instância StarRocks |
|
IP público |
Obrigatório |
Para obter instruções sobre como crie uma instância ECS, consulte Create an instance.
Requisitos da instância StarRocks
Os resultados de referência neste tópico utilizaram 8 CUs (8 núcleos, 32 GB de memória). Ajuste os recursos de computação conforme suas necessidades de teste.
Para crie uma instância StarRocks, acesse o console do E-MapReduce, acesse EMR Serverless StarRocks e clique em Create Instance. Para instruções detalhadas, consulte Create an instance.
Utilize uma instância recém-criada para cada execução de teste. Instâncias que passaram por upgrade ou downgrade podem apresentar resultados inconsistentes.
Execute o teste de desempenho do SSB
Etapa 1: Baixe e configure o kit de ferramentas de teste
Faça logon na instância ECS. Consulte Connect to an ECS instance.
-
Baixe e extraia o kit de ferramentas de teste.
sudo wget https://starrocks-oss.oss-cn-beijing.aliyuncs.com/public-access/starrocks-ssb-benchmark-for-serverless.tar.gz tar xzvf starrocks-ssb-benchmark-for-serverless.tar.gz -
Acesse o diretório do kit de ferramentas.
cd starrocks-ssb-benchmark-for-serverless -
Abra o arquivo de configuração.
vim conf/starrocks.conf -
Atualize os parâmetros do seu ambiente.
# for mysql cmd mysql_host: fe-c-7b6f92276******-internal.starrocks.aliyuncs.com mysql_port: 9030 mysql_user: admin mysql_password: 1**** database: ssb_sf # cluster ports http_port: 8030 # Specifies whether to enable the bitmap index. bitmap_index: false # benchmark config scale_factor: 1 dataset_generate_root_path: /mnt/disk1/starrocks-benchmark/datasetsParâmetro
Descrição
Padrão
mysql_hostEndpoint interno do frontend (FE). Encontre-o na aba Instance Details em Gateway Information > Internal endpoint.
—
mysql_portPorta de consulta do FE. Encontre-a na aba Instance Details em FE Details > Query Port.
9030mysql_userUsuário da instância StarRocks.
adminmysql_passwordSenha do usuário da instância StarRocks.
—
databaseNome do banco de dados a ser criado na instância StarRocks.
ssb_sfscale_factorVolume de dados em GB. 1 = 1 GB de dados brutos. Verifique se o disco tem capacidade suficiente para o conjunto de dados gerado.
1dataset_generate_root_pathCaminho local onde o conjunto de dados de teste gerado é armazenado.
/mnt/disk1/starrocks-benchmark/datasetsbitmap_indexDefine se o recurso Bitmap Index deve ser ativado. A ativação melhora o desempenho de consultas para padrões específicos, especialmente Q2,2, Q2,3 e Q3,3.
falsehttp_portPorta HTTP do FE. Encontre-a na aba Instance Details em FE Details > HTTP Port.
8030ImportanteDefina
mysql_hostcomo o endpoint interno, não o endpoint público.
Etapa 2: Gere e carregue os dados de teste
Execute o comando a seguir para crie o banco de dados, as tabelas e o conjunto de dados, além de carregar os dados no StarRocks.
sh ssb_dataload.sh
Etapa 3: Execute consultas e visualize os resultados
Execute as consultas usando um dos modos a seguir. Um resumo é impresso no terminal e um arquivo result.csv com detalhes completos é salvo no diretório atual.
-
Modo de tabela wide: consulta a tabela flat pré-unida.
sh ssb_query.sh ssb-flat -
Modo padrão: consulta as tabelas originais do star schema.
sh ssb_query.sh ssb
Cada valor na saída corresponde ao tempo de resposta da consulta em milissegundos. Valores menores indicam melhor desempenho.
Próximos passos
Ajuste o
scale_factoremconf/starrocks.confpara testar com volumes maiores de dados e observar como o desempenho escala.Ative
bitmap_index: truee execute o benchmark novamente para medir o impacto do recurso Bitmap Index nas consultas Q2,2, Q2,3 e Q3,3.