Compilar TPC-DS ( dsdgen / dsqgen ) para gerar dados de teste e instruções de consulta

1. Baixar

O endereço de download de todos os kits de ferramentas TPC Benchmark é: https://www.tpc.org/tpc_documents_current_versions/current_specifications5.asp , a última versão atual do TPC-DS é 3.2.0, você precisa preencher o endereço de e-mail real antes de fazer o download, porque o link de download é enviado por e-mail de. Carregue o pacote de instalação baixado para o servidor Linux e descompacte o pacote de instalação:

unzip ~/TPC-DS_Tools_v3.2.0.zip.zip

2. Compilar

Primeiro, instale o compilador gcc (provavelmente já instalado em seu ambiente local):

sudo yum -y install gcc gcc-c++

Em seguida, entre no diretório do código-fonte de dsdgen/dsqgen e execute o comando de compilação:

cd ~/DSGen-software-code-3.2.0rc1/tools
make

3. Gerar dados de teste

dsdgenApós a compilação bem sucedida, dois arquivos executáveis ​​serão gerados no diretório tools dsqgen, não troque de diretório, execute diretamente no diretório tools:

./dsdgen -SCALE 1GB -DIR <your-output-dir>

Você pode gerar 1 GB de dados de teste sob suas condições especificadas <your-output-dir>(cerca de 1 a 3 minutos). Ao gerar conjuntos de dados em grande escala, podemos usar o paralelismo para acelerar a geração de dados:

./dsdgen -SCALE 1GB -DIR <your-output-dir> -PARALLEL 10 -CHILD 10

Nota: dsdgenSempre leia um arquivo no diretório atual tpcds.idx, caso não seja executado no diretório de ferramentas dsdgen, será reportado um erro:

Error: open of distributions failed: tpcds.idx: No such file or directory

Se você deve executar dsdgen em outro lugar, pode passar o parâmetro: -DISTRIBUTIONS /paht/to/tools/tpcds.idxespecifique tpcds.idxo caminho do arquivo.

4. Verifique

O comando acima irá gerar os arquivos de dados de todas as 25 tabelas do TPC-DS (7 tabelas de fatos + 18 tabelas de dimensões) Embora os arquivos terminem com , eles são na verdade .datarquivos de texto, que podem ser visualizados diretamente com o vim. Na verdade, o arquivo está no formato de arquivo delimitado e o delimitador usado por padrão é |. Se você precisar usar outros separadores, poderá dsdgenusar -DELIMITERparâmetros para defini-los durante a execução.

5. Criar tabela

O kit de ferramentas do TPC-DS já fornece SQL de construção de tabela pronto, que é armazenado no diretório de ferramentas. Você pode usar o seguinte comando para consultar:

ls | grep .*sql
# 输出如下:
tpcds_ri.sql
tpcds_source.sql
tpcds.sql

No entanto, há apenas uma instrução de criação de tabela e se é compatível com diferentes tipos de bancos de dados não foi testado, mas o Hive/Spark SQL definitivamente não é suportado

6. Gerar instrução de consulta

TPC-DS tem 99 instruções de consulta e DSGen-software-code-3.2.0rc1/query_templates armazena arquivos de modelo de consulta, e o SQL do banco de dados/armazém de dados de destino só pode ser gerado depois de especificar o dialeto correspondente por meio de dsqgen. Aqui está um exemplo:

./dsqgen \
	-DIRECTORY ../query_templates \
	-INPUT ../query_templates/templates.lst \
	-VERBOSE Y \
	-QUALIFY Y \
	-SCALE 10000 \
	-DIALECT netezza \
	-OUTPUT_DIR ~/tpcds-quries

Um erro pode ser relatado durante a execução:

ERROR: Substitution'_END' is used before being initialized at line 63 in ../query_templates/query1.tpl

A solução é: você precisa modificar todos os arquivos de modelo de consulta no diretório query_templates e adicioná-los ao arquivo define __END = "";. A operação manual é muito complicada. Você pode usar o seguinte script para modificá-lo de uma vez (observe que o diretório onde está localizado deve ser query_templates):

cd ~/DSGen-software-code-3.2.0rc1/query_templates
for i in `ls query*tpl`
do 
    echo $i;  
    echo "define _END = \"\";" >> $i
done

Acho que você gosta

Origin blog.csdn.net/bluishglc/article/details/132044860
Recomendado
Clasificación