大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说使用 SQL 和 Datagrip 的探索性数据分析 (EDA) 如何像专业人士一样准备数据分析,希望您对编程的造诣更进一步.
使用 SQL 和 Datagrip 的探索性数据分析 (EDA) 如何像专业人士一样准备数据分析
探索性数据分析 (EDA) 是我们经常做的事情。这是在我们进入重构或建模等更复杂的工作之前,在任何项目开始时要做的第一步也是最重要的一步。这就像对你可爱的数据集说“嗨”,这样我们就可以对以后从数据中提取的每条信息充满信心。那么为什么不跟着我一步一步地了解如何在 Datagrip 和 SQL 的强大帮助下轻松地执行 EDA。
注意:在本文中,我对所有 SQL 查询使用Snowflake 公共数据集和Snowflake SQL 命令。它们都是基本的 SQL 语法,因此如果您使用不同版本的 SQL 语言(MySQL、SQL 服务器、BigQuery 等),则几乎不需要语法转换。
1 数据集概述
首先,我们需要对我们将要使用的数据集有一个概览:表和视图的列表,以及它们的列名。
在 DataGrip 中,您只需单击数据源名称旁边的小框,选择要探索的模式,然后单击刷新。再次单击所选表以查看其列名列表
菜品都上桌了,开始享用我们的数据大餐吧。
2 查看数据
现在您想知道每个表中的实际数据是什么样的。是好看还是很丑?😐
只需在 Data Grip 的数据库资源管理器中双击一个表,该表就会在数据编辑器中打开。
额外提示:“Ctrl+B”是为您提供表格 DDL 的快捷方式。当您想快速检查所有列的数据类型或复制列名列表时,它非常方便。我个人经常使用这个而不是键入 SQL 语法:describe table X
这一点很简单,对吧?EDA 和 DataGrip 并不是一件难事吧 😀
3 关系图
接下来,您想知道数据集中的每个表是如何相互连接的。换句话说,您需要知道哪个是主键,哪个是外键,以及如何通过这些键连接表。
DataGrip 有一个很好的功能,可以让我们查看所有表之间的整体关系。
右键单击数据库对象并选择图表 | 显示可视化 (Ctrl+Alt+Shift+U),神奇的事情发生了,tarraaa!
注意:您可以单击评论按钮使列评论在我们的图表中可见。
当您发现我们的数据人员有一些有趣之处时,您可以稍后在图表中添加自定义注释。例如,我发现有一列同时包含 null 和 0 值,表明它需要在后期进行清理。
提示:如果您想浏览此图表中的数据,只需单击该表,然后按 F4 即可查看详细数据。
完成我们的关系图后,您有几个选项可以保存它:
复制到剪贴板
导出到图像文件
保存 UML 图
注意:此 UML 格式是仅 DataGrip 支持的内部格式。所以不要浪费时间尝试使用 UML 编辑软件打开和编辑它,例如:StarUML、Lucidchart、Drawio 等。
4 关系类型
现在我们知道表A通过列X连接到表B。但是,这是一种什么样的关系呢?表 A 中的一个 X 记录是否映射到表 B 中的一个或多个记录,反之亦然?对此有一个奇特的术语:基数。
4.1 方法一
如果您的数据集具有明确定义的列约束,Datagrip 可以自动检测您在 SQL 脚本中指定的 2 列之间的关系。
在上面的例子中,符号 1…n ↔︎ 1: 理解为:
地址表中的一个CA_ADDRESS_SK可以映射到C_CURRENT_ADDR_SK客户表中的一个或多个
Customer 表中的一个C_CURRENT_ADDR_SK只能映射到CA_ADDRESS_SKAddress 表中的一个
4.2 方法二
如果您没有看到 Datagrip 中自动填充的基数,您可以按照以下步骤手动确定 2 个表之间的关系:
首先确定每个表的PK(主键)
客户表:PK=C_CUSTOMER_SK
地址表:PK=CA_ADDRESS_SK
然后,我们使用 SQL 来确定基数:
最后,我们使用以下逻辑解释结果:
count = table_pk > 0:其他表中的一条记录可以映射到该表中的一条或多条记录
count > table_pk > 0: 其他表中的一条记录只能映射到该表中的一条记录
客户地址表之间的关系address_id 是多对一的。想知道为什么会这样吗?这是你阅读此博客后的作业🙂
5 脏数据
我们经常会遇到一些包含不太干净的数据的列。要么是ID列有一些异常记录,要么是一些空值将自己表示为空白、“Null”、“None”、“N/A”。
为了快速发现这些情况,我们可以尝试以下 SQL 脚本:
对于字符串列:
对于数字列:
6 搜索选项
假设您想知道所有经济型商品的当前总库存,并且您不知道哪个表和哪个列存储商品尺寸的数据。不必查看数据集中的每个表和每一列,屏幕上的数百个数据会让您的眼睛疲劳,您可以使用 Datagrip 搜索选项。
6.1 物品搜索
您猜测包含项目大小的列将被命名为带有“大小”的名称。
在这种情况下,从主菜单中选择导航 | Search Everywhere或按Shift键两次打开搜索窗口,然后键入“size”以查找名称包含“size”的任何表/列
6.2 全文搜索
根据您的业务知识,您知道您正在寻找的栏目将包含“经济”、“小型”或“大型”等词。
在这种情况下,选择要在其中执行搜索的对象。您可以选择一个数据库或一组数据库、一个或多个方案,甚至是单独的表。然后右键单击所选内容并选择全文搜索(快捷键是Ctrl+Alt+Shift+F)。在搜索字段中,输入您的搜索请求并点击搜索。
注意:请注意,这种类型的搜索比前一种搜索需要更多的计算工作,因为它必须针对您选择的对象中的所有列运行查询。因此,您应该只在项目搜索选项不适合您的情况下使用此选项。
7 比较数据
有时我们想同时查看 2 个表以获得一些有用的见解。
为此,我们只需选择要比较的 2 个表,然后右键单击选择并导航到比较内容。
8 其他资源
根据您的需要,您可能还想知道:
数据分布
识别异常值
数据新鲜度和数量
此外,不要忘记查看 Snowflake SQL 和 DataGrip 的官方文档,以更新自己可以提供的许多更酷的东西:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://daima100.com/datagrip-ji-huo/8407.html