前言
本文是对使用的数据库以及Tableau的内容进行介绍,方便学习者了解数据库方向有哪些内容是需要有所了解以及可以注意的,分享内容基于个人对这些技能的理解,如有错误请及时指出,我会立马改进。
数据库篇
数据库这边,我的公司使用了两种一个是mysql,另一个是redshift,两者有着不同的机制,对不同语句的支持效率也有区别,所以我会在分享的时候碰到不同的句子,也单独拿出来说一下。话说,现在在使用久了redshift之后,真是很喜欢它的高效率了。
- 工具:Navicat,这是我使用最久的操作工具,有界面,使用起来也很方便,感觉做分析,直接抓重点,利用好已有的工具迅速开始学习重要部分是最好的。

- 常规增删改查语句:查询是最大的一部分内容,因为这个涉及到取出来的数据是否准确,而且只有取出数据才能谈更改插入,修改等。我的分享会更多涉及到查询中容易出现的一些问题,如何查询对自己的思路有所梳理,更容易清晰明白的取出需要的数据。列举一些我认为比较有用的语句:
redshift:
- 创建临时表语句
drop table if exists Table;
create table Table interleaved sortkey(columns) as ();
2.with语句
with t1 as (
select * from table)
select * from t1
3.窗口语句
sum(1) over (partition by columns1 order by columns2 desc rows unbounded preceding
4.查进程,杀进程
SELECTTRIM(pid) AS pid,TRIM(user_name) AS user_name,TRIM(db_name) AS db_name,(starttime + INTERVAL '8 HOUR') AS starttime,datediff(MINUTE,starttime,SYSDATE) AS run_second,TRIM(query) AS query
FROM stv_recents
WHERE status = 'Running'
ORDER BY user_name, run_second DESC;cancel pid;
5.exists:专门介绍这个是因为这个相比较于in和not in有很大提升
select name from t1
where not exists (select name from t2 where t1.name=t2.name);
6.时间转换,时间差以及当前时间:对时间进行统计可以说是使用相当多了。
time1 + interval '8 hour'
datediff(day,time1,time2)
current_date
mysql:
1.创建排序
select
(@i:=@i+1) number,
date(completed_at + interval 8 hour) dt,
sum()
from wms_packages wp,(select @i:=0) Num
order by 3
2.查进程、杀进程:
show processlist;
kill pid;
3.时间转换,时间差以及当前时间:跟redshift的语句不同
time1 + interval 8 hour
timestampdiff(day, time1,time2) 或者 datediff(time1,time2)
now()
- 表维护及优化语句:如何查看自己的sql执行效率,并对语句进行优化。优化方向可以从表的方向入手,也可以从语句入手,还可以从存储的数据库入手,由于不同数据库的机制不同,对不同语句的资源占用和效率有所不同。大致几种,建分区,分表,索引,改sql语句等。
- 指标的定义查询方法:涉及到如何使用sql直接查询指标的部分,工作中也有过通过数据库中的表直接清洗数据,用到了正则匹配以及窗口函数,实现过程也比较有趣,会在之后的分享中给大家看下。
Tableau篇
Tableau是一个专注于做可视化的工具,图表展示,字体等都比较美观,而且可视化分析作为一种分析方法,是很有效率很直接的体现数据特征的一种方式,所以在对一些数据内容作判断的时候,我会先拿到tableau上尝试按照我的思路分析下,再根据图表去对代码中的参数进行修改。另外就是报表是需要业务方进行查看的,所以这个工具也是我们用来展示给业务方查看数据的平台,tableau支持的交互操作也是十分方便。
一些图表:





- 数据源连接:
1.包含数据源的实时,还是数据提取,实时在操作数据量较少的数据时足以满足需求,但遇到大数量的数据,每次更改图表,哪怕是改个筛选器,都要等很久,所以引用了数据提取方式,官方的介绍是在5亿以内的数据还是可以保证效率的。数据提取还涉及到数据刷新,刷新方式等。
2.tableau支持的数据源非常之多,可以直连数据库,也可以分析excel,另有tableau prep可以帮助进行数据清理,也是很好用的清理工具。
- 需要了解的名词以及需要操作的:
1.基础:维度、度量、计算字段、参数、集、函数
了解以上内容就可以制作出基础的图来了。
2.中级:页面、工作表、看板、分析等。
了解中级内容后,可以作出仪表板,故事等有分析过程的内容,也可以对分析的数据做一个提前的分析,提供更多的分析思路,尤其是了解页面这个位置放置时间字段后,可以作出图表根据时间进行的动图,已经是可以发b站的水平了。

3.高级:lod表达式
include:include新增维度。
exclude:exclude是排除指定维度。
fix:fix是指定维度。
最重要的也是最难的部分,相当于tableau自己的一套计算函数,有点类似于数据库中的窗口函数,理解这个之后,就可以随心所欲的作出tableau的图了。
4.tableau的优化:
这里就主要针对于数据量大,加载慢的情况了,我这边主要做了数据处理,也会对加载的数据做参数字段筛选,当然还有很多其他方式可供选择。
- 分析的图表及实现方式:其实tableau能实现的图表还是比较多的,也有很多高大上的作品在官方论坛里,但是作图不一定非要高大上,而是要合适,所以我们对一些图的具体使用场景都需要有所了解,所以我也会分享下我是如何选择图表的,而且也有一些图表的制作方法,比如桑基图的实现方式(说实话我更喜欢python的实现方法,简单高效哈哈哈)。
总结
- 本文对我常使用的数据库以及tableau进行了简要介绍,也稍微说了下平常经常会用的部分,这些都会在我的分享中逐步都把详细过程介绍出来。
- excel,linux以及git篇涉及到的部分实际上不是作为数据分析师的重点,只需要有所了解即可,所以我计划先将前三部分内容分享完之后,再看大家的意愿进行分享后面的部分。不过说实话,光python就有很多的内容可说了,所以先慢慢来吧。
- 接下来我会先开始写python部分的知识分享,有感兴趣的同学可以持续关注哦。
- 还是那句话,希望大家有什么意见和建议都私聊我,我会努力继续输出高质量的东西给大家。感恩~
相关链接:
https://zhuanlan.zhihu.com/p/156716425zhuanlan.zhihu.com