00:00
好,那接下来我们看一下这个管理表和外部表。啊,或者说管理表呢,也把它称为内部表啊,这个也OK啊也OK,因为正好跟这个X的关键字做匹配嘛,X的叫外部的,所以呢,它创建的是一个外部表,那这两张表的一个。核心区别在于哪?在于删除表的时候。加入删除表的时候,对于这种内部表,也就是说我们所说的管理表,不加X的关键字创建出来的表,我们在删表的时候。是不是删完表之后15天不看不见了?肯定没了吧?好,那这个表删除了,受table斯看不见了。我们之前说过,受table斯受database basis这个东西操作的是什么数据?是MYS里边的原数据对吧?好,也就是说对于内部表外部表而言,当我们删除这张表的时候,原数据一定删除。原数据就没了,满三个当中就没了,就是受天斯看不见了,但是还有一部分数据吧,一个我们所说的是原数据,还有另外一个在HDF上,还有一个原始数据,真正我们存储的那个数据对吧,它主要内外部表的区别就在于这。
01:16
内部表,他认为这个数据是自己管理的,所以深表的时候,这个数据就。没了。一并删掉,而外部表不好意思。因为你是外部表,你只是通过建一个原数据来管理我这个数据,你想删你删不了。你想删删不了,它的核心区别就在这,那我们演示一下对吧,好呃,这一块呢。我们又是一下这个at。因为default里边呢,我们有很多的一个表,有数据。呃,Test里面是不是有数据。对吧,而且test我们是一张什么表。我们没有加那个S的关键字,给创建了它是一张内部表,好,我们删表就中。
02:06
Table。啊,Drop table这块呢,Drop table之后叫test走删掉了,那我show一下肯定没了,对吧,如果说你执行了这个命令成功了,这个少还有,那就有问题了,对吧,那我们接下来看一下什么东西来。他应该在。这个地方吗,是不是太刷新。太死没了吧,啊,这是我们说的内目表,它不光原数据,也就是麦数数据和ID数据一并删除,但是我们现在来建一个什么。外部表格来。建立一个外部,诶,这个有这两个数据对吧?呃,这个数据我想一看啊,这个应该有,我把它创建一下。看吧,这个是第1PD,大家之前在那个MY当中有两张表,三张表延PPD和location。
03:02
还有印象吗?啊,经常用的那这块呢,我们还是拿它来做演示啊,拿它做演示啊,这个数据呢,我给他导进来啊。数据呢,其实已经发给你们了,在。说还资料,资料里面有个。看到吧,这在里面呢,你把这两个先导进来啊,后面这些呢,是我们做调优的时候要用的100万条数据的啊,做优化的时候,我们到时候看一看,但是我说了就是咱们这个虚拟机。虽然我们采用了优化方案,但是不一定时间会变短。啊,不一定时间会变短啊,好CDD,然后model贝塔。啊看一下,然后呢,把这两个数据给它导进来,在这。好,然后呢,我们创建了一张表,对吧,是这个。DBD啊,在D座的这个库底下,那理论来说这会多一个什么。C。DPT文件夹,这个没问题吧,创建一张表,好,现在我们是不是正常的还是用load data叫local。
04:04
Impulse。附近啊,拿过来,这底下呢,有一个dept.TST,然后into。到这个第1PT张表对吧,走。来,我们查一下。DP走能查到,而且呢,这个数据也是存在哪的。没问题了,嗯,好好,那之前对于内部表来说,我们是不是一删这个文件夹,第1PD文件夹都没了,那这个东西肯定没有了啊,文件夹都没了,那我们再来筛一下什么。第一,PT上。走。首先我们受天莫斯。它肯定是什么没了,因为我们删表成功了,那你原数据的话,有我直接受推波斯看见,那就那怎么用啊对吧,就没了,但是在这个地方我们刷新。
05:02
还在吧,啊,还在,也就是说DVD这个东西呢,还在,它刚才我们所说的这个内外部表的本质区别就在于这。也就是说删除数据的时候啊,删除这张表的时候,它这个原始的数据到底能不能删掉。就在这好,现在有个问题,这个数据在这。这个表没了。我创建表是不是操作的原数据。那我现在把这个表啊,我在创建一遍。大家说能不能,哎,他直接就是回家,我还想大家能不能创建,这肯定能创建了,对吧?啊能创建,但有一个问题,我现在select。能不能查到数据呢?能不能?
06:01
是可以的,来想一下我们之前所讲的汉文那个双数关系。你查询语句是不是先到MY当中读取原数据信息,然后到HD上去看一下这个目录里面有没有数据呢?对吧?好,我们创建表的语句没有变,位置信息是不是指向的HDFS原来的那个路径,那MY里面存的路径是不是跟原来一样,那这个时候他是不是通过MY找到哪个路径。是不是找到DPD这个路径,发现这个有数据,有数据就拿回来,就这样感觉是不是像我们昨天所做的,直接把数据附载进去,他也能查出来,对吧?因为你路径有在MYSQL当中有,然后我根据这个路径。去找到HDFS实际的路径嘛,然后发现这个东西干什么。存在。对吧,啊存在我就能读,就这个意思。好存在就能读,就类似于你用input format指定fair.set input for,你可以指定的文件,同时也可以指定到什么。
07:08
文件夹。有印象吗?你们之前用那个就是就点pass的时候,那后面用的那个pass,你可以写到文件吗?是不是也可以写到文件夹呀,因为我们有多个文件同时读取的时候,是不是写到文件夹呀,那这里边人家就是写到啥呢。文件夹就读出的读取的,因为他根本不知道将来你这个底下C多少文件了,只要你格式一样,我读这个文件夹就行,你里面所有的数据我是不是都能读出来,讲的这个是。啊,是这样的东西就OK了,也就是说重新把这个表原数据找回就能。啊,其实这样看来还有一个工作机制。就还好理解,因为它是有两方面,一个原数据,一个实际数据,查不到数据两种情况,原数据没了查不到,或者说实际数据没了,是不是也查不到,只要你这两个有,我不管你这两个是谁先有的,我都能查到。
08:09
能懂这个意思,只要他俩有,无论你是先有的,先建的表,再放到数据,还是先放的数据再建的表,这个东西我都看都可以干嘛。都可以查得到啊,讲的这个事啊,它是两个独立的内容,不是说必须得非有原数据,再有原始数据我才能查到,而是说这两个只要它存在我就能查到,它不分线索顺序的。不分项目数据是这个点啊好,这个呢是我们内外部表它的一个核心的区别,然后大家想一下,你觉得在公司当中。这两种表如何选择呢?对吧,由于有这个区别,你肯定要建表的时候要考虑到底监内部表监关不表。外部是不是外部表更安全啊,对吧,外部表更安全一点,就是有时候内部表也会用,但是内部表用的比较少,如果你要建一个什么中间临时表这种操作的时候会用内部表,因为它删数据删在方面。
09:07
因为你只是一个临时表,是不是用完了之后,我可能把它删了呀,那你用外部表的话,你删了还得去删HDF数据嘛,因为中间结果你是不要的,你仅仅是作为一个中间结果最后用的,也就是说绝大部分我们见的都是外部圆。啊,其实内部表也有用,仅仅在我们所说的中间表,或者中间临时表这种这种时候去用,用完了就删了这种表。我们就给它干掉,而且特别的,如果你当前这个数据被多个部门所共享的时候,不光你这一个部门用,还有其他部门在用的时候,一定要建什么外汇表,因为你建那个表,一旦你这个表是到你这个业务完了,你想把它删了,你把实际数据删。对吧,很不安全吧,很不安全,所以呢,外部表用的更多,内部表也有在用,就是用在中间表啊,用在充电表,好,那接下来有个问题,创建表的时候实在没注意创建错了。
10:04
我创建成了内部表对吧,我现在发现太不安全了,因为有可能我我随便删,那这个东西我希望把它干什么。转成外部表了啊,也能转啊也能转来看一下在这。首先呢,我们可以去同样的啊,DA写这个form的这个表啊,之前D一个database对吧?啊database那这里面呢,我们来看一下。我们把它拿一下,哎,这个表拿来,拿到它吧,选择这个封号直接执行,我们有的是哪张表啊。DPT这张表对吧。走来看一下,它里面有表示的详细信息,什么input的方法,这些东西又出来对吧?啊,出来表的时候能看见来重要的一个参数。往上找在这块,我们那个语法在这。表的类型。
11:01
我们当时创建这个DP列表,是不是创建的是X对吧,来看。它是一个外部表对吧,也就是说我们现在要做的是把它这个属性给他干嘛。改了。啊,把它属性改了,那怎么改呢,在这。On the table跟我们改那个数据库是不是很像?我们数据库是不是也要改的呀,对吧,只不过说数据库那个地方跟那个不一样的点在于数据库你只能说新加一个属性,然后去改。对吧,传统的有的属性你改不了,这个X是不是我们电脑的时候自带的属性,对吧?来我们把它改一下。On the table。Table哪张表这个DPD。然后下,然后是TBL,然后。然后之后呢,跟上那个内容来拿一下。
12:02
External,注意,这一块是大写。大写。啊,X等于处,那这个是改成什么。这个要改外部表吧,啊也就是说你现在呢,是内部表改外部表用处,那改成什么。啊,我们试一下啊,这个走,然后我们D。叫什么many table,说管理表啊,啊,我们说了管理表呢,你也可以把它叫做那个啊,对吧?啊,它本身叫管理表,叫many表,它这个管理表名字来自于这啊,所以我们说的叫管理表和外部表,那管理表这个东西听起来跟外部表好像没什么关系,对吧?所以呢,我们把它又称为内部表啊,因为它的名字叫manager的table啊,叫管理表,好,那这张表之前我们外部表的时候删除这张表实际数据没有删除啊,那现在我们来看一下。
13:04
Table drop table,然后是那个第BT对吧?啊,首先这块是没了吧。啊,因为无论内部表外部表,它原数据都会删除对吧,实际数据我们看一下,我们再刷新。报错了吧,说没有了对吧,没了吧,也就是说内外部表可以互相转化了,可以互相转化的,那同样的道理,这个是我们把外部表转成内部表啊,同样的可以干什么,现在我们是不是有一个AA这张表啊A这张表有数据吗?有数据好,这张表呢,是内部表,我也就不删了,删的话就没了,对吧,我可以把它。Out table,然后这个AA对吧,啊set,然后是叫TBTS对吧,然后是这个。等于,哎,这个东西我直接拿一下大写,这个一定要大写。
14:06
把这个改成对吧,改成好,然后呢,我们DC或者说直接这样吧,直接删对吧,我也不看了,装table,然后这个诶走。还在吧,哎,那原数率没了,也就是说它俩可以互相转化啊,可以互相转化这块有一个点要注意,就是说。这一块它是区分大小写的啊,区分大小写的,小写的情况下是这样的,我们来看一下。呃,我们创建一个表。可以的,Table我来一个,刚才有AA对吧,CCD吧。嗯,然后。这个是一张内部表,没问题吧,好,我呢把它改成什么。外部。
15:02
我把它改成小写ext na exter对吧?啊,这个地方给它改成T。加一,我们试一下走好,然后是不是DC market。滴滴啊,这个啊,然后这个表叫嗯,滴滴走,嗯。DC。描述一张表。啊,TT0。集体。TD啊,多加一个T双写T是吧,走。那这个地方我们刚才改成了外部表。对吧,啊区分大小姐。学分大一点,但是这个地方他哪块做了改变呢?它再加了一个属性。
16:00
就类似于我们在那个。修改数据库的时候,额外加了一个属性,还有人要吗?对吧,加了,可他并没有改这个地方,所以这个地方要注意一下区分什么。大小写啊,就是大小写,你不能不要写小写都是大写啊,而且是孤立写吧,你内部表转外部表,那就是外部表等于。处内部表转外部表,就外部等于处嘛,对吧?啊,然后就反过来就反之啊反之就内部外部表,这个是固定写法。原数据信息。原数据信息就是它的一个映射关系。描述描述这个整个的,因为我们实际的数据是这样的,我把这个掐一下,因为这个。
我来说两句