five

ShopALot

收藏
github2024-10-26 更新2024-10-28 收录
下载链接:
https://github.com/sshiv012/ShopALot
下载链接
链接失效反馈
官方服务:
资源简介:
一个电子商务数据集,包含用户、商店、产品、订单和库存等详细信息。用户数据包括ID、姓名、电子邮件和电话号码;商店数据包括地址、类别和地理位置;产品数据包括类别、名称和描述;订单数据包括订单ID、用户ID、商店ID、总价和购买的商品;库存数据跟踪每个商店的产品可用数量。

This is an e-commerce dataset containing detailed information covering users, stores, products, orders and inventory. User data includes ID, name, email address and phone number; Store data covers address, category and geographic location; Product data includes category, name and description; Order data contains order ID, user ID, store ID, total price and purchased goods; Inventory data tracks the available quantity of products in each store.
创建时间:
2024-10-26
原始信息汇总

ShopALot 数据集概述

数据集概述

ShopALot 是一个用于学习 AsterixDB 和 SQL++ 的电子商务数据集。该数据集包含多个数据集,用于存储用户、商店、产品、订单和库存信息。

数据集结构

数据集列表

  1. Users

    • 存储用户信息,包括用户ID、姓名、电子邮件和电话号码。
    • 主键:user_id
  2. Stores

    • 存储商店信息,包括地址、类别和地理位置数据。
    • 主键:store_id
  3. Products

    • 存储产品信息,包括类别、名称和描述。
    • 主键:product_id
  4. Orders

    • 存储订单信息,包括订单ID、用户ID、商店ID、总价和购买的商品。
    • 主键:order_id
  5. StockedBy

    • 跟踪每个商店的产品库存情况,包括可用数量。
    • 主键:(product_id, store_id)

数据加载

数据通过 JSON 文件加载到 AsterixDB 中。加载命令如下:

Mac/Linux 示例路径

sql LOAD DATASET ShopALot.Users USING localfs (("path"="localhost:///home/user/ShopALot/users.json"), ("format"="json")); LOAD DATASET ShopALot.Stores USING localfs (("path"="localhost:///home/user/ShopALot/stores.json"), ("format"="json")); LOAD DATASET ShopALot.Products USING localfs (("path"="localhost:///home/user/ShopALot/products.json"), ("format"="json")); LOAD DATASET ShopALot.Orders USING localfs (("path"="localhost:///home/user/ShopALot/orders.json"), ("format"="json")); LOAD DATASET ShopALot.StockedBy USING localfs (("path"="localhost:///home/user/ShopALot/stockedby.json"), ("format"="json"));

Windows 示例路径

sql LOAD DATASET ShopALot.Users USING localfs (("path"="localhost:///C:/Users/YourUsername/ShopALot/users.json"), ("format"="json")); LOAD DATASET ShopALot.Stores USING localfs (("path"="localhost:///C:/Users/YourUsername/ShopALot/stores.json"), ("format"="json")); LOAD DATASET ShopALot.Products USING localfs (("path"="localhost:///C:/Users/YourUsername/ShopALot/products.json"), ("format"="json")); LOAD DATASET ShopALot.Orders USING localfs (("path"="localhost:///C:/Users/YourUsername/ShopALot/orders.json"), ("format"="json")); LOAD DATASET ShopALot.StockedBy USING localfs (("path"="localhost:///C:/Users/YourUsername/ShopALot/stockedby.json"), ("format"="json"));

数据验证

加载数据后,可以使用以下查询验证每个数据集中的记录数量:

sql SELECT VALUE { "usersCount": (SELECT VALUE COUNT() FROM Users), "storesCount": (SELECT VALUE COUNT() FROM Stores), "productsCount": (SELECT VALUE COUNT() FROM Products), "ordersCount": (SELECT VALUE COUNT() FROM Orders), "stockedByCount": (SELECT VALUE COUNT(*) FROM StockedBy) };

数据查询示例

以下是一些用于查询 ShopALot 数据集的示例 SQL++ 查询:

