Amostra de dados: TPC-DS¶
TPC-DS é um benchmark que modela o sistema de suporte a decisões de um fornecedor de produtos de varejo. Ele tem dados de clientes, pedidos e produtos. O Snowflake fornece versões de 10TB e 100TB dos dados TPC-DS para você explorar, em esquemas denominados TPCDS_SF10TCL e TPCDS_SF100TCL, respectivamente, no banco de dados compartilhado SNOWFLAKE_SAMPLE_DATA.
Como descrito na especificação TPC Benchmark™ DS (TPC-DS):
“A fim de abordar a enorme variedade de tipos de consulta e comportamentos de usuários encontrados por um sistema de suporte à decisão, TPC-DS utiliza um modelo de consulta generalizada. Este modelo permite que o benchmark capture aspectos importantes da natureza interativa e iterativa do processamento analítico on-line (OLAP), as consultas complexas de longo prazo de mineração de dados e descoberta de conhecimento, e o comportamento mais planejado de consultas de relatórios bem conhecidas.”
Neste tópico:
Como faço para adicionar o conjunto de dados TPC-DS à minha conta?¶
Você pode acessar os conjuntos de dados TPC-DS fornecidos pela Snowflake diretamente do Snowflake Marketplace no Snowsight. Consulte Como obter os dados TPC-DS a partir do Snowflake Marketplace. Você também pode acessar a lista de consultas TPC-DS baixando este script
.
Entidades, relacionamentos e características do banco de dados¶
O conjunto de dados TPC-DS consiste em 7 tabelas de fatos e 17 dimensões nos seguintes esquemas:
TPCDS_SF100TCL: A versão de 100 TB (fator de escala de 100.000) representa 100 milhões de clientes e mais de 500.000 itens armazenados, com dados de vendas abrangendo 3 canais – lojas, catálogos e a Web – cobrindo um período de 5 anos. A maior tabela, STORE_SALES, contém quase 300 bilhões de linhas, e as tabelas contêm mais de 560 bilhões de linhas no total.
TPCDS_SF10TCL: A versão de 10 TB (fator de escala de 10.000) representa 65 milhões de clientes e mais de 400.000 itens armazenados, com dados de vendas abrangendo 3 canais – lojas, catálogos e a Web – cobrindo um período de 5 anos. A maior tabela, STORE_SALES, contém quase 29 bilhões de linhas, e as tabelas contêm mais de 56 bilhões de linhas no total.
As relações entre fatos e dimensões são representadas através de junções em chaves alternativas. As relações detalhadas são muito numerosas para serem exibidas aqui, mas podem ser encontradas na especificação TPC-DS.
Definições de consulta¶
O TPC-DS contém um conjunto de 99 consultas com grande variação de complexidade e diversidade de dados verificados. Cada consulta TPC-DS faz uma pergunta comercial e inclui a consulta correspondente para responder à pergunta. Geramos amostras de todas as 99 consultas TPC-DS para que você possa explorar. Alternativamente, você pode usar as ferramentas no Kit de benchmark do TPC-DS para gerar muitas versões diferentes destas consultas que variam de acordo com os valores dos parâmetros.
Abaixo, descrevemos apenas uma das consultas. Mais informações sobre TPC-DS e todas as consultas envolvidas podem ser encontradas na especificação oficial do TPC-DS.
O script TPC-DS
, fornecido pela Snowflake, contém a lista completa de consultas TPC-DS. Você pode salvar o arquivo em seu sistema de arquivos local para referência.
Um exemplo: discrepâncias do call center de vendas de catálogo (Q57)¶
Esta consulta analisa os dados da tabela CATALOG_SALES de um ano e revela as categorias e marcas em que as vendas em um mês variam mais de 10% em relação à média para um determinado call center.
Questão comercial¶
Encontre as marcas e categorias de itens para cada call center e seus números de vendas mensais para um determinado ano onde o número de vendas mensais desviou mais de 10% da média de vendas mensais do ano, classificadas por desvio e call center. Relate o desvio de vendas em relação aos mês anterior e seguinte.
Definição da consulta funcional¶
A consulta relaciona os seguintes totais:
Preço estendido
Preço estendido com desconto
Preço estendido com desconto mais imposto
Quantidade média
Preço estendido médio
Desconto médio
Estes agregados são agrupados por RETURNFLAG e LINESTATUS e são listados em ordem crescente de RETURNFLAG e LINESTATUS. Está incluída uma contagem do número de itens de linha em cada grupo:
use schema snowflake_sample_data.tpcds_sf10Tcl; -- QID=TPC-DS_query57 with v1 as( select i_category, i_brand, cc_name, d_year, d_moy, sum(cs_sales_price) sum_sales, avg(sum(cs_sales_price)) over (partition by i_category, i_brand, cc_name, d_year) avg_monthly_sales, rank() over (partition by i_category, i_brand, cc_name order by d_year, d_moy) rn from item, catalog_sales, date_dim, call_center where cs_item_sk = i_item_sk and cs_sold_date_sk = d_date_sk and cc_call_center_sk= cs_call_center_sk and ( d_year = 2001 or ( d_year = 2001-1 and d_moy =12) or ( d_year = 2001+1 and d_moy =1) ) group by i_category, i_brand, cc_name , d_year, d_moy), v2 as( select v1.i_brand ,v1.d_year, v1.d_moy ,v1.avg_monthly_sales ,v1.sum_sales, v1_lag.sum_sales psum, v1_lead.sum_sales nsum from v1, v1 v1_lag, v1 v1_lead where v1.i_category = v1_lag.i_category and v1.i_category = v1_lead.i_category and v1.i_brand = v1_lag.i_brand and v1.i_brand = v1_lead.i_brand and v1.cc_name = v1_lag. cc_name and v1.cc_name = v1_lead. cc_name and v1.rn = v1_lag.rn + 1 and v1.rn = v1_lead.rn - 1) select * from v2 where d_year = 2001 and avg_monthly_sales > 0 and case when avg_monthly_sales > 0 then abs(sum_sales - avg_monthly_sales) / avg_monthly_sales else null end > 0.1 order by sum_sales - avg_monthly_sales, nsum limit 100;
Como obter os dados TPC-DS a partir do Snowflake Marketplace¶
Você pode acessar os dados TPC-DS diretamente do Snowflake Marketplace no Snowsight. Você pode criar e consultar sua própria instância dos seguintes conjuntos de dados:
TPC-DS 10 TB (formato de tabela padrão)
TPC-DS 10 TB Iceberg gerenciado (formato de tabela Iceberg)
Os dados do conjunto de dados do Iceberg gerenciado são armazenados fisicamente no formato Iceberg, em vez do formato de tabela proprietário do Snowflake. Você pode obter os dois conjuntos de dados e comparar o comportamento dos dois formatos.
Para obter esses conjuntos de dados:
Procure por TPC-DS no Snowflake Marketplace. (Faça login no Snowsight se for solicitado)
Selecione um dos conjuntos de dados TPC-DS.
Selecione Get.
Solicite acesso ao seu administrador, se necessário. Sua função de login pode não ter acesso a esses conjuntos de dados.
Em Options, forneça ao seu banco de dados TPC-DS um nome definido pelo usuário e selecione a função que usará para acessá-lo. Como alternativa, prossiga com as seleções padrão.
Selecione Get it for Free.
Em alguns segundos, você verá a seguinte janela pop-up, que indica que sua instância do banco de dados TPC-DS foi criada e está disponível para inspeção e consulta.
Selecione Query Data.
Consulte os dados no banco de dados usando a planilha fornecida ou o
script TPC-DS
, que contém todas as consultas.
Se você já tiver usado Get para criar um desses bancos de dados, poderá acessá-lo selecionando Open nos resultados de pesquisa do marketplace.