00:00
好,那么接下来我们看一下这塔叉的一个实际导入导出案例,那我们主要演示两个,第一个从咱们的Oracle导出到my circlele,另外一个从Oracle导出到HDFS,其实不用讲,大家应该都会,就是这什么三部曲。第一步,看。看一下有哪些参数可以配,第二步写写我们的阶层文件,把里面的相关参数填上,第三步执行没了,特别简单,所以其实这俩差没有什么太多可以,呃,没有太多复杂的操作啊。那咱们先准备呗,先Oracle my circle各准备一张表啊,那咱们之前我看一下啊。咱们在艾特硅谷用户下面。创建过一张表,有一条数据一张三对吧,那my circle里面我想想my circle是不是也有一个。
01:04
哼。呃,叫data发对吧,嗯,Show tables有了,也有一张表叫student字段呢,好像是能对应的对吧,那咱们直接就。干嘛开战了对吧。我们这个时候如果第一步啊,先看一下对吧,杠二呢是my circle reader-W,哎,不对啊or。Reader-w my circle writer好回车瞅眼。嗯,Oracle reader,你看这个参数熟不熟啊,跟MY搜索基本一样。因为他们都属于关系型数据库,那它的参数都大差不差的,还有甚至有一些什么可以写位啊,对吧等等,还可以写query circle啊一样的啊。
02:05
更详细的可以去官网查看,你看可以指定列,可以指定什么连接,它的JDBC,它的表用户名密码没了,那MY搜狗不用讲买搜狗咱们写过了,也是这几个参数啊。对吧,它的列,它的连接选项,它的用户名密码,预处理的circle筛选用户名写入模式这些哪一个不明白,都是随时可以查官网啊,咱们也解释过了啊,那咱们直接,嗯,但是有个地方可能对大家来讲比较陌生了,没见过Oracle的JDBC怎么写。对吧,它的格式比较特殊啊,来看咱们的案例,呃,直接把这个拷过来给大家瞅一瞅啊。来Oracle reader,那今呃列呢,我写了一个心对吧,在我们说了不规范,而且我们一执行的时候,它就会有一个警告说不要用心,为什么不要用心呢?我们业务库很可能就字段会发生变化,比如说我字段敏改呢啊,或者说我增加了一个字段呢,我怎么样啊,很正常,有些特别是越小的公司,它业务库啊,它越不规范,就经常变,变来变去,那就很烦啊,对咱们采集工作来讲是一个很烦的一个事儿啊,那一般来讲还是写列名会好一点啊。
03:32
啊,生产商不建议这么写,那这里我们来关注一下一个重点,JDBC。你看也是JDBC开头没错,冒号,然后呢,Oracle这块大家都能理解,后面跟上一个什么thing。In啊,这个是必根的啊,后面呢,咱们以前MYSQL里面JDBC是不是一个斜杠啊,但他用的是什么at符号啊,就邮箱地址的那个艾符,那主机名跟端口,端口还记得咱们安装默认端口是1521,咱们是不是可以改啊,啊一般咱没改1521,那后面跟上一个啥呢?如果是my circle的JDBC这里是不是一个斜杠,后面跟上什么户名。
04:13
那这个东西就是咱们安装数据库的实例名。对吧,也就是sid,还记得那个sid吗?这就是所谓的sid啊。Orc啊,应该有点印象吧,刚装完啊,这个是它的一个规范,一个格式啊。那么它区分不同类似买车口区分不同库怎么实现,是不是用不同用户来啊,对吧,一个用户就相当于拥有了一个不同的数据库啊,它是以所以很多时候会Oracle会做一个什么叫多租户啊。多租户。这了解一下就行,又没密码,那my circle这个简单瞅一眼,呃,我这边也写了一个星,为啥写星啊。
05:03
为什么?什么原理啊?是不是因为这张表已存在啊,我也不用去指定类型呗,对吧?我写个新,这当然,这是为了什么偷懒生产上千万不要写新啊。人家一变,那你就惨了。不要偷懒啊,那这边JDVC这个很常规了啊,这个咱们得改一下了,我的MYSQL主机是哈多粉一,那数据库是咱们之前创建的data X就data差嘛,表呢是student啊,两个都叫student,应该没毛病,因没密码写入模式,我用插入模式对吧?这张表原来已存在的是已存在的吧。啊对,已经在了,那现在数据是这样子,我们直接把数据插入过来就行,呃,并发数我还给个一就行了,就一条数据整啥呀。
06:01
Am job,呃,Oracle to my circle.j对吧?这是第二步了,写配置文件啊,粘过来啊。保存退出,接下来该干嘛呢?B data差点PYGO指定Jason对吧,刚创建的那个好了回车。诶。我。在哪一个circle recover。无法连接,是我看看是谁的,是买S的还是。哦啊,我有个地方写错了,同学们啊,你看它,它有一个重试机制,对吧,一直在重试啊,他等待四秒。
07:06
你看报错的是中文的,哎,我直接停掉了,嗯,重新编辑一下,有一个地方我忘了改了,改什么呢?Oracle的JDBC啊,我的主机可不是102的,对吧。好,保存退出,改完之后我们重新执行。What?看一下啊。啊,傻的同学们啊,我啊,我的错啊,我的锅。我刚才装在哪,我装在另一台机器,因为我磁盘不够了,脑子糊涂了,要细心一点啊,当然你看日志就知道哪里错了,在执行你总不会再报错了吧?哎,有同学说那不还有一个东西吗?你看这是什么警告,警告什么呢?
08:04
配置文件的列配置存在一定的风险,也就是说啊,你不要写新,它会提醒你啊,有风险不要写新,你只要写的清,他每次都会告诉你的啊,每次都会告诉你,行了,我们一条写入了。那我们再来搜索查一下呗,还查一下这张表。你看这两个对比是不是多了一条数据啊,对吧,这个就很简单了,没什么难的,那接下来咱们来玩另一个啊,写入到HDFS,那同样第一步是什么呢。是不是可以看一下模板,其实你写多了就不用再去看了,呃,杠2ORACLE read,这跟刚才一模一样,Right,我们是HDFS。这个都写过了。这不就刚才那几个吗,对吧。一样的writer hdfs writer我们之前也写了,我们写的MY,写到HDFS,要写这么几个东西,HDFS相对相对参数多一点,列的话我们注意一个什么。
09:11
要把列名类型,它类型不能省对吧?那这里写新肯定是不行的,因为HDFS现在还没有什么所谓的表结构啊呃,压缩可以指定def FS分隔服务文件名路径模式对吧?好呃,这个咱们也不用去敲了啊,没什么意义,我们拿过来改一改。好,Oracle这边还是写个心对吧,JDBC大家熟悉一下啊,这边得改一下,我是哈杜二对吧,你们用户名是艾特硅谷,密码000表示是student,没问题啊。Hdfs writer对吧?我们说指定列的时候一定要详细写出来名字跟类型,每一列都是一个大括号包裹啊,那列与列之间用逗号分格啊,那ID name int string啊,类型要对应上啊,好,那这个地址得改8020,那分隔符,我这次晚点啥呢?嗯,用分号吧,好吧。
10:27
那名字叫oracle.tst路径呢,我也放到根目录模式呢,追加并发数一好,这就完事了呗。应该没问题了。YM job Oracle to HT fs.jason i3T。啊,保存退出执行就行了呗,B贝塔他点py job。Oracle to HD FS。
11:02
这边还同样是个告警啊,这个正常的,因为咱们写了一个星啊,列名写了一个星。任务其实已经完成了,他在统计对吧。一条。呃。9870。看一下是不是有一个oracle.tst啊,后面还同样还带了一个后缀对吧。呃,点一下查看一下。对吧,数据出来了,分隔符呢,是分号,这个都玩过了。所以呢,这个也是比较简单啊。
我来说两句