本节课我们来讨论一下 hive 的 体系架构。首先简单了解一下 hive。 hive 是 基于 hive 之上的数据仓库平台, 提供了数据仓库的相关功能。因此要安装部署 hive, 首先需要安装部署 hive。 hive 将所有的数据存入 h d f s, 在 hive 中创建一张表,表对应于 h d f s 的 一个目录。 hive 同时也支持创建分区表, 分区也对应于 h d f s 的 一个目录。 hive 表中的数据对应于 h d f s 的 文件。 hive 支持使用 q l 语句来处理 存储在 hive 中的大数据。但严格意义上, hive 支持的并不是 q l, 而是 h q l, 它是 q l 的 一个子集。 h q l 的 全称是 hive query language, 他并不百分之一百支持 s q l 的 标准。有了这些基本的知识,下面详细讨论一下 have 的 体系架构。 have 最底层是 h d f s, 他 将所有的表和数据以目录或者文件的形式存储在 h d f s 中。 have 的 核心是 have driver, 它是 have 的 执行引擎,这里可以把它理解成是一个翻译器。在默认的情况下, have driver 将会把 h q l 语句翻译成 map reduce, 任务运行在幺二级群上。由于 map reduce 执行的效率较慢,因此在实际使用中,更多的情况下是 将 spark 作为 have 的 执行引擎。有了 have driver 的 支持,就可以通过三种不同的方式来执行 h q l 语句了。第一种方式是 c l i, 它的全称是 commandline interface, 它是 have 提供的命令行工具,使用方法类似于 mysql 的 命令行工具。第二种方式是 j d b c, 它的全称是 java database connectivity, 它是 java 提供的一套标准接口,用于访问关系型数据库。第三种方式是 h w i, 它的全称是 have web interface, 但该工具从 have 二点三版本开始就被废弃掉了。 c l i 和 h w i 可以 将要执行的 h q l 语句直接提交给 hive driver, 但是通过 j d b c 执行 h q l 必须要 hive server 二进行提交。在整个 hive 的 体系架构中,还需要一个关系型数据库来保存 hive 的 原信息。 官方推荐使用 mysql。 hive 的 原信息指的是结构信息,例如表明列名和列的类型等。现在你已经知道 hive 的 体系架构了,那你知道 hive 的 数据模型都有哪些吗?欢迎评论区留言讨论,好了,记得点加号关注赵宇强老师。
粉丝8808获赞1562

很多人第一次看到 have 会把它当成卖 circle 这种数据库,但是 have 跟传统数据库其实不是一类东西,它看起来像在写 circle, 但它真正做的事情,其实并不是帮你快速查一张小表,而是把你写的 circle 翻译成一道可以跑在大数据平台上的一个计算任务。 my circle 更像是一个前台收银员,你问他一些问题,他马上给你一个结果。 have 更像是一个项目经理,你把需求用 circle 的 方式告诉他,然后他再去安排底层的执行任务,比如说 mapreduce 或者 spark, 最后再把结果返回给你。 所以 have 的 核心的价值,它不是去存数据,而是它让你可以用熟悉的 circle 去处理原本很难直接操作的大规模数据。 这也是为什么很多原来会 circle 的 人转到大数据方向之后,第一门接触的语言往往就是 have circle。 have 为什么会流行呢?原因很简单,因为很多人不想一上来就写 java, 也不想直接去碰特别底层的分布式计算,因为那非常的复杂。 如果公司每天有几十句、几百句,甚至是几个 t 的 日式数据,你总不能像 excel 一 样去做筛选吧?这非常麻烦。但如果让业务人员、数据分析师,甚至是很多的开发,直接去写 mapreduce, 这个门槛又太高了。所以这个时候 have 的 作用就出来了, 它相当于在和 dope 这种底层系统上面又包了一层 circle 接口。这样一来,会写 circle 的 人就可以更快的参与到大数据的处理里面。 have 特别适合做三类事情,第一类是离线的速餐,比如说你每天凌晨跑一次任务,统计昨天的订单、用户流量转换率,这种场景就非常适合 have。 第二个呢,是做大批量的数据清洗和加工,比如原本日子很乱,你需要去去重分组、关联汇总分层, have 也非常合适。第三 类是给 b i 报表数据分析做上游的准备。很多报表系统看到的是由 have 做一层一层的计算。但是你要注意, have 也不是万能的,它最大的问题就是 man, 因为他面对的是一个大数据的平台,很多任务一旦跑起来,背后可能就是一个比较重的分布式作业。所以如果你想要做那种高频发、低延迟、实时返回结果的查询, have 往往就是不合适的。那么 have 跟传统的数据库,比如说 my circle, 到底有什么区别呢?这个地方很多人可能容易搞混,因为表面上看, have 里面也有库,也有表,也可以写 select、 where、 group by 这些语句。但本质上,传统数据库更加强调的是事务缩影和实时交互, 但 have 更强调的是基于海量数据做离线的计算。传统数据库追求的呢是快,但 have 更在意的是 数据量大了之后,你还能不能算得动。所以它们不是谁替代谁的一个关系,而是解决的问题本来就是不一样的。那么在二零二六年,现在你还有必要去学 have 吗?我觉得还是有必要的,虽然 have 的 这个技术 有点慢慢被淘汰掉了,因为有很多新的框架,比如说 spark 或者 trino 这些。但是呢, have 是 比较经典的一个框架,你学 have 的 时候,学到的不是一个工具本身,而是大数据的场景下,数据到底应该怎么组织,怎么加工,怎么落表, 而这套东西迁移性往往是很强的,你学了一个之后,后面就知道怎么做了。所以如果你现在把 have 当成一个大一点的 micro, 那 么大概率是学偏了,因为它们根本不是一个东西, 你更应该把它理解成一个让普通人可以用 circle 去调度大规模数据计算的一个工具。如果你本身有 circle 基础,又想玩数据开发树参或者大数据这个方向去发展, have 还是非常值得去学的。

上一期跑通了,第一个完整拍不来,但 k 等于五这个数字是手动设的,为什么不是三,不是七,不是十一?想让数据自己挑出最 u k, 逻辑很直接,每个 k 值给一个评分,评分最高的拿走。 问题是这个评分怎么打才靠谱?这一期回答这个问题,先看一个现象,同一份数据,同一个 k 等于五,同一个 s, k l k n n 只换 random state 切训练测试机准确率能从零点九一跳到零点九八, ctrl 七个百分点。 然后我们引出交叉验证,是后续选超参数的基础。先把现象摆清楚,年尾花固定, k 等于五,固定标准化固定测试级占百分之三十,并且开 stratify, 按类别比例切,唯一变量是 random state, 也就是上一期讲过的随机数种子, 它控制 train test split。 怎么洗牌?洗完牌七十比三十切。我把六个常用种子跑一遍, s、 k、 l 种子零,准确率零点九三三三,种子一是零点九三三,种子七是零点九七七八,种子二十是零点九一一一一, 种子四十二是零点九三三三,种子一百是零点九一一。同一个模型,跨度从零点九一到零点九一一,同一个模型,跨度从零点九一到零点九一一同一个模型,跨度从零点九一个百分点。 原因很简单,测试集才四十五条,多答错一道题就跳二点二个百分点。运气最差的那一刀比运气好的多错了几刀,这是抽样的运气,不是模型的本事。 如果你拿种子一摆那一刀来选 k, 可能选了一个其实不好的 k, 因为评分本身就不可信,要让数据替我们挑 k, 得先解决这个抖动嘎的豆不可嘎解决思路类比月考 判一个学生水平,看一次月考会抖,看四次月考取均分才稳。交叉验证 cross validation, 简称 cv, 就是 数据版的看四次月考,把训练级切成 n 份,每份轮流当一次验证级 跑 n 次,拿到 n 个评分去平均。当这组超参数的最终得分,我们走一遍 cv 等于四的具体动作,假设训练级一百条 c v 等于四,每折二十五条。第一轮第一份当验证折,其他三份训练跑出准确率一。第二轮第二份当验证折,其他三份训练跑出准确率二。第三轮第三份当验证折,跑出准确率三。第四轮第四份当验证折,跑出准确率四。 这里我们提前把术语对一下,每一轮里被留出来打分的那一份就叫验证者 validation fold, 四份用来训练,一份用来打分,一会儿后面三级职责的纪律就建立在这个区分上。 四个准确率取平均就是 k 等于五。这组超三数的 c v 得分,每条样本都当过一次验证级,没有运气分, 要选最 u, k 就 外层循环让 k 跑过一三五七九十一各一遍。四折流程得到六个 c v 得分,挑最高的那个 k。 为什么取均值能稳?看一个容易猜错的事实, 想象一台体重秤,单次称有正负一公斤的随机造声,多称几次取平均误差怎么缩?直觉上称四次缩四倍对吗?错, 乘四次误差只缩二倍,是正负零点五公斤乘十六次缩四倍,是正负零点二,五公斤乘一百次缩十倍,为什么慢?因为单次抖动有正有负,平均时正负相消大半,但不完全抵消。 数学公式是,平均后误差等于单次误差,除以根号 n 弱到 c v, 把称体重换成单切分约四个百分点的抖动。 c v 等于四,缩到约二个百分点。 c v 等于十六,缩到约一个百分点。要把误差减半,得把折数翻四倍。 这里兑现一个伏笔。第二期提过留一交叉验证,例如 one out, 简称 l o o c v, 每次只留一条当验证机,它就是 c v 的 极端特例。 c v 等于训练级样本数, 理论上误差最小,但要学 n 次模型计算成本。爆炸工程上常用 cv 等于五或 cv 等于十, 性价比最高。讲完 cv 怎么算,要立刻补一个工程纪律。测试级只看一次 cv, 切的是训练级内部,测试级再调参,全程不参与,最后用它跑一次,得到最终评分。这一句话是这一期最重要的一条 完整流程。是这样的,原始一百五十条数据,先切七比三,得到一百零五条训练级和四十五条测试级。 c v 在 这一百零五条训练级内部反复切,比如 c v 等 五,就把一百零五条切五份,每份二十一条,每一轮里四份训练折用来上课,一份验证折用来打小测,分五轮取平均,得这组超餐的 c v 得分。四十五条测试级那边一动不动, 等所有超三都拿过 c v 得分,挑出最 u k 之后,再做最后一步,用最 u k 加上完整一百零五条训练级,重训一次模型,最后用从头没动过的四十五条测试级做一次评估。为什么测试级要藏到最后? 如果你拿测试集来挑 k, 那 测试集就被偷看过了,它的评分就不再代表模型见到陌生数据的真实表现。 cv 的 存在就是给你一个不动测试集的渠道来选超餐,这是机器学习工程纪律的底线概念。讲完,打开 demo, 看实际数据。 这个 demo 一 共三个 tab, 这一期只看第一个, cv 者数,对方差控件三个固定 k, 邻居数, cv 者数,随机种子重复次数。 我们先跑默认配置, k 等于五, cv 等于五,重复二十个种子。看图,上方红色那一行是二十次,单千分的准确率三点左右拉开很宽,标准差大约零点零三三。下方绿色那一行是同样二十个种子,每个跑一次五折, cv 区平均 三点几的明显窄,标准差大约零点零一九。 cv 把抖动从零点零三三缩到零点零一九,约一点七倍,理论上根号五约二点二倍,但 iris 数据量小,折与折之间样本相关性较强,实测会比理论略低。 这种偏差工程上很常见。把 cv 折数从五切到十,绿色型变得更窄, 标准差再缩一节到约零点零一八,再切到 c v 等于二。绿色型宽度回升,但仍然明显窄于红色。单切分行折数太少,取均值的空间小。最后切到 l、 o、 o c v, 绿色型接近 c v 等于十的水平, 但你能感觉到计算明显延迟。每跑一次要训练一百零五个模型,这就是 c v 在 真实数据上的样子。 折数越多,评分越稳,成本限性增长。最后给一段代码落地, s、 k、 l、 r, 把 c v 封装成一行 cross vowel score 三个核心参数模型,训练级特征,训练级标签加一个 c v 等于折数,返回 n 个评分组成的数值,调一下 mean 就是 c v 得分。 注意只在训练级上跑,测试级还是不出现规则一致。这一期到这儿,这一期讲清楚的单切分运气问题, c v n 折取平均移根号 n 误差缩放三级职责, crosswell score api 这一期点到没展开的分层 k 者 stratified k fold sklearn 对 分类任务默认开启自动暗类比例切。本期不专门讲嵌套交叉验证。 nesty 的 cv 用于同时调超参和估计泛化无差,复杂场景用,本章不展开。 下一期用 cv 这个评分工具做完整超参数搜索, getc 区 cv api 拍出来防数据泄露,维度爆炸, 加一个综合实战手写数字识别。下一期也是 k n 章节最后一期做整章总结,如果讲的有不对的地方,欢迎在评论区指正,下期见。