查询示例

  1. 查询1 sql SELECT * FROM Products WHERE list_price > 10;

    • 检索 list_price 大于 10 的所有产品。
  2. 查询2 sql SELECT VALUE name FROM Products WHERE list_price > 10;

    • 检索 list_price 大于 10 的产品名称。
  3. 查询3 sql SELECT VALUE name FROM Products WHERE list_price > 10 LIMIT 10;

    • 检索 list_price 大于 10 的前 10 个产品名称。
  4. 查询4 sql SELECT VALUE name FROM Products WHERE list_price > 10 LIMIT 10 OFFSET 5;

    • 检索 list_price 大于 10 的第 6 到第 15 个产品名称。
  5. 查询5 sql SELECT user_id, email FROM Users WHERE email LIKE "%gmail.com" LIMIT 3;

    • 检索电子邮件包含 "gmail.com" 的前 3 个用户的 user_idemail
  6. 查询6 sql SELECT VALUE product_id FROM StockedBy WHERE store_id = "C4N2L";

    • 检索商店 ID 为 "C4N2L" 的所有产品的 product_id
  7. 查询7 sql SELECT VALUE { "StoreName": s.name, "Quantity": sb.qty } FROM StockedBy sb, Stores s WHERE sb.store_id = s.store_id AND sb.store_id = "C4N2L";

    • 检索商店 ID 为 "C4N2L" 的所有产品的商店名称和库存数量。
  8. 查询8 sql SELECT s.name AS StoreName, sb.qty AS Quantity FROM StockedBy sb, Stores s WHERE sb.store_id = s.store_id AND sb.store_id = "C4N2L";

    • 检索商店 ID 为 "C4N2L" 的所有产品的商店名称和库存数量。
  9. 查询9 sql SELECT VALUE { "StoreName": s.name, "Stocks": (SELECT VALUE sb.product_id FROM StockedBy sb WHERE sb.store_id = s.store_id) } FROM Stores s WHERE s.store_id = "C4N2L";

    • 检索商店 ID 为 "C4N2L" 的所有产品的商店名称和产品 ID 列表。
  10. 查询10 sql SELECT o.order_id, o.user_id, i.product_id AS product, i.qty AS quantity FROM Orders o UNNEST o.items i WHERE i.qty > 30;

    • 检索订单中商品数量大于 30 的订单 ID、用户 ID、产品 ID 和商品数量。
  11. 查询11 sql SELECT DISTINCT VALUE o.user_id FROM Orders o WHERE SOME i IN o.items SATISFIES i.selling_price >= 80.00;

    • 检索至少有一个商品售价大于等于 80.00 的用户的唯一用户 ID。
  12. 查询12 sql SELECT DISTINCT VALUE o.user_id FROM Orders o WHERE EVERY i IN o.items SATISFIES i.selling_price >= 70.00;

    • 检索所有商品售价都大于等于 70.00 的用户的唯一用户 ID。
  13. 查询13 sql SELECT DISTINCT VALUE o.user_id FROM Orders o WHERE array_count(o.items) > 0 AND (EVERY i IN o.items SATISFIES i.selling_price >= 70.00);

    • 检索订单中所有商品售价都大于等于 70.00 的用户的唯一用户 ID。
  14. 查询14 sql SELECT u.name FROM Users u WHERE u.user_id IN ( SELECT DISTINCT VALUE o.user_id FROM Orders o WHERE EVERY i IN o.items SATISFIES i.selling_price >= 70.00 AND ARRAY_COUNT(o.items) > 0 );

    • 检索订单中所有商品售价都大于等于 70.00 的用户的姓名。
  15. 查询15 sql SELECT o.order_id, o.time_placed, o.time_fulfilled, o.total_price, o.user_id FROM Orders o WHERE total_price > 150.00 AND o.time_fulfilled IS MISSING;

    • 检索总价大于 150.00 且 time_fulfilled 为空的订单的订单 ID、下单时间、完成时间、总价和用户 ID。
  16. 查询16 sql SELECT VALUE { "order_id": o.order_id, "time_placed": o.time_placed, "time_fulfilled": CASE WHEN o.time_fulfilled IS MISSING THEN "TBD" ELSE o.time_fulfilled END, "total_price": o.total_price, "user_id": o.user_id } FROM Orders o WHERE user_id = "QREX9" LIMIT 3;

    • 检索用户 ID 为 "QREX9" 的前 3 个订单的订单 ID、下单时间、完成时间、总价和用户 ID。如果 time_fulfilled 为空,则显示 "TBD"。
  17. 查询17 sql SELECT name, total_price FROM Orders ORDER BY total_price DESC;

    • 按总价降序排列,检索订单的名称和总价。
  18. 查询18 sql SELECT u.name, o.order_id FROM Users AS u, Orders AS o WHERE u.user_id = o.user_id;

    • 检索用户名称和订单 ID,条件是用户 ID 匹配。
  19. 查询19 sql SELECT u.email, o.time_placed FROM Users u JOIN Orders o ON u.user_id = o.user_id WHERE o.total_price > 200 ORDER BY o.total_price DESC LIMIT 3;

    • 检索总价大于 200 的前 3 个订单的用户电子邮件和下单时间,按总价降序排列。
  20. 查询20 sql SELECT * FROM Stores s GROUP BY s.address.city;

    • 按城市分组,检索商店信息。
  21. 查询21 sql SELECT category, COUNT(*) AS total_products FROM Products GROUP BY category;

    • 按类别分组,检索每个类别的产品总数。
  22. 查询22 sql SELECT u.email, ARRAY_COUNT(o.items) AS order_size FROM Users AS u, Orders AS o WHERE u.user_id = o.user_id ORDER BY order_size DESC LIMIT 3;

    • 检索订单中商品数量最多的前 3 个用户的电子邮件和订单大小,按订单大小降序排列。
  23. 查询23 sql ARRAY_MAX( (SELECT VALUE list_price FROM Products WHERE is_number(list_price)) );

    • 检索产品中 list_price 的最大值。
  24. 查询24 sql SELECT s.address.state, COUNT(*) AS cnt FROM Stores AS s, Orders AS o WHERE s.store_id = o.store_id GROUP BY s.address.state;

    • 按州分组,检索每个州的订单总数。
  25. 查询25 sql SELECT s.address.state, g FROM Stores AS s, Orders AS o WHERE s.store_id = o.store_id GROUP BY s.address.state GROUP AS g;

    • 按州分组,检索每个州的商店和订单信息。
  26. 查询26 sql FROM Stores AS s, Orders AS o WHERE s.store_id = o.store_id GROUP BY s.address.state GROUP AS g SELECT s.address.state, (SELECT g.s.store_id, g.s.name, g.o.order_id FROM g) AS so_pairs;

    • 按州分组,检索每个州的商店 ID、商店名称和订单 ID 列表。
