03 2019 档案
摘要:这篇我觉得有点难度,我会更慢的更详细的分析一些 case 。 MySQL 的默认事务隔离级别和其他几个主流数据库隔离级别不同,他的事务隔离级别是 RR(REPEATABLE-READ) 其他的主流数据库比如 oracle 通常是 RC(READ-COMMITTED) 关于数据库有哪些隔离级别我这里就
阅读全文
摘要:全局锁 全局锁是针对数据库实例的直接加锁,MySQL 提供了一个加全局锁的方法, Flush tables with read lock 可以使用锁将整个表的增删改操作都锁上其中包括 ddl 语句,只允许全局读操作。 全局锁的典型使用场景是做全库的逻辑备份。 不过现在使用官方自带工具 mysqldu
阅读全文
摘要:我记得之前博客我也写过关于索引使用的文章,但是并不全面,这次尽量针对重点铺全面一点。 因为索引是数据引擎层的结构我们只针对最常见使用的 Innodb 使用的 B+Tree 搜索树结构进行介绍。 每一个在 InnoDB 的中的索引都对应一颗 B+Tree。举个栗子: 创建这样一个表,并且在字段 k 上
阅读全文
摘要:在使用 CDH 6.0.X 的版本还是自带的是 Spark2.2 的版本,2.2 版本的 Spark 使用 saveAsTable 如果使用overWrite PartitionBy 的功能会有和 hive 行为不一致的地方。 比如我们目前有两个分区 2019-03-22 和 2019-03-23
阅读全文
摘要:为什么要用xargs,问题的来源 在工作中经常会接触到xargs命令,特别是在别人写的脚本里面也经常会遇到,但是却很容易与管道搞混淆,本篇会详细讲解到底什么是xargs命令,为什么要用xargs命令以及与管道的区别。为什么要用xargs呢,我们知道,linux命令可以从两个地方读取要处理的内容,一个
阅读全文
摘要:该篇其实重点涉及两个日志的使用和处理。 一个是 server 层的 binlog 一个是服务器层的 redolog。 首先还是根据主线来介绍当我们在执行更新语句的时候我们在做什么 Redo Log MySQL 使用一种叫 WAL(Write-Ahead Logging) 的技术,它达到的效果是,先写
阅读全文
摘要:看了非常多 MySQL 相关的书籍和文章,没有看到过如此优秀的专栏。所以未来一段时间我会梳理读完该专栏的所学所得。 当我们在执行该查询语句的时候我们在干什么 让我们先来看一个架构示意图 MySQL 架构被清晰的分为了两层,服务器层 | 存储引擎层。 服务器层一般用于存放一些可以跨存储引擎执行的功能,
阅读全文
摘要:Linux下的文件权限 在linux下每一个文件和目录都有自己的访问权限,访问权限确定了用户能否访问文件或者目录和怎样进行访问。最为我们熟知的一个文件或目录可能拥有三种权限,分别是读、写、和执行操作,在这里不做详细说明。我们创建一个文件后系统会默认地赋予所有者读和写权限。当然我们也可以自己修改它,添
阅读全文
摘要:背景 做过数据清洗ETL工作的都知道,行列转换是一个常见的数据整理需求。在不同的编程语言中有不同的实现方法,比如SQL中使用case+group,或者Power BI的M语言中用拖放组件实现。今天正好需要在pyspark中处理一个数据行列转换,就把这个方法记录下来。 首先明确一下啥叫行列转换,因为这
阅读全文
摘要:起初开始写一些 udf 的时候感觉有一些奇怪,在 spark 的计算中,一般通过转换(Transformation) 在不触发计算(Action) 的情况下就行一些预处理。udf 就是这样一个好用的东西,他可以在我们进行 Transformation 的时候给我们带来对复杂问题的处理能力。 这里有两
阅读全文