一天一个晚安技术点,今天要学习的。是 啊,今天呢就是给大家讲一下我们的一个四个麦谱,那四个麦谱,呃 就是今天这节课内容呢,就是说会先给大家讲一下什么是我们的一个四个麦谱,然后后面就是 呃跟大家说一下四个麦普,我们经常会用到他的一些参数,就是比较常用的一些参数,呃,像其实他就是这个四个麦普,他所用到的参数呢是非常多的。呃,这个 还是需要大家后面慢慢的自己去熟悉。嗯,之后最后的话呢,就是给大家讲一下我们简单的用,呃就是简单去编写,编写一下他的一个 tiff 脚本。 那首先给大家看一下什么是我们的一个 circle map 啊? circle map 呢?它就是我们这样的一个深度测试工具,它主要就是用来对,这就是去呃测试这一个 circle 注入漏洞的。 然后像这边因为他呃有放就是有这一个功能强大的检测引擎,所以在这边我们除了可以去获取数据库当中存储的数据之外,我们也可以去访问他操作系统文件。呃,并且如果我们的权限 啊是这种管理员权限的话,我们还有可能去执行他的一个操作系统的命令啊。然后就是这个四个 map, 四个 map 呢,它功能非常强大啊,就是平常像我们如果去做测试的话,我们可以简单去用一下这个四个 map 啊,四个 map 安装呢其实非常简单,就是大家直接到呃这些 tab 上去进行下载,这就是呃下载的一个地址, 然后它这边呢是用的这个 python 的 环境啊, python 三, python 二它都是支持的,像现在是已经支持 python 三了,然后如果大家 后面不会安装的话,也可以跟着这篇文章再去进行一个安装,就是像我们啊易经网安这一个网安网上面有这样的一个文章,大家就直接搜索 sqlmap 就 可以了。 就是首先就是这一个 python 环境的安装,然后后面就是,呃,当然这边 python 环境的话,它这里是用 python 二七。 然后后面呢再就是这个 sql, 这是 sql, 你 下载下来之后,你再把它解压一下,呃,这里解压的话,呃就把它解压到这个目录下,你可以我们看一下, 就是你这边解压呢,解压之后我们如果去创建的话,就直接右键,然后这边有一个新建,嗯,快捷方式。 然后在这里呢大家就输入一个 cmd 啊,输入一个 cmd 的 就可以了,它这边会自动给它匹配到这个 cmd 的 程序。然后再就是这一个四个 map 的 一个名称,这个大家自己命名就可以了 啊。然后因为我这里是之前安装过了,这里我们就直接给大家看一下,就是在这个起始位置这里啊,大家就右键一下,然后看到它的一个起始位置,把它这个起始位置呢改成 你 circle map 解压的一个位置,这里我们可以看一下, 最主要的就是这一个,呃,四个 map 点 py 它所在的一个目录,然后你就把这样的一个目录放到,呃,把这里给改一下,改改到这个其实位置的一个地方,然后再点击确定, 然后你检测这个四个 map 是 否成功安装呢?你就直接去进行一个运行的话,大家可以看到它这里呢是 会显示这样的一个 sqlmap 的 一个版本,然后我们用到杠 h 命令的话呢,它会显示,呃它一些参数以及参数所对应的它的一个作用是什么,然后在这里大家可以看一下, 其实这边它都有列句, 嗯,这个这个安装还是非常简单的,这个后面大家呃就可以自己去进行一个安装。当然我呃当然可能也有同学就是已经安装了这样的一个 circle map, 这个非常简单,就直接改一下它的这个其实位置,把它改成你 circle map 点 py 所在的一个目录, 然后后面再去运行的时候,它如果出现了这样的一种界面的话,那就证明你这个 so map 呢就成功安装完成了。好,那接下来再带大家来看一下这一个 so map 的 一个使用 啊,这里是一些这个 map 的 一些中文手册啊,这个是某一篇博客上它的一个中文手册,这个是它官方的,这个我们可以带大家去看一下。 嗯,像它的这个手册上面呢是介绍了非常多的这样的一个用法 啊,像如果大家平常啊去做测试的时候啊,不知道它相关的一个参数是什么样的一个作用,比如像我们这边去搜索放屁啊,这个有点多,看一下 放 像这一个杠杆 tables 呢,它就是去列举我们的一个数据表,就是像这种啊,大家也可以自己去下载一下它的一个这样的一个中文手册, 就是像平常如果你想测试什么样的功能,你就可以先在这边去搜索一下,然后看一下它所对应用到的一个参数, 嗯,然后是这个,就是后面大家下载完这个 map 之后呢,也可以去下载一下它的一个呃中文手册, 这个中文手册后面如果大家有任何不理解的地方呢,就可以呃去看它相关的 mini 是 什么,因为在我们这边我们用杠 h 去看的话,它这边是用到了这样的一个英文,英文的话,如果, 呃英语好的同学呢,是可以自己看懂的,但是像一般有些的话,我觉得这种很多时候我们都是需要去翻译一下。 好,那接下来就带大家来看一下就是这个 map 里面常用到的一些参数啊,像这个杠 u 杠 u 呢,它就是去指定我们的一个目标,也就是说,嗯,大家去测试的时候,如果发现某一个地址可能存在有这样的一个四个柱,那你呢就用这一个杠 u 参数去指定这样的一个地址啊,就比如现在我们用我们的 那个靶场为例, 好,那就用这个,那首先呢就是大家去运行一下这一个脚本文件, 然后再用这个杠 u 呢去指定这样的一个地址,这个地址就是大家认为可能存在有搜索注的一个位置。 然后接下来的话,呃大,首先的话呢,就是我们去跑它的一个数据库,那么就可以用到这一个杠 dbs 的 一个 mini 杠 dbs, 它就会去跑当前的就是会去跑它的一个数据库名, 它这里跑数据库呢是跑它所有的这些数据库,如果你只想跑它当前的一个数据库的话,你可以用这个杠杠 print 杠 db。 好,这里我们就可以先去跑一下,可能会有一点卡, 嗯,刚 dbs 呢,就会去跑出它所有的这些数据库,在这边我们也可以看到这里就是跑出它 呃这个网站上面所有的一些数据库,然后后面的话,如果大家想去继续去跑他的一个表名呢,大家就用这个杠低去指定这个数据库名,因为你去跑所有这些表的话,你肯定要 呃指定你跑的那个所有的表,他的一个数据库是什么,所以前面就是得加上这样的一个条件,就问我们用查询语句去查询他的所有表名一样,我们还是要去指定我们查询所有表名的那个数据库名是什么? 就是首先这边用杠 d, 杠 d 其实就是 data base 它的一个呃首字母, 然后这边去指定这样的一个数据库名,然后再去跑它所有的这些表明。在这边大家就可以看到这边就是跑到了这个数据库下面的所有表明, 这里稍微有点卡,我们 然后再用这个杠 dbs 去跑它所有的这些数据库名, 然后就是这一个,呃,这个是一般我们呃经常用到的一些参数。呃,只不过这边就是跟大家说一下,如果平常去做测试的时候呢,大家呃只要去跑到它的一个数据库就可以了。后面的话就, 嗯,还是就像如果没有经过他的一个授权,大家如果去跑他的一些数据的话,就可能造成这种违法的操作,因为像现在这一个网络安全法大家也是知道的嘛。 呃,所以这边就是建议大家点到为止,嗯,就跑到他的一个数据库名就差不多了,然后就可以交了, 然后后面就是再用这个杠 t 呢去指定这样的一个表明,就是你前面不是跑出他的嗯,这个数据库名下面所有的表明吗?然后你再用这个杠 t 啊,这这里注意,这里是大写的一个 t, 然后再去指定某一个表,再去跑跑某一个表明下面的所有的字段里,然后在这里就是 跑出了这个 us 表下所有的这些字段,然后接下来呢,呃,大家如果去跑它所有的这些数据的话,那么你这边就是用这样的一个呃杠 c 大 写的 c, 这里是只有一个杠的,这里是多写了一个, 这里就是用这个杠 c 去指定呃这一个字段名,然后这个字段名的话呢,如果你是要跑它所有 字段的一些数据,那你这边就是比如说你这里写了一个 id, 然后后面要跑 username 跟 password, 那 你直接就用这个逗号去连接就可以了。 这里就是 就比如说你现在去跑这个 id, 然后你又想跑它其他字段里里面的数据,那你这边就是直接这样子去进行连接,然后前面就用到这一个杠大 c 啊,杠 是杠 c, 然后后面呢就是有一个刚刚 d o m p 的 一个 mini, 就 直接把它所有的数据呢进行一个导出,然后是这个, 嗯,这个后面呢大家就可以呃用 summap 去跑一下我们的一个呃那个这一个环境。 哦,那这个大家应该都理解吧?就像这边我们是用杠 c, 然后去指定多个字段,然后多个字段之间呢就用这个逗号去进行连接, 放 dmvp 呢,就会把所有的数据都给跑出来,就是它这两个字段里面所有的数据。 好,那接下来再带大家来看一下,就是,嗯, circle map 跟 bobsuit 去进行这样的一个组合利用,那就是说你这边就是用这个 bobsuit 抓这样的一个数据包,因为有时候,呃,我们 在他的一个 u i l 位置数,我们并不能去进行这样的一个注。如果我们用到这个巴布秀蛇的话,呃,抓到他的一个数据包呢?它里面是有这个扑克数据,还有其他的相关的一些数据。就是说像这边如果我们跟 ubisoft 去进行这样的一个组合的话,我们就可以跳过设置一些其他参数,像这个 cookie 啊,以及 pos 的 数据这一种。呃,那在这里给大家稍微演示一下,就像我们这里去访问我们的这个, 那在这边我们去抓这样的一个数据包,然后首先我们访问一下, 然后在这里呢我们抓到这个数据包之后,我们右键然后选择,嗯,它有一个 copy 处 file, 就是 它会保存到这一个文件里面,然后大家去保存的时候就把它保存到我们 sqlmap 的 这样的一个目录下,呃,这里就是这样的一个目录, 然后再选择其中的一个文件,那你在这里呢,这里我们就保存在一点 tst 里面 保存一下,然后后面我们再去跑的时候呢,就用这个杠 r 去指定这个杠 r 呢,就是会从这个文件里面去加载 http 请求。 呃,那么我们这个就是我们这个文件里面呢,就是它的这样的一个数据包,那里面的话有各种各样的一个请求,就是,呃,像我们这里是它的一个 get 请求,然后里面也有 hoki 的 一些数据,那么在这边我们就可以简单去跑一下。 呃,今天这一个特别慢,我也不知道为什么, 重新打开一个吧。 好,那在这边我们就用这一个杠 r 去指定这样的一个文件啊,比如说就是这一个一点 t s t, 然后我们再去跑,嗯,这里呢它就会在这个文件里面去进行 in this 点 php。 好,我们这边重新保存一下, 等一下我这边设成一个自动的一个形式, 那么就是这个啊,这个后面大家去用的时候呢,就直接,嗯,抓到这样的一个数据包之后,然后再把它保存到这样的一个文件当中,然后再用这个杠 r 的 一个参数去指定这样的一个文件,那么它之后呢就会去跑,嗯,这一个 这边我们等一下可以看到这里它就跑出了这样的一个结果,这里它的扫,这里它是有这样的一个 buy 芒住,然后这是一个报错,住,这边是时间芒住 啊。还有我们的一个联合查询,然后这它会显示最终的一个 payload, 就是 我们呃去住的时候会用到的一段 payload, 然后大家可以看到这个就是联合查询,这个后面也有这一个,就是我们的一个延时盲注, 然后后面大家再去呃,再去复现的话,就是用这样的一个延时盲注,然后看一下最终的一个返回情况。 嗯,那接下来再带大家再来看一下一些这个 mac 常用到的一些参数。嗯,刚刚 uss 呢,它会去列举数据库管理系统当中的一些用户, 然后这个刚刚也给大家演示了,就是说这个它会列,它会报出当前的一个数据库,就是当前数据库名,然后刚 is dba 呢,它会去检测当前用户是不是这一个管理员, 那我们在这里我们就用我们本地的一个环境, 哎,打错了, 好,嗯,那在这个地方大家可以看一下,就是它这边呢显示了它是测试当前用户是不是 dba, 然后呃这边它返回了当前用户是这一个 dba, 也是说 这个 dba 的 话呢,就是我们的一个管理员用户,那么在这里就是测试到他是这样的一个管理员的时候,那后面大家就可以去尝试一下能不能去执行嗯,他的这样的一个, 嗯,这边我们就是去判断有没有管理员权限嘛,然后它这里是为 dba 的 这样的一个权限,然后后面大家再去测试的时候呢,就可以用我们的一个。在这边 在后面呢就大家可以去看一下,就可以去用一下这个杠 o s 杠 shell 的 一个命令, 这里可能也要稍微等一下, 那么它这边大家也可以看到就是模拟一个可以执行任意命令的 shell。 呃,如果大家知道它的一个网站的,呃所用到的一个语言类型的话,那你这里就可以给它写上,这里我们知道它是 psp, 然后它这里显示是说我们需不需要进一步的去查看它的一个,这里可能我需要翻译一下,我们选择 yes, 然后后面 大家在这边它这里是呃所选的一个可写的目录,呃,在这里它是有这一个自定义的一个目录, 自定义目录不是,这边是一些常见的目录,常见目录的话是在这里他列出了一些 啊,不过像一般网站上他不会这样子去进行一个命名。这里呢是我们自定义的目录,就是如果大家发呃找到了他的呃那个目录的话,大家就在这里可以选择一下他的一个自定义目录, 然后我的后面就是要我们提供这样的一个目录,我这里先打开一下网站的目录, 然后大家就把自己找到的它的这样的一个目录呢放在这个地方,它后面呢就会去进行一个执行,如果它出现了这样的一个 os 杠 shell 的 话,呃后面大家就可以去执行一些系统命令了。 好,那在这边我就去执行了一个 ip config, 然后在后面大家可以看到就是成功执行这个命令之后,它会输出,这也就是执行 ip config 之后的这样的一个输出,其实就跟我们自己本地上 去执行返回的是一样的,这也就是相当于我们去执行的那一个网站上的一些相关的一些命令。 那这里我们可以执行一个 dr 啊,这边它是说我们的一个标准输出,选择 yes 就 可以了,这里它就会列出出这一个目录下的文件, 嗯,然后是这个啊,退出的话用这个 s 值,当然它还有一个杠杠 o s 杠 c m d 的 命令, 我们这边也是可以去执行一下的,这里我就执行了一个 ip config, 嗯,同样去选择一下。 好,那在这边就成功输出,我们执行那一个命令之后,嗯,它返回的这样的一个结果。 呃,然后是这几个,这几个呢当然就是要要我们之前呃去判断一下是不是这样的一个管理员的权限,就用这一个杠 is 杠 dba 的 这样的一个命令,然后呃 这里有一个杠杠 crunch 杠 user 就 会猎取当前的一些用户。呃这个呢是去猎取,就是去指定一些注入方法,注入方法的话是有这五种, b、 u、 s、 t, 像我们前面大家看到的 b 呢,就是我们的一个布尔芒注, e 呢,就是我们的一个报错注入, 然后 u 的 话就是我们的一个联合查询。呃 s s 是 这样的一个堆叠,他会多语句的呃去进行一个查询,堆叠就是相当于我们的一个堆叠住,然后 t 的 话就是我们的 呃, t 是 我们的一个时间忙住,这个的话就是大家可以去指定,呃这样的一个住方式,就是指定让他用什么样的一个住方式。 risk 跟 level 呢,就是一个等级,这边它是从一到五,我一般的话就是设置成三, 然后呃 pos 呢,就是大家可以去设置它的这样的一个代理。呃,就比如说有时候大家如果用 sql 去跑一些网站的时候,可能会禁用掉你的一个 ip, 那 么这个时候你就呃可以用一下这个杠 pos 的 一个 去进行一个代理,或者是有时候你想看一下他四个 map 去执行的话,呃都用到的是一些什么样的一个语句,那么在这里你也可以用这个杠 plus, 然后呃后面写上你的一个 bug search 的 一个代理地址, 这里我们也可以去看一下。就是像我们这边去跑这一个杠 plus 啊,这边我们就去跑他的所有的数据库, 这里给大家看一下,这边呢我们的 circle map 呢,就会接收到这一些请求了, 先把这个给关掉。但因为可能是我之前跑过,所以在这里大家看到的请求呢就可能会比较少。那如果我们刚开始去跑一些网站的时候,这边大家就会看到它具体呃跑的一些命令了, 是它执行的一些相关的一些语句,这里它就是用到一个联合查询去跑的, 它里面有一些 u l 编码,你解码一下就可以了。 好,然后就是这个,这个的话大家可以用到这个袋里,然后刚刚 bench 呢,就是之前的也用。

