Télécharger le jeu de données
Décompresser le jeu de données
Menu— Informations sur les menus : le nom du restaurant, la date à laquelle le menu a été observé, etc.Dish— Informations sur les plats : le nom du plat ainsi que certaines caractéristiques.MenuPage— Informations sur les pages des menus, car chaque page appartient à un menu.MenuItem— Un élément du menu : un plat avec son prix sur une page de menu donnée, avec des liens vers le plat et la page de menu.
Créer les tables
Importer les données
format_csv_allow_single_quotes, car seuls les guillemets doubles sont utilisés pour les champs de données, et les guillemets simples peuvent apparaître dans les valeurs sans perturber l’analyseur CSV.
Nous désactivons input_format_null_as_default, car nos données ne contiennent pas de NULL. Sinon, ClickHouse essaiera d’analyser les séquences \N, ce qui peut les faire confondre avec \ dans les données.
Le paramètre date_time_input_format best_effort permet d’analyser des champs DateTime dans une grande variété de formats. Par exemple, un format ISO-8601 sans secondes comme ‘2000-01-01 01:02’ sera reconnu. Sans ce paramètre, seul le format DateTime fixe est accepté.
Dénormaliser les données
JOIN à chaque fois. C’est ce qu’on appelle des données « dénormalisées ».
Nous allons créer une table menu_item_denorm qui contiendra toutes les données JOINées :
Vérifier les données
Query
Response
Exécuter quelques requêtes
Prix moyens historiques des plats
Query
Response
Prix des burgers
Query
Response
Vodka
Query
Response
ILIKE '%vodka%', et cela ne passe clairement pas inaperçu.
Caviar
Query
Response