搜集汇总
数据集介绍
main_image_url
构建方式
ShopALot数据集的构建基于AsterixDB数据库系统,通过定义数据模式和数据集来实现。首先,创建了一个名为ShopALot的数据库,其中包含了五个主要数据集:Users、Stores、Products、Orders和StockedBy。每个数据集都有其特定的数据类型和主键,确保数据的唯一性和查询的高效性。数据集的创建通过AsterixDB的SQL++命令完成,随后通过LOAD DATASET命令将JSON格式的数据文件加载到相应的数据集中。
特点
ShopALot数据集的特点在于其结构化的数据组织和丰富的数据类型支持。每个数据集都设计有明确的主键,确保数据的一致性和完整性。此外,数据集之间的关联通过外键实现,便于进行复杂的查询和分析。数据集的JSON格式加载方式,使得数据导入过程简便且高效。
使用方法
使用ShopALot数据集时,首先需确保AsterixDB已正确安装并运行。通过执行SQL++命令,可以查询和操作数据集中的信息。例如,可以通过SELECT语句检索特定条件下的数据,或使用JOIN操作进行跨数据集的查询。数据集的加载路径需根据操作系统的不同进行调整,确保文件路径的正确性。
背景与挑战
背景概述
ShopALot数据集是一个专注于电子商务领域的数据库样本,旨在通过AsterixDB和SQL++进行学习和应用。该数据集包含了用户、商店、产品、订单和库存等多个数据集,每个数据集都有其特定的结构和主键。通过这些数据集,研究人员和开发者可以模拟和分析电子商务环境中的各种操作和查询。ShopALot数据集的创建旨在为学术界和工业界提供一个实用的工具,以探索和优化电子商务平台的数据管理和查询效率。
当前挑战
ShopALot数据集在构建和应用过程中面临多个挑战。首先,数据集的多样性和复杂性要求高效的存储和查询机制,以确保数据的准确性和实时性。其次,数据集的加载和更新过程需要严格的管理,以避免数据冲突和重复。此外,数据集的查询性能优化也是一个重要挑战,特别是在处理大规模数据时,如何确保查询的响应时间和准确性是一个关键问题。最后,数据集的维护和扩展性也需要考虑,以适应不断变化的业务需求和技术环境。
常用场景
经典使用场景
在电子商务领域,ShopALot数据集的经典使用场景主要集中在用户行为分析、产品推荐和库存管理。通过分析用户数据集,可以深入了解用户的购买习惯和偏好,从而优化产品推荐系统。同时,结合订单和库存数据,可以实现精准的库存预测和管理,确保供应链的高效运作。
衍生相关工作
基于ShopALot数据集,衍生出了一系列经典工作,包括用户行为分析模型、个性化推荐算法和库存管理优化策略。这些工作不仅在学术界引起了广泛关注,也在工业界得到了实际应用。例如,一些研究通过该数据集开发了新的推荐算法,显著提高了推荐系统的准确性;另一些研究则利用数据集优化了库存管理策略,降低了企业的运营成本。
数据集最近研究
最新研究方向
在电子商务领域,ShopALot数据集的最新研究方向主要集中在利用AsterixDB和SQL++进行高效的数据管理和分析。研究者们致力于通过优化数据加载和查询处理技术,提升电商平台的运营效率和用户体验。此外,数据集的结构化设计也为个性化推荐系统和库存管理模型的开发提供了丰富的数据支持,进一步推动了电商领域的智能化进程。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作