用鞋修把鞋网安能有多快?这是不是自鞋网安席的你东拼西凑缴了一大堆教程,学了几个月发现连个密码都爆破不了。习战经验也是没有的。如果你坚信塑墙这门技术, 全套资料已经打包整理好了,送给需要进阶学习的你们。都是这两年最新的内部干货。来个关注点赞收藏私信评论幺幺幺就可以直接抱走了。废话不多说,直接是漏啊。这边呢? 哎,我看我们看他写没写进去啊哎,应该是没写进去,写不进去他就不报错了 没写进去啊,我们看是不是我命令那写错了。 you select 一 二三四五六,不用管七,我们只是替换了。 呃,单引号没,没错, 这也没错 into 啊。这这这有问题啊,这是 word lab 啊这我们这是我们的路径啊,这个路径你找到错了,就这啊,路径有问题。然后这 c m d b 啊, 你看 p w d 一下啊,这是我们的路径啊,这是我们米米尔斯的路径,然后我们再试一下啊,这不要。 嗯,没报错了没报错了啊,没报错了,我们瞧一眼啊 啊,行了,进来了啊, c m d r。 进来了进来了 啊,李振文也看见了。那你这眼神是真好使啊。那我这我这找半天。 对了,那我们这个东西进来了,进来了之后啊,进来了之后我就不写了啊,剩下就你们写了,进来了之后你看一下他,他怎么搞啊?九九九, 就之前我们访问的是九九九,然后这我们变成什么 emacs 然后 emacs 变成什么 cmd 二点 p h p 对吧?你会发现他能访问啊,能访问一二三四五六这个东西,这这是不是就你的文件夹啊?文件夹后边,然后我们这是 cmd 二点 p r p, 这是我们刚写进去的文件,对吧?要不写进去文件了,你现在能执行吗?现在肯定能执行啊,比如说 我们给他一个参数, c m d 这个参数啊,他不接了一个这个吗?比如说你 ps 杠 e f 啊,不要管前边这一行啊,他,你现在这么看肯定是乱的啊, 但是这个东西呢,已经是我们要达到的目的了,但是呢,还不是我们想那样达到的目的啊,比如说我们输入一个户外卖啊,三 w 内存啊, 啊,二是啥? ip, ip 地址打出来,对吧?挡这一系列的东西啊,那我说我们的目的是干嘛啊?那先把这个 截个图,截个图写在我们的文档里啊,那对应的这个我们也拿过来啊, 那我们的目的是要通过我们刚才演示那种 n c 的 那种方式。那你现在,而不是说现在你写一个是一个,写一个是一个啊,自己琢磨,这是课后作业啊, 这我就不讲了,比较简单啊,如果你刚才那个听懂了你这个,你就会觉得非常简单。哎,这,这怎么这么长, 嗯,别作业了,听着就难受,练习,别练习了,提高进阶。 嗯,使用我们一开始讲过的,就这样就行了啊,然后我们该写的都写了吧, 该写的都写了,嗯,这还差一个图,那行了,就这样了啊,那至少呢,我们现在已经能执行一些命令了,执行命令呢,是不不是最重要的啊, 执行命令了之后我们还要提权,对吧?你看你现在是路由吗?我刚才呼外卖了吧,是吗?不是吧,你要是搞一些你能搞吗?搞不了啊。 嗯,再怎么办呢?提权应该就是我们。呃,不知道你们之前讲没讲过 linux 呢啊,这这东西就放在 linux 讲就不是我我这个专辑讲的东东西了啊,行了, 那有各种各样的方式去提权啊,这也比较简单,最后呢你们可以把这个东西是吧再优化优化,真正的自己去把你,你把你这个东西,把你这个靶场给弄的不能用了,哎,那你 算初步成功啊算初步成功。行了,那我们这个说完了啊,说完了文档我们就上面这个文档呢 截个图啊, 这就是他啊, 往这一扔啊,等他传完传完了,传完了我就不管了啊,那这一趴我们就结束了啊,我们来到下一趴啊, circle injection circle map 其实这这一趴呢应该叫什么呢?你这 circle map 它只是个工具对吧?那我们今天讲完 circle map 你 会发现哇,我们之前讲的那么多 没啥用啊,人家一工具里啥都有,是真的没用吗?哎,有也不是没用啊,有用 这个东西说白了就是我们前面讲的这些手工注入的方式,它跟你结合一下这只是个工具啊只是个工具。那这个专题呢,我们应该叫 circle injection automatic 啊,我们就应该叫自动化的注入啊,它呢只是个工具 应该这样啊,那它呢只是个工具啊。行了,然后呢我们打开它这个, 打开官网瞧一眼,或者不方便,同学你就瞧我这吧,瞧一眼这个东西其实没啥可没啥可瞧的啊,这个东西下载也比较简单啊, 点右边这个这有一个当 love 的 这点点再再放下这个或者下这个都行,下完了呢他就是圆满了啊,圆满之后你想放哪你就放哪想放哪你就放哪啊。但是呢前提是你这个东西你这个机器呢得有 python 的 环境啊,因为这个东西呢是 python 写的 啊,你比如说时间忙碌呢,就跟我们原来写的那种玩意一样啊一样一样一样的。那里它里边的注注脚本呢就是我们之前手讲的那些手工注注方式啊,比如说这是什么 from 什么 in information scammer 什么点 tab scammer 等于什么什么什么什么什么 就是他这点玩意啊离不开这点东西只是他呢为啥要说自动化呢哎不用你人工的去干干干这这么多东西啊,比较简单可能一个命令的事啊。 行了这个说完了下啊装啊,然后下边这这块内容啊这块内容大家有时间去看一看啊 这块呢就介绍他这个东西啊,其实呢我这块内容就原来源自于他这块啊,什么 circle map 特性啊,就是把他说的翻译了一下翻译了一下那其实还是看他这个英文的比较好, 然后下边有一个 documentation 啊就是文档嘛然后 circle map 然后这呢我们先打开一份啊等着他一一会我们要用啊, 下边有个 demo 是 视频的,大家可以去看啊,下边还有一个是 watch more demos here click here 啊,就点这如果你能看的话啊啊具备呢必须得呀, 怎么改成这样了。 刀啊就就看这吧咋使啊我们就看这个啊这个地儿 你看啊他这个东西有非常之多的参数啊,非常的太长了, 这你要谁记谁都记不住啊,这怎么办呢?教你一方法啊,不是这这文档大家都能打开吗?从这从这点啊, document sql map 右侧,这这这点进去,点进去,右侧找到我们这这这个 else 咋使用啊? 它下边就给你列出好多啊,比如说 options 选项嘛,从杠 h 开开始,就是杠个 help, 然后下边 worsen, 然后再下边,这是常见的,一会我们就举举几个常见的,如果你以后用的话啊,跟着搜,比如说 random, 记得有一个 random agent 啊,举 e n t 这比如说找到它,然后看它它后边的说明啊。

