德胜云资讯,添加一些关于程序相关的内容,仅供大家学习交流(https://www.wxclwl.com)

网站地图

搜索
德胜云咨询
后端分类 爬虫 网络安全 PHP SQL
热门标签:
最新标签:

sqlserver入门自学教程白话数据产品(二)——SQL入门SQL Server 教程 百度网盘越早知道越好,

日期:2023/04/03 17:12作者:陈文婷人气:

导读:上一篇介绍了数据一般怎样抽取,然后怎么存储在数据仓库中,这一篇介绍怎么把存储好的数据提取出来。作为数据产品,一项基础工作即是为需求方取数据,一般...

Sql算是大数据中最常用的语言,对于数据产品来说具备基础的SQL技能是必不可少的。上一篇介绍了数据一般怎样抽取,然后怎么存储在数据仓库中,这一篇介绍怎么把存储好的数据提取出来。

作为数据产品,一项基础工作即是为需求方取数据,一般来说简单的取数数据产品是要兼顾的,复杂的取数才会升级到研发来取,毕竟研发们都很忙嘛,小事我们自己也可以搞定的。

一、SQL思路3分钟入门

SQL可以实现的功能很多,建表、删表、插入数据、查询数据…这里主要介绍查询数据的SQL一般写法,SQL语言的主要逻辑也是在查询语句这一块。

传统MySQL类数据库或大数据中,用到的Hive数据库是按行索引的,可以理解为一条一条的记录,而且大数据用到的HSQL其实跟传统SQL语句基本是一致的。

我们常见的对数据的处理主要是这么几种:根据条件筛选数据,将记录字段横向合并,将记录纵向合并,而这对应的就是SQL语句中的查询/子查询、各种JOIN、UNION ALL。那种看似很长很复杂的SQL代码,其实也就是这三种操作的结合体。

如下图所示:可以理解为数据库查询就是将多份数据查出来,互相关联合并,生成一张新的表单,然后可以在新的表单的基础上进行查询或者再跟其他数据关联合并。

子查询:通过条件从一张或多张表中选取出数据,你可以理解多张表的查询,其实就是像图中所示加了一些join和union all的连接操作。如果只是从一张表中查询,那么就只用关心这张表的记录结构,是否有重复记录等。JOIN:相当于是对两份数据进行取并集、交集或其他集合方式的操作,是对两张表的字段进行了横向拼接,需要指定拼接的连接关系是用的哪个字段。比如:同一个用户,在一张表里记录了他的年龄,在另一张表里记录了他的性别,那么通过join操作就可以把这两个字段放到同一张新的表中,然后可以在这张新的表的基础上再进行其他操作。UNION ALL:相当于是把记录纵向叠加,比如:因为数据量比较大,业务库进行了拆表操作,将1-6月份数据放在表A,将7-12月份数据放在表B。因为是同样的记录,字段都是一致的,通过union all就可以做成一张新的表,同时包含A和B的数据在里面。

这里我都没有使用具体的SQL举例,因为展开来将可能会有很大的篇幅。想要进一步深入的同学,可以去查看相关的SQL教程,按照上面介绍的思路去学习,就不会感到迷茫了。

2. HSQL vs SQL

数据工作中,既要用SQL语句去业务库里查询对比数据,又要会使用HSQL在自己的平台(一般是Hue中的Hive)中查询。两种语言除了个别函数不通用,基本是一致的。

这里举一些例子说明:

Hive中不支持not in操作,一般使用not exists代替,或者left outer join。Hive的切片机制(上一篇有解释)导致取数需要加上条件使用的是哪天的数据。Hive的分层机制(同样上一篇有解释)导致在不同层级进行取数,逻辑是大不相同的。ODS层同一条id记录可能有大量不同时间更新的“重复数据”,要注意进行按一定顺序的去重处理。Hive中某些层级的数据中对时间的存储可能为unix timestamp格式,表现为一长串数字而不是常见的时间格式,需要在使用中进行转化。Hive中可以使用多种数据计算框架,比如:MapReduce、Spark等,在不同情况下选用可以获得更好的效率。

排行

网站地图

Copyright © 2002-2022 香港德胜云网络 版权所有 | 备案号:蜀ICP备2023007363号-5

声明: 本站内容全部来自互联网,非盈利性网站仅供学习交流