Baixe o conjunto de dados
Descompacte o dataset
Menu— Informações sobre os menus: o nome do restaurante, a data em que o menu foi visto etc.Dish— Informações sobre os pratos: o nome do prato junto com algumas características.MenuPage— Informações sobre as páginas dos menus, pois cada página pertence a algum menu.MenuItem— Um item do menu. Um prato com seu preço em uma determinada página do menu: com referências ao prato e à página do menu.
Crie as tabelas
Importar os dados
format_csv_allow_single_quotes, pois apenas aspas duplas são usadas nos campos de dados, e aspas simples podem aparecer dentro dos valores sem confundir o parser de CSV.
Desativamos input_format_null_as_default, pois nossos dados não contêm NULL. Caso contrário, o ClickHouse tentará analisar sequências \N e poderá confundi-las com \ nos dados.
A configuração date_time_input_format best_effort permite analisar campos DateTime em uma grande variedade de formatos. Por exemplo, ISO-8601 sem segundos, como ‘2000-01-01 01:02’, será reconhecido. Sem essa configuração, apenas o formato fixo de DateTime é aceito.
Desnormalize os dados
JOIN para evitar fazer JOIN toda vez. Isso é chamado de dados “desnormalizados”.
Criaremos uma tabela menu_item_denorm que conterá todos os dados combinados com JOIN:
Verifique os dados
Query
Response
Execute algumas consultas
Preços médios históricos dos pratos
Query
Response
Preços de hambúrgueres
Query
Response
Vodca
Query
Response
ILIKE '%vodka%' — e isso certamente chama atenção.
Caviar
Query
Response