朋友们大家好,接下来呢我们来看一道来自于美团的面试题,如何做慢查询优化,对应的薪资呢是三十 k, 对 应的岗位呢是高级开发工程师。 那么如果我们想针对于慢查询的售后进行优化的话呢,首先我们要将执行比较慢的售后呢给他记录下来,所以呢我们要先去开启慢查询的日制,那这里呢我们来看一下啊。呃,关于慢查询日制的这个 开启呢,他有这么呃三个比较重要的这个参数,一个是啊 slow 快 息 log, 通过这个参数呢可以设定咱们的这个慢查询日是否开启,因为它默认呢是关闭的, 一旦开启慢查询日制呢啊,对于我们的买次购性能上是有一定的消耗的,所以说默认是关闭的,然后的话呢,我们如果需要使用到慢查询的时候呢,我们需要使用到这个慢查询日制的时候,我们可以把它开启,然后 这个 slow query file, 这个呢指的是咱们的这个慢查询,是它的一个记录的一个存储的一个路径, ok 吧?啊,那么再一个呢就是 long query time 啊,这个 字段呢就这个参数呢非常关键啊,它呢就是来去确定咱们的这个 circle 执行的时间啊, 执行多久算是慢查询,比如说这个值我给它设置为十的话,那么我就是默认它,只要我这条 code 它执行大于十秒钟的话,那么我们就把它定义为是一个慢查询的 code, 然后把它记录到咱们的这个日期当中去, ok 吧。啊,那么剩下的其实就是慢查询的一些配置方式了,这里呢我就不给大家去做介绍了啊,那么 最终的话呢,我们配置好这慢查询日之后呢,我们会,呃执行一个慢查询的伺候的时候,我们会得到一个这样的一个记录信息啊,这里边记录的这个一个慢查询伺候它的一些相关信息,包括了啊, time 执行时间 啊,包括了这个 user 用户的信息,还有查询的时间,等待锁的时长啊,查询结果的行数,扫描的行数,这两个参数呢很重要啊,就是你的这个查询的多少行,然后呢一共扫描了多少行,比如说这里边啊,我们这条色号查询了五行, 获取到了五行数据,但是呢它实际的话扫描了五百万,对吧?好,那么这样的话呢,我们就能得到一个通过这个日制啊,就分析到一些 这个信息,当然了我们的这条慢查询日历的这呃慢查询的这条 circle 也会被完整地记录到这个日历当中去,得到这条 circle 的 话,我们就可以进进一步进行下呃进行一个优化了,那么 在这里呢,我们重点讲解的就是说,呃,在回答这个面面试题的时候,他问的是这个慢查询优化啊,该怎么去做啊?那么这里呢,我们其实要真正要回答的就是下面的啊慢查询优化的一个思路,我们要给面试官呢把这个对于慢查询优化的他的一个优化思路要说清楚 啊。那这里呢,呃,首先呢咱们伺候性能下降的原因呢,有这么两个方面啊,一个就是等待的时间长,这个一般就是由这个咱们的这个病发执行操作太多导致的这种,呃,这个什么这个呃由于这个它的一个所资源竞争导致的等待的一个状态 啊。再一个呢就是执行时间长,执行时间长呢是我们最常见的一种情况,对吧?我一条售后一执行,然后呢可能要执行个呃,这个几十秒甚至更长的时间啊。那么一般情况下他有这么几个原因啊,一个是呢你的售后语句写的有问题啊,查询语句写的有问题啊。 再一个就是你写的这个税务局他的所以再去执行的时候呢失效了。还有就是你关联的表太多了,教训太多了,以及呢你的服务器的这相关参数设置的有问题,这几个方面呢都会导致我们的售后执行时间长 啊。然后呢咱们就要说一下这个慢查询他的相关优化的一个思路,一个思路啊,这个非常重要,咱们在回答这个面试题的时候,重点就是把慢查询优化的思路给它讲清楚。 首先呢我们来看啊,第一点呢就是我们再去进行售后优化的时候,那有很多慢查询的售后,我们该如何选择呢?在这里呢我们应当去选择这个高病发执行的售后进行优化 啊,因为高病发的售后呢,他发生问题带来的后果肯定也是更严重的,因为一些高病发操作的场景肯定是用户这个操作比较多的场景,所以说我们优先要选择优化高病发执行的售后, ok 吧?然后呢就是呃 第二种定位优化对象的性能瓶颈咱们要看一下,就是去优化搜索的时候我们要看这个,呃,从三个方向我们来看一下,就是这条搜索到底哪出了问题? 第一个呢就是这个 i o 啊 i o 的 问题,那就是我们数据访问呢,他消耗了太多的时间,那这个时候呢,咱们就来看看是不是正确的,什么用到了这个锁影。 然后呢下一个就是说 cpu 啊, cpu 的 情况呢?我们就是说,比如说我的预算呢,花了太多时间,那我就看一下我的这个数据计算的分组排序是不是有问题。再一个呢就是网络贷宽,如果是网络贷宽的问题的话,我们就尝试加大网络贷款, ok 把从这么三个 啊这个方向我们来去进行优化好。再一个呢就是我们再去优化 circle 的 时候,一定要去明确目标啊,明确目标,那么我们需要根据数据库的当前的状态,以及我的这条 circle 啊,跟这个数据库的之间的一个关系 啊。还有就是我这条 circle 他 干他到底是干什么?具体功能是什么?然后呢我们要去 分清楚啊,我能做到的最好的情况下消耗的资源是多少?最差的情况下消耗的资源是多少?然后呢我们再看,我们肯定是不允许最差的情况出现啊,那么我们可能也做不到最好,但是呢我们的优化的目标其实就是为了给用户一个好的体验, 对不对?那可能说可能的话,我们说啊,比如说这个查询的时间,用户的话一般在五秒左右,他也能接受 啊,我们的这个比如我是一个后台的业务系统, ok, 那 么我现在呢执行时间就啊长达三十秒或者更长,那么我可能没办法给它优化到一秒,对吧?甚至更短,但是我可以把它优化到五秒左右,那么我们就可以把这五秒定义为是我的一个优化的一个最终目标啊,然后我们再来看啊, 再一个呢就是我们需要从这个啊 excel 入手,这个就不用说了,就是我们一条四口 把这个慢查询思路给它拿到之后了,肯定我们要通过 excel 来做分析,对吧?然后呢去确定它的有哪些问题啊?再一个就是永远这个用小的结果集呢去驱动这个大的结果集, 那,那这个目的其实他就是呃为了去什么这个减少咱们的对于数据库连接的一个消耗啊,他类似于咱们的这个这种什么类似于一个欠套循环啊?那么外层循环呢,他是一个比较小的这个循环次数,而内循环呢是一个比较大的循环次数,那么 在这里呢,我们就可以把外循环看作是从数据库获取连接的操作,那么外循环的这个次数比较小的话,那我们获取连接的次数就比较小,对吧?那相当于就是我获这个连接五次,然后呢去进行五千次的操作, 否则的话,如果外层的循环啊比较大的话,那我们可能要去获取数据连接的次数就更大啊,所以呢,这里边我们说要永远的用小的结果集驱动大的结果集, 好,然后我们再来看啊,呃,接下来呢,就是要去尽可能的在缩影当中完成排序,这不用说了吧,对吧?啊?我们一定要排序的时候要这个啊,用到咱们的缩影,然后 啊只获取自己需要的列啊,这也是一个常识,对吧?我们查什么就要哪些这段信息,咱们就查询哪些这段信息,对吧?还有啊,只使用最有效的过滤条件,这个的话呢,嗯,就是我们再去进行条件过滤的时候, 那么不是说 web 后边的条件越多越好,对吧?那么实际上呢,我们应该选择这个最短路径访问到数据,那么就比方说我能用主键的时候,我就要用主键作为条件啊,再一个就是尽量的避免复杂的教人和自查询啊,那么每条 coco 的 教音操作呢, 建议不要超过三张表, ok 吧?然后呢,我们可以什么呀?啊?为了去避免这种有的时候可能会连接,就是要连接多张表的话,那么我们就把复杂的时候把它拆分成小的时候, ok 吧,好,然后单个表执行获取结果,在程序当中进行工作, ok 吧?啊,好, 还有一个就是合理的啊,也是我们最后最后一个就是合理的设计并且利用咱们的,所以当然这个学问就比较深了,对吧?啊,每个人的话,这这个东西就是要根据咱们的实际工作经验去举例了啊,看我们是怎么去啊,比较什么合理的设计自己的表的这个字断的,所以呢 啊,那这里边当然有一些什么呀,都有一些这个基础的啊,判断的条件啊,那这里边呢,说如何判断是否需要创建,所以啊,那这里边就是我们比方说,呃,一个作为查询的字段使用比较频繁的话,那肯定要创建了, 对吧?还有一个就是唯一性太差的字段呢,是不适合单独的创建缩影的,这个大家注意一下所谓唯一性太差的字段,比如说我这有个字段啊,状态字段啊,我有这么有五个状态,对吧?那有五个状态的话,就意味着是他只有这么五个值, 对吧?就这么五个值,那在我们进行这个状态字段,通过状态字段进行查询的时候呢,其实他添加缩影其实没有太大意义, 对吧?啊,因为呢,当我们一条快瑞索返回的数据超过了全表的百分之十五的时候啊,他我们就不再去什么这个买车货,就不再去使用缩印扫描来完成这个查询了 啊,所以说你这里边就还不如不要建立缩印,对吧?还要更新频繁的字段,不适合创建缩印,注意啊,如果这个字段频繁的被更新的话,那也就意味着我们的所有文件呢也要频繁的被修改,所以这里边就涉及到所有数据的一个同步的问题啊,也就是会出现这个性能的消耗, 还有就是说不不会出现 vr 指令当中的字断不该创建锁瘾啊,这是肯定的啊,这是肯定的,那么 然后我们再看啊,如何选择适合的锁瘾啊?那对于说单键的这个锁瘾的话呢,尽量选择对当前 query 过滤性更好的 啊,那对于这种联合锁影的话呢啊,我们这个选择联联合锁影的时候啊,选择联合锁影的时候,那么我们还是要啊,咱们要把当前的过滤性最好的这个字段呢啊,过滤性最好的这个字段给它,给它干嘛呢啊?给它放到这个, 放到这个咱们的联合缩影的什么这个前列啊,你其实放到最左的前列就可以了,然后呢就是选择联合缩影的时候呢,尽量这个缩影之段出现在什么?咱们的这个 尽量的缩影之段出现在咱们的 vr 当中呢?比较多的这个缩影, ok 吧?啊,好,那么这个就是我们说呃合理的设计并且利用这个缩影 啊,那么这里呃关于这个慢查询的他的一个优化的思路就是这些啊,所以同学们再去呃回答如何进行慢查询化的时候呢 啊,其实你就算你不去回答这个呃日制这个慢查询,日制的他的一个操作流程我们是没有必要给它详细说的啊,就说一下把它开启,重点呢就是要把这个思路给大家说清楚,那么呃思路说清楚了,那么这个面试题呢,回答的应该就没有问题了, ok 吧?啊,以上呢就是为对于这道面试题的一个讲解啊,希望呢能够帮助到同学们。

