SQL 和实际操作中的数据建模:深入探索数据湖屋
任何从事商业智能、数据科学、数据分析或云计算工作的人都会在某个时候遇到过 SQL。我们可以用它来提取、操作和分析数据——无论是在关系数据库还是在现代云环境中。对于 Salesforce 数据云的实施,我不得不更新我的 SQL 和数据建模知识。
有趣的事实:你知道最常用的 SQL 命令是哪个吗?
读完这篇文章的结尾,你就会知道了 😉
内容 1 –* 什么是数据湖、数据仓库和数据湖屋? 2 – 与商业智能工具和云存储的区别是什么? 3 – 为什么 SQL 和数据建模对数据湖屋或特定工具如 Salesforce 数据云很重要 4 – 云应用 SQL 和数据建模的基础 5 – Salesforce 数据云与其他云工具的区别 6 – 数据湖屋的数据科学家关键用例 7. 最后的想法
1 – 什么是数据湖、数据仓库和数据湖屋?
当我们谈论数据平台或数据架构时,我们需要了解数据湖、数据仓库和数据湖屋是什么。由于我们生活在一个数据越来越多的世界——几年前人们总是说“数据是新的黄金”——因此我们相应地也需要能够存储、处理和利用大量数据的系统。在出现这三个术语之前,数据主要存储在关系数据库中(用于结构化数据)。公司中的数据世界不仅在数量上增加,而且在种类上也增加了。想想你在日常工作中遇到的数据格式:结构化数据,如客户数据、库存水平或销售数据,非结构化数据,如电子邮件、社交媒体帖子或支持票证,半结构化数据,如 JSON 和 XML 文件。还有来自机器和设备的传感器或物联网数据,通常以实时记录。公司需要灵活的存储和处理工具来处理这种多样性。
数据仓库的概念在 20 世纪 80 年代末出现。第一个仓库被认为是 IBM 开发的“信息仓库”。然而,比尔·英蒙被认为是这一概念的真正之父。数据湖随后在 2010 年代左右出现,因为需要更多灵活的存储来处理非结构化数据。而近几年,出现了数据湖屋,它结合了数据湖的灵活性和数据仓库的结构。
那这究竟意味着什么呢?
数据仓库正如其名所示,这是一个数据仓库。你可以在其中存储结构化和组织化的数据。数据已经以明确定义的格式提供,例如 Excel 表格。在商业智能工具中的一个例子是公司各种产品的销售数据,这些数据每周都会被处理用于分析。
数据湖这个概念代表了一个大型的开放空间(或湖…)用于存储原始数据。除了结构化数据外,你还可以在这里存储非结构化数据。例如,社交媒体帖子、图片可以与销售数据一起存储。
数据湖屋现在我们在仓库中有一个数据湖。这个概念结合了之前两个数据平台的优势。你可以存储结构化数据并快速分析,同时也可以存储非结构化数据。例如,除了销售数据外,公司还可以在系统中存储客户对话和照片,并为分析做准备。
这种数据架构的需求主要源于仓库通常过于限制性,而数据湖难以搜索。我认为还需要数据湖屋,尤其是在 AI 功能越来越多地集成到工具中时。
自绘可视化 – 来自flaticon的图标,改编并简化自Databricks 博客
你可以在哪里继续学习?
2 – 与…的区别是什么?
…一个商业智能工具?
数据平台用于存储和处理数据。BI 工具,如 Tableau 或 Power BI,用于分析和可视化这些数据。例如,你可以使用 BI 工具访问数据平台的数据,但你主要用它来创建报告和仪表板。你使用数据平台来管理和结构化数据。
…云存储?
云存储纯粹是一个用于存储数据的空间。这样的工具不提供任何直接的处理工具,而数据平台除了存储外,还集成了数据处理、分析、ETL 流程和机器学习等工具。例如包括 Amazon S3、Google Cloud Storage 和 Microsoft Azure Blog Storage。然而,这些云存储在与其他工具结合时提供了数据处理的功能。
3 – 为什么 SQL 和数据建模对数据湖屋或特定工具(如 Salesforce 数据云)很重要
Salesforce 数据云就是这样一种数据湖屋。该平台结合了各种数据源,为您提供全面的客户视图。您可以使用数据流将 Salesforce CRM 中的数据加载到数据云中,或者通过云存储(如 Amazon S3)或 API 加载到数据云中。您还可以连接营销解决方案,如营销云或最新的 Salesforce 产品营销云增长,以便在营销中使用细分和个人化。SQL 在此解决方案中起核心作用,以有效地处理数据,实现结构化查询和转换。除了写入查询之外,还有一个构建器,您可以使用它“点击”构建 SQL。
来自 Salesforce 数据云的自行可视化 – SQL 拖放构建器
SQL 是访问关系数据库的事实标准,自 20 世纪 70 年代以来就已确立。其语法是描述性的(声明性的)且相对简单。此外,在查询和操作(结构化数据)时,该语言非常高效。
有没有替代方案?
是的,有。对于非结构化数据,可以使用如 MongoDB 或 Cassandra 这样的 NoSQL 数据库,或者对于 API 中的灵活、优化的数据查询,可以使用 GraphQL。但 SQL 对于许多应用程序仍然是必要的。除了 SQL 之外,第二个重要的术语是数据建模。这意味着您以逻辑组织且易于访问的方式在系统中结构化数据。在数据云(或 BI 工具中),定义数据关系很重要,以便随后能够进行高效的查询和分析。如果您使用 Salesforce 数据云进行营销云增长,则还会添加另一个组件。为了创建公司可以发送电子邮件的客户细分市场,您还必须在数据建模中考虑如何将联系数据分组到一个统一的个人资料中,以及您如何从其他实体访问信息。
4 – 云应用程序的 SQL 和数据建模基础
结构化查询语言(SQL)对于检索、编辑和管理关系数据库至关重要。它也是云应用程序中实际上总是使用的语言。
SQL 基础:查询
SELECT: 使用此命令,我们可以从一张或多张表中检索数据。为了提高性能,请只选择查询中真正需要的列。
SELECT column1, column2 FROM table;
WHERE: 使用此命令,我们可以指定条件,以便只选择某些数据记录。
SELECT * FROM table WHERE condition;
JOIN: 通过连接,我们可以基于公共列(例如 ID)将两个表链接起来。有三种不同类型:INNER JOIN、LEFT JOIN、RIGHT JOIN。
SELECT * FROM table1 JOIN table2 ON table1.id = table2.id;
SQL 基础:分组
GROUP BY: 使用此命令,我们可以对数据记录进行分组,并使用聚合函数,如 COUNT、SUM、AVG。这允许我们根据某些标准对数据进行分类。例如,如果你想显示每个客户的订单数量,可以使用此命令。
SELECT column, COUNT(*) FROM table GROUP BY column;
HAVING: 使用此命令,我们可以根据条件过滤组。HAVING 与 WHERE 的作用方式类似——但我们用它来基于聚合(COUNT、SUM)进行过滤。
SELECT column, COUNT(*) FROM table GROUP BY column HAVING COUNT(*) > 1;
SQL 基础:数据修改
INSERT: 我们使用此命令将新数据记录插入到表中。重要的是插入值的类型必须与列的数据类型相对应。
INSERT INTO table (column1, column2) VALUES (value1, value2);
UPDATE: 这允许我们更改现有数据记录。根据 WHERE 条件,满足此条件的数据记录将被更新。如果没有 WHERE,则更新所有数据记录——因此请谨慎使用此命令。
UPDATE table SET column1 = value1 WHERE condition;
DELETE: 在这里,我们从表中删除满足条件的数据记录(如果没有 WHERE,则删除所有数据记录)。
DELETE FROM table WHERE condition;
自定义可视化——最常用的 SQL 命令,不基于统计数据。
Salesforce Data Cloud 中的 SQL
在 Data Cloud 中,SQL 用于前台和后台的功能,例如数据准备和集成。使用 SQL 的功能包括以下内容:
数据流:此功能用于将数据从 CRM(Sales Cloud / Service Cloud)或从 Amazon S3 加载到 Data Cloud。数据使用 SQL 导入并转换。
从 Salesforce Data Cloud 生成的自定义可视化——通过各种数据流,您可以导入来自 CRM、Amazon、Databricks、Google Big Query、Google Drive 等的数据。
数据探索器:在这里,您可以可视化单个数据对象(如线索、联系人、个人或所有自定义对象)的数据。您还可以设置过滤器以实时分析数据,这也使用 SQL 完成。尽管您通过鼠标点击定义过滤器,但实际上在后台发生的是带有 WHERE 条件的 SQL SELECT。
段落:您使用过滤器创建段。这也适用于类似 SQL 的查询,但您可以从不同的数据对象中拖放字段。
自定义可视化从 Salesforce Data Cloud——而不是 SQL 查询,您可以从对象中拖放列。然而,逻辑与 SQL 完全相同。
Salesforce Data Cloud 中的数据建模
在将数据加载到此类工具之前,最好首先考虑以下要点:
-
理解客户的需求以及数据迄今为止的结构和存储方式。
-
分析数据源,并考虑数据来自何处(数据流/摄取)以及如何处理它。
-
通过创建表和定义关系来规划数据结构。例如,使用 Lucidchart 和数据清单创建 ERD 模型。
-
规范化:以这种方式组织数据,以最大限度地减少冗余,但数据仍然可以快速查询。进一步解释并描绘
-
在顶部:通过集成验证规则和清洗过程来确保数据质量。这将帮助您避免错误或不完整的数据。
来自Lucidchart 博客的视觉化
你在哪里可以继续学习?
5 – Salesforce 数据云与其他云工具的区别
Salesforce 数据云是一个数据湖屋。该平台主要关注 CRM 数据以及来自亚马逊云等来源的实时集成。如上所述,SQL 类似的查询通常在后台用于数据准备或数据过滤。数据云提供身份解析和细分工具,这对于营销团队(与营销云结合使用)非常有价值。
Salesforce 数据云的替代方案
-
Snowflake 是一个广泛使用的数据仓库解决方案,也用于查询和实时数据处理。它对不同数据源更加灵活。
-
Databricks 是一个集成了来自各种来源的数据的数据湖屋。这个数据平台主要用于数据工程、机器学习和商业智能。
-
Google BigQuery 是一个无服务器数据仓库解决方案。这个数据平台特别优化了大量数据,适用于高度可扩展的需求。
-
Amazon Redshift 是一个用于高效存储大量数据并通过 SQL 查询的数据仓库。Amazon S3 用作数据湖,并支持许多湖屋应用。例如,您可以从 Amazon S3 设置数据流到数据云。
6 – 数据湖屋对数据科学家的重要应用案例
其中一个主要用例是 ETL/ELT 过程,在这个过程中,数据从各种来源提取,清洗并纳入标准化的结构。例如,销售文档、社交媒体和物联网设备上的数据可以集成进行分析。湖仓也适合用于机器学习,因为它们为训练预测模型提供了大量数据集。例如,Einstein Analytics 使用 CRM 数据来预测潜在客户的转化或客户流失。最后,Tableau 或 Power BI 等商业智能工具可以访问湖仓的实时数据,并允许我们数据科学家将不同的数据集组合用于报告和仪表板。
你可以在哪里继续学习?
7. 最后的想法
现在是时候揭晓这个有趣事实的答案了:
最常见的 SQL 命令是"SELECT"。
更多推荐
所有评论(0)