⚠️ This test can be done in Python or in GOLANG.
The goal of this test is to assess your practical data engineering skills, especially in data manipulation and analysis with SQL, database usage, and writing unit tests to validate your code.
Choose between SQLite and PostgreSQL for this test. If you opt for PostgreSQL, please run it in a Docker container. Installation instructions for Docker and PostgreSQL are not covered in this document, but many resources are available online.
In the 'resources' directory, you will find three CSV files: customers.csv, orders.csv, and products.csv. Your first task is to load these files into your chosen database.
- Objective: Create a
Sales_Reporttable that compiles and analyzes sales data by product category, region, and month. Sales_ReportTable Content:CategoryRegionMonthTotal_Sales: Total sales for the category and region in the month.Margin: Difference between the selling price and the purchase price, aggregated by category and region.
Execution and Exportation: After executing the query, export the result into a CSV file named sales_report.csv.
Objective: Create a Customer_Analysis table that will provide valuable insights into customer buying behavior and product performance by category and region. This table will include metrics such as the total amount spent by each customer, the most purchased product by category, and the purchase frequency.
The Customer_Analysis table will contain the following columns:
Customer_ID: Unique identifier of the customer.Region: Customer's region.Favorite_Category: The most purchased product category by the customer.Total_Spent: The total amount spent by the customer.Favorite_Product: The name of the most purchased product by the customer across all categories.Purchase_Frequency: Average number of days between purchases.
Execution and Exportation: After executing the query, export the result into a CSV file named customer_analysis.csv.
Write at least one unit test for each SQL query to demonstrate your ability to validate the logic and results of your queries. Use a testing framework of your choice (for example, unittest in Python).
- Clarity and organization of the code.
- Accuracy of the SQL queries relative to the defined objectives.
- Quality and relevance of the unit tests.
- Instructions for running the tests and application.
Please submit your source code, SQL scripts, exported CSV files, and any other relevant file (such as a Dockerfile if applicable) in a compressed (ZIP) directory or via a Git repository link.
⚠️ Ce test pourra etre réalisé en Python ou en GOLANG
L'objectif de ce test est d'évaluer vos compétences pratiques en ingénierie de données, notamment en matière de manipulation et d'analyse de données avec SQL, de l'utilisation de bases de données, et de l'écriture de tests unitaires pour valider votre code.
Choisissez entre SQLite et PostgreSQL pour ce test. Si vous optez pour PostgreSQL, veuillez l'exécuter dans un conteneur Docker. Les instructions d'installation de Docker et de PostgreSQL ne sont pas couvertes dans ce document, mais de nombreuses ressources sont disponibles en ligne.
Vous trouverez le repertoire 'resources' trois fichiers CSV : customers.csv, orders.csv, et products.csv. Votre première tâche consiste à charger ces fichiers dans votre base de données de choix.
- Objectif : Créer une table
Rapport_Ventesqui compile et analyse les données de vente par catégorie de produit, région, et mois. - Contenu de la Table
Rapport_Ventes:CategorieRegionMoisTotal_Ventes: Total des ventes pour la catégorie et la région dans le mois.Marge: Différence entre le prix de vente et le prix d'achat, agrégé par catégorie et région.
Exécution et Exportation : Après avoir exécuté la requête, exportez le résultat dans un fichier CSV nommé rapport_ventes.csv.
Objectif : Créer une table Analyse_Clients qui fournira des insights précieux sur le comportement d'achat des clients et la performance des produits par catégorie et par région. Cette table inclura des mesures telles que le montant total dépensé par chaque client, le produit le plus acheté par catégorie, et la fréquence d'achat.
La table Analyse_Clients contiendra les colonnes suivantes :
ID_Client: Identifiant unique du client.Region: Région du client.Categorie_Preferee: La catégorie de produits la plus achetée par le client.Depense_Totale: Le montant total dépensé par le client.Produit_Prefere: Le nom du produit le plus acheté par le client toutes catégories confondues.Frequence_Achat: Nombre moyen de jours entre les achats.
Exécution et Exportation : Après avoir exécuté la requête, exportez le résultat dans un fichier CSV nommé analyses_client.csv.
Écrivez au moins un test unitaire pour chaque requête SQL pour démontrer votre capacité à valider la logique et les résultats de vos requêtes. Utilisez un framework de test de votre choix (par exemple, unittest en Python).
- Clarté et organisation du code.
- Exactitude des requêtes SQL par rapport aux objectifs définis.
- Qualité et pertinence des tests unitaires.
Veuillez soumettre votre code source, les scripts SQL, les fichiers CSV exportés, et tout autre fichier pertinent (comme un fichier Dockerfile si applicable) dans un répertoire compressé (ZIP) ou via un lien de dépôt Git.