都说网络安全是未来的金饭碗,但为什么你投的简历总是石沉大海?因为企业要的是能做实战攻防的人,而不是只会敲基础命令的理论牌。这套内部进阶指南完全对标企业级红蓝对抗需求,把黑客攻防漏洞实操揉碎了胃给你带你告别低效摸索,掌握真正能变现的硬核技术。全套资料已经打包整理好了,都是这两年最新的内部干货,私信评论幺幺幺就可以直接抱走了。 是漏啊,这边呢? 哎,我看我们看他写没写进去啊,哎,应该是没写进去,写不进去他就不报错了 没写进去啊,我们看是不是我命令那写错了。 you select 一 二三四五六,不用管七,我们只是替换了。 呃,单引号没没错, 这也没事 into 啊。这这这有问题啊,这是 word lab 啊,这,我们这是我们的路径啊,这个路径 你找到错了,就这啊,路径有问题。然后这 c m d b 啊, 你看 p w d 一下啊,这是我们的路径啊,这是我们米 max 的 路径,然后我们再试一下啊,这不要了。 嗯,没报错了没报错了啊,没报错了,我们瞧一眼啊 啊,行了,进来了啊, c m d 二进来了进来了啊,李正威也看见了。那你这眼神是真好使啊。那我这我这找半天。 对了,那我们这个东西进来了。进来了之后啊,进来了之后我就不写了啊,剩下就你们写了。进来之后你看一下他他怎么搞啊。九九九,就之前我们访问的是九九九,然后这我们变成什么 in 未知, 然后你 mate 四变成什么 c m d 二点 p h p 对 吧,你会发现他能访问啊,能访问一二三四五六这个东西。这,这是不是就你的文件夹,文件夹后边,然后我们这是 c m d 二点 p h p, 这是我们刚写进去的文件,对吧? 那么写进去文件了,你现在能执行吗?现在肯定能执行啊,比如说我们给他一个参数, cmd 这个参数啊,他不接了一个这个吗?比如说你 ps 杠 e f, 不要管前边这一行啊。他,你现在这么看肯定是乱的啊, 但是这个东西呢,已经是我们要达到的目的了。但是呢,还不是我们想那样达到的目的啊,比如说我们输入一个户外卖啊,三 w 地址啊, 嗯,二是啥? ip, ip 地址打出来,对吧?等这一系列的东西啊,那我说我们的目的是干嘛啊?那先把这个 截个图,截个图写在我们的文档里啊,那对应的这个我们也拿过来啊, 那我们的目的是要通过我们刚才演示那种 n c 的 那种方式。那你现在,而不是说现在你写一个是一个,写一个是一个啊,自己琢磨,这是课后作业啊, 这我就不讲了,比较简单啊,如果你刚才那个听懂了你这个,你就会觉得非常简单。哎,这,这怎么这么长? 嗯,别作业了,听着就难受,练习,别练习了,提高紧接。 呃,使用我们一开始讲过的, 就这样就行了啊,然后我们该写的都写了吧,该写的都写了。嗯,这还差一个图, 那行了,就这样了啊,那至少呢,我们现在已经能执行一些命令了。执行命令呢?不,不是最重要的啊,执行命令了之后我们还要提权,对吧?你看你现在是入团吗?我刚才呼外卖了吧。是吗?不是吧,你要是搞一些你能搞吗?搞不了啊。 嗯,再怎么办呢?提权应该就是我们。呃,不知道你们之前讲没讲过 linux 呢啊,这这东西就放在 linux 讲就不是我我这个专辑讲的东东西了啊,行了, 那有各种各样的方式去提权啊,这也比较简单,最后呢,你们可以把这个东西是吧,再优化优化,真正的自己去把你,你把你这个东西,把你这个靶场给弄得不能用了,哎,那你 算初步成功啊算初步成功。行了,那我们这个说完了啊,说完了文档,我们上边这个文档呢? 截个图啊, 那就是他啊, 往这一扔啊,等他传完传完了,传完了我就不管了啊。行了,这一趴我们就结束了啊,我们来到下一趴啊, circle injection circle map, 其实这这一趴呢应该叫什么呢?你这 circle map 它只是个工具,对吧?那我们今天讲完 circle map, 你 会发现哇,我们之前讲的那么多 没啥用啊,人家一工具里啥都有,是真的没用吗?哎,有也不是没用啊,有用 这个东西说白了就是我们前面讲的这些手工注入的方式,它给你结合一下,这只是个工具啊,只是个工具。那这个专题呢,我们应该叫 circle injection automatic 啊,我们就应该叫自动化的注入啊,它呢只是个工具 我应该这样啊,那它呢只是个工具啊。行了,然后呢,我们打开它这个, 打开官网瞧一眼,或者不方便,同学你就瞧我这吧, 瞧一眼,这个东西其实没啥可没啥可瞧的啊,这个东西下载也比较简单啊,点右边这个,这有一个 download zip 点点 zip file 下这个或者下这个都行,下完了呢,它就是原版了啊,原版之后你想放哪你就放哪, 想放哪你就放哪啊,但是呢前提是你这个东西你这个机器呢得有 python 的 环境啊,因为这个东西呢是 python 写的 啊,你比如说时间忙碌呢,就跟我们原来写的那玩意一样啊,一样一样一样的,那它里边的注入脚本呢,就是我们之前手讲的那些手工注入方式啊,比如说这什么 from 什么 in information scammer, 什么点黑 boss 什么 why 什么黑不 scamer, 章鱼什么什么什么什么什么, 就是它这点玩意啊,离不开这点东西,只是它呢为啥要说自动化呢?哎,不用你人工的去干干干这这么多东西啊,比较简单,可能一个命令的事啊, 好了这个说完了,下啊装啊,然后下边这这块内容啊,这块内容,大家有时间去看一看啊, 这块呢就介绍他这个东西啊,其实呢我这块内容就原来源自于他这块啊,什么 circle map 特性啊,就是把他说的翻译了一下,翻译了一下,那其实还是看他这个英文的比较好, 然后下边有一个 document 啊,就是文档嘛,然后 circle map, 然后这呢我们先打开一份啊,等着他,一会儿我们要用啊,下边有个 demo 是 视频的,大家可以去看啊,下边还有一个就是 watch more demos here click here 啊,就点这,如果你能看的话啊 啊具备呢,必须得耶, 怎么改成这样了? 刀啊,就就看这咋使啊,你就看这个啊,这个地, 你看啊,它这个东西有非常之多的参数啊,非常的太长了, 这你要谁记谁都记不住啊,这怎么办呢?教你一方法啊,不是不是,这这文档大家都能打开吗?从这从这点啊, dqms sql map 右侧,这这这点进去,点进去,右侧找到我们这这这个右字咋使用啊? 它下边就给你列出好多啊,比如说 options 选项嘛,从杠 h 开开始,就是杠个 help, 然后下边 worsen, 然后再下边,这是常见的,一会我们就举举几个常见的,如果你以后用的话啊,跟着搜,比如说 random, 我 记得有一个 random agent 啊,举 e n t 这儿,比如说找到它,然后看它它后边的说明啊, use randomly select h t v u。

