
💎【行业认证·权威头衔】
✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家
✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主
✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者
🏆【荣誉殿堂】
🎖 连续三年蝉联"华为云十佳博主"(2022-2024)
🎖 双冠加冕CSDN"年度博客之星TOP2"(2022&2023)
🎖 十余个技术社区年度杰出贡献奖得主
📚【知识宝库】
覆盖全栈技术矩阵:
◾ 编程语言:.NET/Java/Python/Go/Node...
◾ 移动生态:HarmonyOS/iOS/Android/小程序
◾ 前沿领域:物联网/网络安全/大数据/AI/元宇宙
◾ 游戏开发:Unity3D引擎深度解析
文章目录
🚀前言
前面对数据分析过程中数据来源的问题进行了详尽的探讨。本文将深入分析数据集的功能,介绍单表数据集、多表关联数据集和自定义SQL数据集的构建方法,并阐述数据集管理和定时同步数据的策略,为后续的数据分析或报表制作进行必要的数据准备。读者能够通过关联和处理表格中的数据,自由地组合并形成个性化的数据集合,以满足后续业务分析和图表制作的需求。
在DataEase中,数据集是核心的功能模块,为接下来的数据分析或报表制作进行必要的数据准备。DataEase中有3种数据集:单表数据集、自定义SQL数据集和多表关联数据集。这3种数据集各自适用于不同的使用场景。
在讲解3种数据集之前,先对DataEase中多元化的数据源进行概括性的分类,主要包括:数据库(涵盖OLTP、OLAP型数据库及数据湖)、API数据和本地文件。数据库中的数据是以表的形式存储的;API数据源通过接口获取数据后,数据在DataEase中也会被转化为数据表的形式并存储;同理,本地文件(如Excel文件)的每一个sheet页也会被转换成一张数据表。尽管这些表的命名规则可能略有不同,例如,API数据表以"api_"为前缀,Excel文件则以"excel"为前缀,数据库数据表则维持表原来的名字,但DataEase中最终的存储单位都是数据表。
因此,无论数据源的类型如何,一旦与DataEase连接,其数据最终都将以表的形式进行存储和展示。
🚀一、自定义SQL数据集
在DataEase中,自定义SQL数据集 为用户提供了最高级别的数据查询和加工灵活性。它允许您基于已有的数据源,通过编写标准的SQL(结构化查询语言)语句,直接从数据库或数据引擎中查询、筛选、聚合、关联数据,并将查询结果作为一个新的数据集来使用。当简单的单表选择无法满足分析需求时(例如需要多表关联、复杂计算、条件过滤或特定数据聚合),自定义SQL数据集便成为了强大的工具。
本节将基于前面创建的MySQL数据源------"Demo" ,演示如何通过编写SQL语句,创建名为 "SQL-零食销售明细" 的自定义SQL数据集。
🔎1.创建自定义SQL数据集的详细步骤
🦋步骤一:进入数据集创建界面并选择创建方式
- 登录DataEase系统,导航至 【数据准备】 → 【数据集】,进入数据集管理界面。
- 点击 【新建数据集】 按钮(见图7-6所示"+"图标),开始创建新数据集。
图7-6 在数据集管理界面点击新建按钮
🦋步骤二:选择数据源并添加"自定义SQL"组件
- 在数据集编辑器的左侧数据源面板中,找到并点击已配置好的 "Demo" 数据源(这是一个MySQL数据库源)。
- 在数据源下方的组件列表中,找到 【自定义SQL】 模块(见图7-7)。
- 将 【自定义SQL】 组件用鼠标拖拽到右侧的画布(数据集编辑区)中。
图7-7 从"Demo"数据源拖拽"自定义SQL"组件
🦋步骤三:编写并执行SQL查询
- 将自定义SQL组件拖入画布后,会自动弹出SQL编辑对话框(见图7-8)。
- 在对话框中,进行以下配置:
-
数据源:确认已自动选中为"Demo"。
-
数据集名称 :输入一个有业务含义的名称,例如 "SQL-零食销售明细"。这个名称主要用于在画布中标识此SQL组件。
-
SQL语句 :在输入框中编写您的SQL查询。本例中,我们希望查询"Demo"数据库里的
demo_snack_sale_details表的所有数据,因此输入:sqlSELECT * FROM demo_snack_sale_details(注意:实际表名请根据您的数据库结构确定,并注意大小写。这里是一个示例。)
-
- 编写完SQL后,点击 【运行】 按钮。DataEase会连接到"Demo"数据库执行该SQL,并将查询结果(数据预览)显示在对话框下方。务必预览结果,以确保SQL语句正确并返回了期望的数据。
- 确认结果无误后,点击对话框内的 【保存】 按钮。
图7-8 在自定义SQL对话框中编写、运行并保存SQL
🦋步骤四:预览并保存整个数据集
- SQL组件保存后,您会在数据集编辑区的画布中看到名为"SQL-零食销售明细"的组件块(见图7-9)。
- 点击画布上方的 【刷新数据】 按钮,系统会再次执行SQL,并在页面下方显示整个数据集的最新预览结果。这是最终用于制作图表的数据。
- 确认预览数据正确无误后,点击页面右上角的 【保存并返回】 按钮。
- 此时会弹出最终的"保存数据集"对话框(见图7-10)。请注意,此处需要为整个数据集命名(可以与SQL组件名相同或不同)。输入数据集名称(例如 "SQL-零食销售明细" ),选择存放的文件夹,然后点击 【确认】 保存。
图7-9 画布中的SQL组件与数据预览
图7-10 保存数据集对话框
🦋步骤五:查看与管理数据集
- 保存成功后,页面会自动跳转到该数据集的数据预览页面(见图7-11)。您可以在此完整浏览由您的SQL查询所定义的数据内容,它已经成为一个独立的、可复用的数据集资产,可以像单表数据集一样被用于后续的所有可视化分析。
图7-11 "SQL-零食销售明细"数据集预览界面
🔎2.自定义SQL数据集的核心优势与扩展应用
核心优势:
- 灵活性 :突破单表限制,可进行多表JOIN 、复杂WHERE过滤 、GROUP BY聚合 (如求和、平均、计数)、子查询 、窗口函数等高级操作。
- 性能优化:将复杂的数据处理逻辑下推到数据库层面执行,往往比在DataEase界面中进行多步骤的拖拽操作更高效。
- 复用现有技能:对于熟悉SQL的分析师或开发者,这是最自然、最高效的数据准备方式。
扩展应用示例 :
您完全可以编写比 SELECT * 复杂得多的SQL,例如:
sql
-- 示例1:关联订单表和客户表,并计算每个客户的总消费额
SELECT
c.customer_name,
SUM(o.order_amount) AS total_spent,
COUNT(o.order_id) AS order_count
FROM demo_orders o
JOIN demo_customers c ON o.customer_id = c.customer_id
WHERE o.order_date >= '2023-01-01'
GROUP BY c.customer_name
ORDER BY total_spent DESC;
-- 示例2:使用子查询或CTE进行复杂分析
WITH monthly_sales AS (
SELECT
DATE_FORMAT(sale_date, '%Y-%m') AS sale_month,
product_category,
SUM(sale_amount) AS monthly_amount
FROM demo_sales
GROUP BY sale_month, product_category
)
SELECT
sale_month,
product_category,
monthly_amount,
LAG(monthly_amount, 1) OVER (PARTITION BY product_category ORDER BY sale_month) AS prev_month_amount
FROM monthly_sales;
重要注意事项:
- SQL语法 :确保SQL符合您所连接数据源本身的SQL方言(如MySQL、PostgreSQL、ClickHouse等在语法上可能存在差异)。
- 权限:用于连接数据源的数据库用户需要有执行相应SQL查询的权限。
- 性能:过于复杂或未优化的SQL可能导致查询超时或影响数据库性能,请谨慎编写。
- 测试 :始终使用 【运行】 按钮进行预览测试,确保SQL正确无误再保存。
总结
通过创建自定义SQL数据集,您解锁了DataEase中最强大的数据准备能力。它将专业的数据查询语言与直观的可视化分析平台结合,使得从复杂数据模型中提取精准分析内容变得直接而高效。无论是简单的数据提取还是复杂的业务逻辑实现,自定义SQL都是数据分析师不可或缺的利器。掌握此项功能后,您将能应对绝大多数结构化的数据分析需求。





