程序媛的console——学习手动数据抽取

概述

    通过笔者这周的学习,对数据抽取有了一个大致的了解。所谓数据抽取,就是将数据从数据源(一般为关系型数据库)中抽取出来的过程,可分为全量抽取和增量抽取两种类型。全量抽取比较容易理解,顾名思义,相当于数据库的迁移和复制。增量抽取则是将数据库中的表自上次抽取以来修改、删除、更新的数据抽取出来。而数据抽取的方式也分为手动抽取和使用工具抽取两种类型。手动抽取就是我们通过创建dblink+编写存储过程+编写定时任务的方式来手动抽取数据。而通过工具则是通过ETL工具完成数据的抽取。

Database Link

  上文提到,手动抽取数据中的第一步就是创建一个dblink。dblink是一种数据库之间连接的手段,它相当于一座桥梁,将两个数据库连接起来,使我们可以对另一个数据库中的数据进行无障碍的操作。以下是dblink创建的基本语法:

create databse link link_name connect to r_username identified by r_pwd using 'dbstr';

其中,link_name 是你为这次连接起的一个名字,r_username是你要连接的远程数据库的用户名,而r_pwd 是用户名所对应的密码。dbstr是连接字符串,tnsnames.ora中定义远程数据库的连接串,也可以在创建dblink的时候直接指定。

创建dblink之前必须确定用户拥有创建dblink的权限,否则需要登录sys为用户授权。授权的基本语法为:

grant create public database link,drop public database link to username;

其中username是你要授权的用户名。

 

存储过程

  在上文提到,手动实现数据抽取的第二步就是创建存储过程。所谓存储过程,实际上就是一段sql的语句集。相比于传统的sql,存储过程具有业务系统与数据库交互少,一次编译多次调用,执行效率高等优点。虽然阿里的开发者手册里明确禁止了使用存储过程,但其仍然在政府、医疗、金融等项目的数据库中占有一席之地。存储过程的基本语法为:

CREATE [OR REPLACE] PROCEDURE procedure_name
(参数部分)

is/as
  声明区域
begin
  执行区域
exception
  异常处理区域
end;

定时任务

创建job(定时任务)可以实现定时调用存储过程的功能。下面是笔者写过的一个简单的job

declare
  job number;
BEGIN
  DBMS_JOB.SUBMIT(  
        JOB => job,  /*自动生成JOB_ID*/  
        WHAT => 'prc_job;',  /*需要执行的存储过程名称或SQL语句*/  
        NEXT_DATE => sysdate+3/(24*60),  /*初次执行时间-下一个3分钟*/  
        INTERVAL => 'trunc(sysdate,''mi'')+1/(24*60)' /*每隔1分钟执行一次*/
      );  
  commit;
end;

创建好定时任务之后,运行即可完成定时调用prc_job这个存储过程,实现其中的功能。

 

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值