你发现用 mybotis 写模糊查询,每次都要手动写 concat, 拼接通配符,还得单独处理转移字体,平添不少工作量。模糊查询本质只是百分号位置不同,核心逻辑完全一致,而通配符转移本就该由框架统一处理。 基于这个思路,你实现了重载的 add 方法,新增 size 参数,一代表左模糊,二代表右模糊,三代表前后模糊。方法内部会自动拼接百分号,同时转译输入里的特殊字体。 现在编辑模糊查询只需要一行代码即可实现单表多表连查,写法全部统一, not like, 只修改 c code 片段就行。从此不用再手动拼接 concat, 也彻底规避了忘记转移通配符带来的问题。你要继续思考,是否需要额外提供仅传入 ccode 的 承载方法。

大家好,欢迎来到新手科技,我是新哥,那上一期视频呢,我们给大家介绍了大处以下的北京系统 skfice。 那这期视频呢,我们来介绍一下 happy 它的原理和加过了设计。那我们也知道哈杜普德 数据层次的问题啊,买 f 六十呢,又提供了一个通用的分布式处理计算框架,但是呢,当你右表复杂的手手写,买 plus 是一个相对比较复杂的操作,而更多数据处理的岗位。大家对于 c 口是比较熟悉了,那因此呢,使用 c c 口比马拉自动起 c 为 map 六 s 这样的解决方案,害物就应用而生。 好,那我们来看一下哈尔特的架构。那哈尔对外提供了一个哈弗 c 口,或者称之为 h t o l 的语言,那 h q 的语法跟我们通常用的 c 口语法并没有太大的差别。那 哈尔对外提供了命令行, cdbc 以及 vipi 各种不同的方式,从而使你在命令终端或者说你的各种语言的拉伯瑞,以及你可以通过 apple 的方式来用哈尔基因数据的交互。那么你可以看得出整个抓位是哈尔的核心,那他的 输入呢,是一段 cc 库的文本,那经过 pass 之后生成相应的执行计划,然后通过各种优化器优化这个计划之后的话,落地 xq 的执行。那 最终这一执行呢,会变成一个一个的 vip 的任务,并且他的数据的输入过程的存储和结果都保存在 hds 上。那你知道 map 六十四跟 iphone s 是好多不象的核心。 这里号的设计非常依赖,有好多我本身提供的能力。那你可能会好奇这边有一个 mate boss, 它是做什么用的呢?那这台 mate boys 呢,存储的是哈弗中的一些语言数据,比如说表列,权限,分区等等这块信息,而且往往它存在于光显示数据库,比如说马西扣中。那在其他的一些大区情况下中,比如说斯巴托普洱特中,太有 会引用到哈尔滨的麦斯岛,从获取到这里的存储数据结构和数据,然后进行计算。那最后呢,我也要谈一下我的感受,有些人会说 spa 和 plus 这样的算框架号称比哈喽快上一百倍,那我们还用哈弗干嘛呢?那但是回顾历史,哈弗的出现, 他让 c 回来代替麦 pluse, 这其实是一个非常大的提升,并且呢,我也非常向他们设计,他充分利用 iphone 的 mate 六十跟 hds 的能力,而 仅仅扩展了 c g 的解析和匀速性存储这么两个必要的部分,那加入的设计依赖清晰,也非常简洁,那哈佛 c 口中所遇到了一些优化的技巧,比如说沙否或者是障碍,同样也是用了普洱少或者 spa。 那我们会在后续的章节中为大家介绍。好,那今天关于哈的部分呢,我们就介绍到这边,那如果说这个视频对你有帮助的话,也欢迎点赞加关注,那我们下期再见。

呦呵,好家伙,最近有个粉丝说面百度遇到了一面的面试官,问慢 solo 的 一个问题,怎么排查?别慌,我给大家梳理一个顺口溜式的排查思路,咱们直接上干货。首先 我们得知道哪些 solo 是 慢 solo, 那 么我们首先得设置一个域值,比如说我超过一秒的 solo, 我 就记录下来。 solo 里面有一个参数叫做 longcode 的 一个配置,超过这个时间的查询都会被记录到我们所谓的慢 solo 日记里面。 而这个慢搜口日记存到表里面,可以存到文件里面,或者说用监控工具抓出来。而当我们拿到慢搜口后,为了帮大家系统准备,我整理了一份 java 面试核心宝典,包含了八股文,高频题、大场真题和讲解, 已经放在我主页了,大家可以直接去取。第一件事情就是用我们的一个 expand 去看我们的执行计划,这一步特别的关键,它能告诉你数据库里面到底是 是怎么执行这条 sql 的, 有没有用上锁,引用了哪个锁影,有没有用临时表,有没有文件排序?重点呢?看几个地方,扫描类型绝对不能超过我们的 rung, 用了哪个锁影,扫了多少数据,还有我们的 excel 里面的附加信息,如果 x plan 还看不明白,那就得上更高级的工具了,比如说 profile, 能够看到每个步骤花了多少时间,或者用 o p t maker chance 看看优化器是怎么做出决策的。看看我们的分析结果,常见的优化手段其实就这几个。第一个就是加缩影, 这是最直接的,但别乱加,得看哪些字段经常用来查询以及排序选择性高的字段放到前面,不过要注意,缩影 不是万能的,太多反而会影响我们的一个写的性能,所以尽量的去用粘合锁影。第二个是改写搜索语句,有的时候稍微的改一下,速度就能快很多, 比如说用覆盖锁影能减少回表,避免大分页查询,用连接查询代替子查询。第三个就是调整表的 结构,特别是复杂的查询,可能得违背我们的三范式,比如说加些鱿鱼字段,或者说拆表。最后我告诉大家,预防才是最好的办法。 solo 上线之前 一定要看执行计划,定期的去检查慢查询日制,看看有没有哪些查询变慢呢?锁影这块一定要建好,尽量的用联合锁影,选择性高的字段, 复杂的统计查询可以用缓存或者预计算,减少单次查询耗时。怎么样,是不是清晰多了?记住这些点,面试官问你慢搜狗的排查,你直接把这套流程说出来,绝对加分。

从零开始的 c, t, f 第三十八章注入攻击进入靶场当中,根据题目, 我们得使用 pos 的 传餐进行 c 口注入。打开 f 十二调试,在 hack 中输入靶场的 url, 根据题目给的参数名为 n, s, s 进行 pos 的 传餐。先随便填入内容有回险, 但这两个并不是真正的 flag。 我 们尝试使用 o 的 buy 查看一下列数,报错了, 我们可以看到过滤了 o, r 和空格,我们将 o r 进行双写,然后将空格替换为思考的注视,能够有回显,直到报错了。慢慢调整到最后了解到只有三列。接着使用联合查询进行注入, 又报错了,过滤了 u n, 对 u n 进行双写,绕过。用哒哒贝斯尝试查看库名没有显示。使用 linux 的 尝试查看下一行数据,显示库名为 n, s, s, d, b。 接着报表,因为过滤了 o r, 所以 information 里面 for 的 o, r 也要双写进行绕过。得到了两个表,我们先查询 n, s, s, t, b 这个表, 最后得到了如期的三个列名,我们同时查看一下三个列的值,最后解得此题 flag。

离线数仓开发用 spark 还是用 have circle? 这个问题呢?是一个星球球友提出来的,相信对于很多做数仓开发的小伙伴来说,是一个大家比较关心的问题。对于当前大数据背景下的数据仓库建设来说, 汉武几乎已经成为离线速仓的标准解决方案之一。汉武最大的特点在于它可以依赖 h d f s 这个分布式文件系统 能够无限横向扩展的存储能力来存储海量的离线数据。而且对于这部分存储的数据来说呢,他不像其他的普通查询数据库,只要你不对其中的数据进行分析, 它几乎不占用任何 c p u 和内存资源。对于汉武来说啊,你既可以把它当成一个 o l a a p 工具,用 have circle 对其中的数据进行数据分析,也可以把它作为一个带有表结构的数据员,用额外的计算引擎对存储在其中的数据进行分析计算,比如 spark。 既然这两种方案都能够达到对数据分析的目的, 那么作为开发者该如何选择呢?我们先来看 have circle, 这种应该是当下最简单的输仓开发方式了。对于 have 来说呢,优点是它天然就提供了 circle 语法以及对应的默认计算引擎。 开发人员只需要根据业务需要针对特定的表来编写对应的收口,就可以达到业务开发的目的。他对于开发人员的能力要求最低,普次性也最广。但是呢,这种单纯的 收口开发方式缺点也很明显。第一个,他屏蔽了大量的数据底层处理原理和计算逻辑,对于开发人员来说,上手难度虽然小,但是对于你的技能拓展来说是不利的。 第二个,你所有的计算都只能围绕在 have 内部进行数据从 have 中读取,计算结果呢,也只能写到 have 表中。 对于要求更高的业务来说,比如你要把计算结果写入到其他数据库, have 是做不到的,在使用上有比较大的局限性。第三个呢, have circle 虽然也很强大,支持各种的 udf, 但是对于一些更为复杂的计算场景来说,比如在我的大数据项目中,对于汉务表中的 ip 之短,我如 如果想要关联存储在 readys 中对应的地理位置信息,单纯用 have circle 就很难做到,所以他无法满足跨不同数据库的数据处理场景。而如果用 spark 的话,以上描述的三个缺点啊,全都能解决。 spark 通过读取悍马作为数据员最大的优势之一在于提供了自由度更高的数据计算方式, 它不仅可以用折扣的方式对数据进行处理,还可以用算字对数据进行更细力度的计算。而且像刚才提到的,如果在数据处理过程中需要读取第三方数据库 redis 的话, 它可以通过编写相应的连接 radis 代码,很轻易的就能做到。而且只要你愿意, circo 跟算子的计算方式还可以在同一个 spa 程序 同时使用。其次呢,以我的项目经验来看, spark 可以做任何跟数据相关的复杂计算,只有你想不到,没有他办不到。再一个呢, spark 兼容的生态非常的广,你读取 hot 的数据,经过各种计算之后, 最后想把结果存储到任何地方都可以,非常的灵活。当然用 spa 做数据计算也是有缺点的。首先呢,他增加了系统的复杂度,毕竟多了一个技术组建嘛, 而且对于开发人员的能力要求也会更高。这个东西啊,如果用不好,不但提高不了系统效率,还可能让你的系统变得更加的不稳定。最后,至于这两者该如何选择,就看你如何去取舍了。

