数据分析:3小时速通SQL必学必会(第一节)

06-01 1266阅读

数据库基础

什么是数据库?

DataBase(DB):数据库就是存放数据的地方。

什么是数据库管理系统?

DateBase Management System(DBMS):熟知的MySQL,SQL Server,Orcle,PostgreSQL。。。都是数据库管理系统。简单理解,是一个软件用来操作数据库的。

数据库里面有什么?

数据库:按照数据结构组织存储和管理数据的地方。

表:结构化的集合,存放数据的记录;表要有列名,数据类型和约束;
字段:表中的一列就是一个字段;
记录:表中的一行一条记录
视图:通过查询表来生成的一张数据视图;本身不存储数据;会随着表数据变化而更新;主要用于提高数据安全性,实现逻辑数据独立性;
索引:加速数据检索,帮助数据库引擎快速定位数据,而不是扫描整个表;
元数据信息:表名、字段名、数据类型、约束(主键、外键)。
数据类型:整型(int),浮点型(float,double,)decimal,字符串(varchar),string;

数据库里面的东西:表;视图;函数;事件;查询;报表;备份(以MySQL为例;图片是以Navicat连接MySQL的可视化图形;Navicat就是一个可以使用和管理数据库的工具);

数据分析:3小时速通SQL必学必会(第一节)

数据库怎么用?

数据的导入导出,存储数据+增删改查

数据流程链路

Data Flow Pipline:数据从产生到最终应用的全生命周期路径;
数据采集(获取)->数据传输->数据存储->数据处理(清洗)->数据分析与挖掘->数据应用
数据采集:系统数据,日志数据…通过某种方式对数据进行记录;

举个例子:用户浏览点击通过埋点记录;

数据传输:将记录的数据传输到存储或处理的地方;
数据存储:持久化存储数据;使用数据库;
数据处理(清洗):ETL(extract-transform-load):提取-转化-加载;

关键处理:缺失值、异常值,处理日期格式;

数据分析与挖掘:数据洞察或数据价值挖掘;
数据应用:洞察结果和数据价值反馈业务,进行落地监控迭代;

SQL

大家都在讲SQL,SQL,什么是SQL?

SQL:用于管理和操作关系型数据库的标准编程语言。

可以使用SQL对数据进行 增、删、更、查;以及管理数据库结构。

SQL非常简单只要会写SELECT…FROM…WHERE

select no,name,age --你要查询的字段,select 列名1,列名2,列名3
from student_info --你要查询的表名   from 表名称
where no=0001     --你要限制的筛选条件where 条件,no是0001,name是‘牛马小joker’
and name='牛马小joker'

你就可以查询数据了!

从哪里查数据呢?

数据库的数据表中…

如果创建数据库数据表呢?

CREATE DATABASE mydatabase; --create DATABASE 你的数据库名称
CREATE TABLE employees (    -- create Table  你的表名
    id INT PRIMARY KEY, --列名:id 数据类型:int,约束:主键
    name VARCHAR(100) NOT NULL, --列名:name 数据类型:字符串,约束:非空
    email VARCHAR(100) UNIQUE, --列名:email 数据类型:字符串,约束:唯一
    department VARCHAR(50),
    salary DECIMAL(10,2) DEFAULT 0,
    hire_date DATE,
    --INDEX idx_department (department) --index :创建索引,给department列创建索引,当查询departent列时查询速度会更快;
);

建表的图:帮助大家理解一下

数据分析:3小时速通SQL必学必会(第一节)

输入表名就创建好了;创建好了之后长这样;

数据分析:3小时速通SQL必学必会(第一节)

怎么插入数据库中的数据呢?

怎么更新数据呢?

怎么删除数据库表呢?

这三个问题问问AI

数仓分层

为什么要进行数仓分层?

为了更好的对数据进行规范化的管理,高效复用以及业务解耦;

什么是数据仓库?

简单理解一个数据集成平台;

数据仓库与数据库的区别是什么?

数据库是用于高效存储、管理和操作业务实时数据的软件系统,支持数据的增删改查(CRUD),专注于处理高并发、低延迟的在线事务处理(OLTP);
数据仓库是面向分析的历史数据集成平台,通过清洗、转换、整合多源数据,支持复杂查询和决策分析(OLAP);

简单理解一下:数据库主要用来存储数据(直接接入进来的最底层数据);数据仓库主要用来分析数据;(这样的表述可能不太准确,主要是为了方便理解)

数仓是怎么分层的?

复习一下数据链路:数据采集(获取)->数据传输->数据存储->数据处理(清洗)->数据分析与挖掘->数据应用

看数仓分层:

ODS:操作数据层(原始数据层):与业务数据保持同步;直接接入业务数据库;
DWD: 明细数据层:面向业务过程的干净明细数据;是ODS经过数据清洗后的数据;
DWS:服务数据层:面向业务主题的汇总数据;用于通用分析场景;一般是按照一定主题(维度)进行聚合指标;构建宽表;
ADS:应用数据层:高度定制化加工数据,直接适配BI工具和报表需求;可直接对接下游应用(如API和数据大屏);
DIM:(维度层):存储维度数据(如:时间地域和商品类目):提供一致性维度(确保不同事实表的维度ID一致)需要全量更新

举个例子:

以电商场景为例,说明数据如何逐层加工:

  • ODS层: 原始订单表 ods_order(含未清洗的脏数据)。
  • DWD层: 清洗后生成 dwd_order_detail(去重、补全用户ID、标准化金额单位)。
  • DWS层: 按用户聚合生成 dws_user_order_summary(总订单数、月消费金额)。
  • ADS层: 生成 ads_vip_user_analysis(高价值用户名单,供运营推送优惠券)。

    分层设计要注意什么?

    • 高内聚低耦合:每层仅依赖下层,禁止跨层调用。
    • 数据一致性:统一维度(DIM层如时间、区域)贯穿所有分层。
    • 效率与成本平衡:

      ODS层保留全量数据(存储成本高但可回溯)。

      ADS层按需存储(查询快但冗余可能增加)。

    • 元数据管理:记录各层表的血缘关系

      全量更新与增量更新

      刚才讲DIM层维表要全量更新,

      什么是全量更新?

      简单理解:每次更新时覆盖之前的数据;无论是否发生变化,都要重新写入全量数据;全量数据表一般以df结尾;

      举个例子:dwd_user_order_info_df

      什么是增量更新

      仅更新新增(或者修改)的数据,未变化的部分不动。

      适用场景:实时日志数据;

      举个例子:dws_user_log_di

      因为业务每天都在发生,数据每一分每一秒都在产生;所以考虑资源存储以及方便查询;选择不同的更新方式很重要!

      怎么更新的?

      分区概念:将大表按照一定规则(时间或者区域)分割成独立存储的小块;物理存储上分离但逻辑上还是一张表;

      的思想!(类似Hadoop集群分布式存储和计算)

      简单理解:一个大文件夹A里面多个小文件夹abc,物理上分离指的是a,b,c存储在不同的磁盘上DEF,但当你查询A时,可以看到abc;

      一张图看懂全量更新和增量更新:按天分区;分区字段ds:

      数据分析:3小时速通SQL必学必会(第一节)

      简单理解:全量更新-覆盖之前的分区,全部写入新分区;

      增量更新:新分区只更新新增或修改部分;

      下一节:SQL必会函数语法、表的连接,子查询嵌套with子句,窗口函数等。。。

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码