ok, 兄弟们,那么最近呢,也是很多兄弟啊,入手了我手上这把 mate 六八 v 二性能参数啥的呢,想必你们已经看到很多了,那么今天我就不多介绍键盘,直接上干货给你们来一期全方面的 meic 二点零驱动教程。首先我们直接进入驱动, 第一个兄弟们要注意的功能就在右上角,好,这个驱动呢,是可以自定义皮肤和主题的,比如我这一套就是自定义的,那么它可以根据背景的色调调节一下模式,颜色以及模糊度,还有咱们的亮度等等啊, 而且呢它有一个透明的模式,打开以后呢,页面会有种悬浮在你屏幕上面的效果,和我们手机的主题设置很像啊,自定义效果很强, 而且呢它还会有气泡提醒,比如说大小写的切换,灯效的切换等等啊,好,那么现在我们点击键盘进入左上角呢,可以选择配置方案,而且呢还可以管理配置方案,甚至呢还可以绑定相对应用的配置方案好,比如说我把第二个设置绑定的无畏区域,那么只要等我打开游戏, 它就会自动切换为第二配置,不需要任何的切换或者操作。那么这个呢,确实有点意想不到的智能。 好,咱们的第一个啊,咱们这个按键映色这个页面啊,大家懂得就懂,我就不多说了。接下来呢是灯效切换页面,这个页面呢可以切换键盘的背光灯后氛围灯也是灯箱两侧,氛围灯就是灯条啊,他们的灯效效果。 而且呢值得一提的是,这个灯箱和侧板新增的灯效效果会有主色和副色的选择啊,我们可以在这里进行调节,给大家演示一下, 那么这个代表着什么呢?就是说我们会有多种不同配色的光效搭配,那么灯效调色的自由度也是非常非常的高。那么下一页呢,就是咱们这次驱动升级的重中之重,也是本次 vr 升级比较好玩的地方。同步光效页面 好,这个页面呢,你可以制定一整把键盘的灯效啊,比如说现在我我已经添加了三张图片在里面啊,我直接随机选择, 他就会根据我的图片生,然后变为对应的这个灯效。好吧,还是比较好玩,键盘会直接生成同色系的光,更加的简单直接好。那么往左呢,就是光影同步以及音乐律动啊,我主要给大家展示一下 v 二是把键盘的光影同步, 嗯,它是可以实时识别你的屏幕的,它具体是细分为游戏模式和电影模式。游戏模式呢,它是在保留了这个屏幕识别功能的情况下啊,触发特定的灯光效果,目前呢,它只有瓦这一个游戏,后续呢应该还会更新三角洲,永劫无限这些热门游戏, 可以单选或者多选四种不同的同步方案。不过呢有一点需要注意啊,就是释放技能效果,在靶场或者是无限技能情况下呢,是无法触动的,整体体验下来呢,是相当的流畅炫酷。不同的英雄 是不同的技能,触发的光效也都是完全不一样的,我个人觉得呢,这个火蓝的闪光弹是最传神的,他甚至呢会根据你甩的方向去亮,这种小细节真的很有意思。那么除此之外呢,这个挨打了键盘还会亮灯,提示你被哪边打的,这个伤害方向的这个灯效啊,也是蛮有意思的, 那么这把键盘呢,如果是带去网吧打两把,不知道要引来多少兄弟看啊。好,再接往下呢,就咱们的音乐律动的模式,四种律动风格,我个人比较推荐律动频率和中心扩散,选一些古典强弱变化明显的音乐律动效果呢,会特别的好好, ok, 那 么下一个呢,就是咱们的 快速触发设置,具体的参数呢,可以参考往期的 mate 六八 ultra 的 这个参数方案,那么我就不多说了。好吧,懒得选呢,可以直接去网页驱动里面随便挑一个职业预设进行选择好,那么又或者直接选择这个自适应 rt 功能啊,让键盘自己去适应你的操作方式 好,那么兄弟们,总的来说呢,这个小蜜蜂 high 五二点零驱动使用下来呢,是相当的全面,并且相当的方便好用啊。觉得还需要补充的兄弟们可以把驱动问题打在评论区,我是零一下期,再见!

上一集你的 base condition 主架构已经成型了,你决定复盘一下,看看它到底带来哪些收益。你首先从 list 方法的 sql 参数开始,这个参数最独特的地方在于它不区分单表和联表,没有单表和联表的概念,它就是一条标准的 select 语句。 它不关心你查的是一张表、两张表还是二十张表,只负责接收 sql, 交给 spring j d b、 c 去执行。 正是因为这个参数,对单表联表一视同仁, base condition 才能做到不区分主表条件,联表条件子查询只专注于拼装 where 后面的条件片段这一件事。接下来你逐一盘点 base condition 带来的具体收益。第一,一行一个条件, 原始 j d, b, c 要写 if 判空拼接 c 括收集参数三行代码, mybotics 要写三行 x m l 标签,你用一行 at 搞定。第二,判空自动化, at 方法自动跳过空值,你不再需要写任何一个 if。 第三,原子化的语义单元,每个 at 同时处理拼装 c 括和收集参数,占位符和参数永远不会错位。 删一行代码,条件就没了,参数也自动跟着消失。第四,顺序无关调整条件先后不影响 c 括和参数的严格对应。第五, where 括号和 n 括号替代了 where, 一 等于一和标签 where 括号自动把第一个 and 换成 where, and 括号保留 and 前缀用于已有 where 时继续拼条件。第六,能力无上限 add, 不 封装关键字,不封装运算符,不扭曲 c 括语义, 你传进去的是什么? c 括片段拼出来的就是什么,数据库能支持的语法,它都能支持。第七,跨表附用同一套 api, 主表用 add, 联表也用 add, 同一个 condition 类同一套 api。 所有传统框架在单表和联表之间都有一道红勾,而你用一套 condition 填平了这道红勾。 后来你把单表对象化,分页参数,分页方法逻辑删除,自动审计打印 sql 语句,参数合并,所有功能全都加到框架里了。你突然觉得自己高兴的太早了。 base condition 还不能拼接模糊条件,集合条件呢。你累了,你要休息了。

那这节课呢,讲解 high 五数据库的 sa 框架。 high 五数据库, 那么还有是一个大数据时代海量数据的新型数据仓库,在我们以前做这个数据仓库分析的时候,做数据分析的时候,用这个传统的数据库来做分析,比如说这个大家常见的像 d b two 啊,是吧? d b two, oracle 这些数据库, d b 的 olk 数据库来做成那 d b 数的话,用那个 d p f, 用 d p f 分布式,那 olk 它引用它的心跳, 它解决。是啊,多个多个这个数据库节点来并行来处理这个任务啊,有点类似于 m p p 数据库 线下海量文件 p 处理运算,这个还有的解决的问题主要是这个线下海量批量处理,当然现在也集成了这个 spark, 把 spark 作为底层的运算也可以,但是主要是为了那个离线处理。 呃,实时处理的话,我们不会用这个海尔框架,一般用这个。像这个啊, spark 还有这个哈弗卡 类似口的查询方式叫类似口,基本上是用那个适口查询语句来操作,他大部分是跟跟这个传统数据库的那个语法是类似的, 只不过引用了一些特殊的数据结构和一个文件存储方式,还有一些啊,特殊的一些文,一些 文件啊,命令,支持多种文件。呃,嵌套,我们可以用这个,这个 how 也可以嵌套这个 my python 呢, 提供 g d p c a p i 到 highwa, 这是 a g d d c 跟传统数据库的那个方式是一样的,也可以用这个 g d p 式的访问,方便和第三方集成。所以说你可以把 highwa 当做一个数据库用社会来查询的数据库, 那么还有大多数的查询转换成 memory list, 这是一个必须要党必须要了解的 memory。 六十盒或者十八盒任务,现在的是可以选择十八盒任务,但是大多数情况下用 meas 巧妙地应用传统的四个语言呢,那个 简便轻松的来处理大数据的分析服务,因为大家传统想到是我要编一个程序去做这个数据处理,什么行行列呀?数据增呐,是吧, 这种电操作,行操作非常麻烦,但是我这个这么复杂的操作,我用一个时刻就搞定了,说是不是很简便呢?所以这个 c 口是一个国际标准化语言, asi 是个很标准的语言,所以大家都比较通用这个东西,所以用的是这个来提升的。 cpu 来提升的话,是这个工具应用普及的非常广泛,所以说 how 还有广泛的应用在 各大公司,互联网公司和传统企业做这个数据仓库。但是呢,他不支持记录级别的更新插入和删除操作, 但是有一些公司为了呃他也进行了一个改造,还可以做到这样的行级别的插入。但是呢,这样的代价非常高,因为数据定位到每一条进入的时候是个代价是很高的,因为他数据量太大了, 任务的启动需要消耗较长的时间,所以查询的延时啊,比较重。但是他就像秘书一个柴油机一样,柴油机比汽油机的优势是什么呢?柴油机力气大,但是呢, 他跑的比较慢,汽油机的话力气小,但是他跑得快,在高速上跑的话,用汽油跑的话,汽油机跑就非常啊,非常那个经济 传统数据库秒级查询的任务在号中也要也要执行较长时间。他说我们传统数据库用查询一个用户的 信息定位要用户,那这个就是大概零点几秒的,但是在害我中,你把这个文件放在他那里,害我来处理,就是好像把这个普通文件放到阿多普上处理的话,他的他的效率反而下降了。所以说你的数据要必须要 足够大的时候才会体现 hive 的优势,它不只是事务处理,这个很好理解。是啊,它是一个 o o a p 的, 那么事物处理和 l o t p, 所以说在自己基础上的哈,谷歌公司用了这个 hit base 来做一些呃所谓的事物处理,但是并没有像关系型数据库那样的严谨的事物处理 号的框架呢?首先是包括这个这四大部分啊,首先用户接口 c right customer in the interface, 然后是这个 shift server, 这是 shift server, 所以都经过它。然后呢,原数据库 metasore, 这个一般采用 miceco, 它一般呢也采用这个 mac circle 做它的那一个 左边数据库嘛,定位嘛, hifishog 的优点就是呃它的引擎查询非常快,呃,比如说我们要查询一个东西的时候,首先找到原数据来自行的时候非常快,然后最后是那个,下面是那个 driver, 这个叫 driver, driver 以后我们首先跟呃获取到一个 circle 的查询操作,然后写细编译 优化执行,跟传统数据库的那个原理是一样的,跟传统数据库原理一样,执行排排一个计划怎么样执行这块的,所以说他有一个计划执行,最后提交 分给这个后台的,这个 hold 不来执行, hold 的运行就是 reptituse 或者是 spark。 它的执行流程是,首先啊执行一个查询获取计划任务, 然后呢去获取原数据,获取原数据信息,我们所有存储在这个 highw 数据库里面的文件的信息啊,表结构什么的都会存放在 mythical 里面的。大家都知道普通关系型数据, 他也有一个原数据啊,存储发送原数据,就是说我们后来卖车发过来以后再发送计划任务,你怎么去执行?最后再执行这个任务,执行这个 job, 然后获取结果,发送结果到终端, 它流程跟普通的这个关系数据库的那个流程也是一样的。 常用的一些数据库的命令呢,比如说有这个想害我羞得了辈子,他跟 myseco 的那个命令呢, 大部分是相同的,这个这个部分大部分相同的。 sodel base 显示有什么数据库,那又是使用哪个数据库? showtables, 那描述一下这个表的结构, 这个是我们的一个重大命令,我们下面来这样敲一个 hello 命令就可以了。 那这个启动过程有很多啊,启动的一个日志信息。这个 hover 执行完了以后呢,我们来看一看, 显示当前下面有哪些数据库。那数据库里面自己可以创建。我这里有一个 defile 和 high 两个数据库啊, defile 和 high, 那我们先用 high 数据库来 you 是比如说我们现在进入这个 high 数据库, 但是你可以自己创建一个啊,很简单的 create database, 好没有数据库的名称,就这么简单。现在 我们进入这个 highw 数据库,这个 highw 数据库是它取的名字叫 highw。 对, 这又是 access, 这就可以了,很简单嘛。然后 use use, 对,进来了吧?进来以后呢,我们现在来创建一个数据库, 那创建一个表, create a table, 默认情况下这是内部表, create table 是 user info。 呃, user log, 就可以 叫 user waste, 由着 we slog 这样子。然后呢,有一个 id 叫 id user, 请 user id, 它的格式是 string 格式的,那所以这个是 dream, 不是 wechat。 然后它访问的时间呢?叫 west, 叫,应该叫 we west camsonf, 那这个也是 string 格式,是吧?然后还要放一个,然后是他访问的目录 west, 然后就可就这样就可以了。然后呢?回车哦,这里报错了,报错了。这里是不是应该不要插画线?等一下是没有问题。 ok, 可以了 啊。这个数据库我们在 show tables 就可以看得到。我们下面有哪些数据库,这有一个,就一个数据库,那我们再多创建几个。呃, user in for, 比如说这个, 这是 user id eri and t user name 啊, user age, 那用户的年龄叫 int i n t 是可以的啊,用户的类型有 i n g, 还有用户的, 谢谢描述信息,当然还有一些用户的 permissions 权限,那么这样也是个数据库,我们再来 show table 时就可以看得到这一个单页页下面有两个数据库, 我们现在在 d e, s, c 就描述一下这个数据库到底什么东西可以看得到,就可以看到这个表的结构,比如说这个里面有 嘿,那些字段是吧?如果 d s, c, e, s, t, n d extended 呢? 这个命令答错了, extended 这个 student 就可以看得到,这个除了看得到表情之后,可以看得到一些详细的信息。这,这就是表, 以及它的分区信息啊,分区 partitions 等等,以及它的文件格式,像这个 它的文件格式在这里,文件的路径你可以看得到。在 user high warehouse 这个目的,我们在 hello 文件区里面是可以看得到的,叫 user high warehouse, 然后这里有个输出库 d b, 然后是下面的一个文件表,所以说这个也就是说把 highw 数据库转换成一个文件存储在哈多普的文春 boss 文件中 啊,这里面是啊,一些文本格式是我们称的,默认是文本格式的,当然我们可以指定一些。呃,更高级的文。那个表结构创建呢?也就是说这个是一个很简单的 created table, 很简单的, 那里面我们再往里面塞入一点数据吧。在拆数据之前呢,首先看看 user wisdom note 这张表里面有哪些字段,我再往这里面插入一些数据 啊,这个它做完以后,我们现在再来 insert inter 的 in two, 它也只是这种 inter 的 in two, inter 的 in two 表明, 然后后面是直的,没有什么复杂用户 id, 访问时间戳以及 wister 访问的路径, 像这样子 instantly 出。然后呢,用户的编号,访问时间戳以及访问的路径,这是访问网页的路径啊,可以看一下。现在是报错的, 我把这个换成那个双引号来试一下。说不能识别音色的音粗啊,刚才是打错了, 应该少了一个 values, 关键是少了, 这样子就可以了。 你可以看到这个 launch job, 三个 job 这么一个简单的任务,都花了这么点时间来插入数据,由此可见啊,这是它的文件路径。 这个数据库这张表下面还有一个这么一个东西,这是他的文件的数据, 这花了多少钱?花了三秒时间。所以说小样的这个数据操作啊,没必要放 house hover 上面来。 现在呢,我们把它 sling select from, 把这个结果给插出来, 那可以看到这个结果就一条,是吧? first one rose, 你再想象一下,如果这个数据量很大的时候,你这么一个一个搞进来是很慢的, 所以说我们后来,呃,用这个从本地文件去上传的方法,怎么上传呢?那现在我们在手工就就造了这么一个文件,这个文件是我们自己手工操的啊,造出来的。 把这个文件呢,我们要上传到这个 hello 上面来。 阿杜普,然后呢?还记不记得这个命令叫 put put 或者在哪个 mode 下面呢? 那我不知道的话,我们先看一下这个陌路下面的文件,我们应该是放到哪里? 放到这个 user however use how 为后,是吧? 我们要把这个文件 pose 到这个末路下面来啊,就放哪个位,只要放到这个末路后面的下面都可以了,大家方便演示。我们把 放到这个数据库下面 pose, 那这个文件叫 和 top, 然后再放到这个目录下面。 ok, 那我们再来看一下这个文件, 带有这个文件的,那有这个文件以后,我们现在就是要把它,我们先把它合并下来, 把这个文件去上,跟这个表对应起来,这有个命令的,首先我们进入 hier 目录, 我们要把这个文件插入到这个表里面,怎么插的呢?叫 low 的 data in pass, 如果是从本地文件上传,那个叫 local in pass, 刚才我们已经上传到了这个 hello 上面来了,所以说这个 logo 就可以不要了,是不是? 那我现在先用这个来上传试一下,但目录是哪里呢?是 home 后爬到这个末路,然后呢? o b, e 啊,到这啊啊, 其实覆盖的这张表哪张表呢?这一个,然后呢,再运行,可以试一下。 ok, 说已经成功了。 ok 了,那我们再来看看这里面到底有没有这个文件, 可以看到你的文件都已经来了吧,是不是?但是这里出现个问题了,为什么这两个都是漏啊?也就是说总共三个字段,这里就占了一个字段,这两个是空的。为什么呢? 这是因为我们的 super 啊,创建表的时候没有指定它的分格符,分格符是什么呢?分格符就是行分格符,列分格符。我要重新创建一张表,有 vs lock 这个字段不变,但是呢,我们要在末尾指定他的那个的存储格式。 low format, 提立名字 field table 键,每一个字段之间空格。 nice 层面的 buy, 每一行是用那个画行符的,最好称之为 text fire, 打 model 是 text fire, 但是我们这里要指定这个格式。 ok, 这张表创建完了以后呢,我们再来 d e, s, c 看一下。这个 啊,我们看一下。那现在我们再来用刚才那个命令呢,来把我们的这个结果啊搞进来, i visited。 对,提醒完了以后,我们现在再运行一下 select 心 run, 可以看到后面没有这个 lover 的一个部分吗?因为这个有我们指定它的分割符是空格,我们照的数据也是空格,然后每一行是以换行符的,这样的话我们的数据每一行都整整齐齐的插入进来了。 那现在我们再来一个精准查询,这样子, where where user id 等于什么?也就说等于这个, 这就可以定位到一条进入了,这样就可以定位到一条进入了,是吧?看起来还是挺 快的。这个一个文件而已啊,可以看得到这个路径。那我们再 select, 然后再 select 来再做一个单个自动查询。在 how 里面一般不推荐用 select 星, 禁止用 style 型。那这种查到每个字段来这个 hire 的数据库里面呢?它的语法不需要涉及到严谨,它好像可以这样的 wrong。 这样子 啊,放上它以后用完再 select select 什么呢? select 这个 vs pass 还可以倒过来写的,然后再写这个条件, where is id 等于什么 啊?他的结果也可以出来,这就是他的奇妙之处了。 so far 要 slag 或者把符号放最后面来运行也可以,因为这个东西他没那么严谨的,那他反正还会根据你的这个关键字来组建你的思考,来进行这个优化和执行 水耗的命令。暂时先讲到这一些,给大家一个学历,就是下了这个 highw, 这个 highw 在这个阿胖西基金会里面也可以下载。下载以后呢,我们就配置一下,那首先前提是要,必须要,必须要有 hold up, 叫 h t p, 必须要有 h t p, 然后在这个基础上呢,配啊,做一些相关的配置,配置也很简单。然后我的运气还有我啊。本周内容先到此结束。