歌手.io用于从Oracle PipelineWise compatible中提取数据的点击

pipelinewise-tap-oracle的Python项目详细描述


流水线式tap oracle

PyPI versionPyPI - Python VersionLicense: MIT

Singertap,从Oracle数据库中提取数据,并在Singer spec后面生成JSON格式的数据。在

这是一个PipelineWise兼容的抽头连接器。在

如何使用它

运行此tap的推荐方法是从PipelineWise使用它。当从PipelineWise运行它时,您不需要用JSON文件来配置这个tap,而且大多数事情都是自动化的。请查阅Tap Oracle上的相关文档

如果您想独立运行这个Singer Tap,请进一步阅读。在

基于日志的复制

Tap Oracle基于日志的复制需要在Oracle数据库中进行一些配置更改:

  • 启用ARCHIVELOG模式

  • 将保留期设置为合理且足够长的期限,即1天、3天等

  • 启用补充日志记录

在自托管的Oracle数据库上设置基于日志的复制:

要验证当前存档模式,如果结果是ARCHIVELOG,则启用存档:

  SQL> SELECT LOG_MODE FROM V$DATABASE

要启用ARCHIVELOG模式(如果尚未启用):

^{pr2}$

要设置保留期,请使用RMAN:

  RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 1 DAYS;

要启用补充日志记录:

  SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS

在Amazon RDS上的Oracle上设置基于日志的复制

设置保留期:

  begin
      rdsadmin.rdsadmin_util.set_configuration(
          name  => 'archivelog retention hours',
          value => '24');
  end;

要启用补充日志记录:

  begin
    rdsadmin.rdsadmin_util.alter_supplemental_logging(p_action => 'ADD');
  end;

安装并运行

首先,确保在您的系统上安装了python3或遵循以下步骤 Mac或的安装说明 Ubuntu。在

建议使用virtualenv:

  python3 -m venv venv
  pip install pipelinewise-tap-oracle

或者

  python3 -m venv venv
  . venv/bin/activate
  pip install --upgrade pip
  pip install .

配置

运行tap需要一个config.json文件。最小设置示例:

{"host":"foo.com","port":1521,"user":"my_user","password":"password","sid":"ORCL","filter_schemas":"MY_USER"#optional}

运行测试:

{&RDS{12>需要在Amazon上进行测试。在

  1. 定义需要运行测试的环境变量。在
  export TAP_ORACLE_HOST=<oracle-rds-host>
  export TAP_ORACLE_PORT=<oracle-rds-port>
  export TAP_ORACLE_USER=ROOT
  export TAP_ORACLE_PASSWORD=<oracle-rds-password>
  export TAP_ORACLE_SID=<oracle-rds-sid>
  1. 在虚拟环境中安装python依赖项并运行nose单元和集成测试
  python3 -m venv venv
  . venv/bin/activate
  pip install --upgrade pip
  pip install .
  pip install nose
  1. 要运行单元测试:
  nosetests

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java GridBagLayout不填充区域   java Memozied Fibonacci未运行与常规Fibonacci解决方案   Java Web启动未启动问题   Java中异常和if-then的区别   java从命令提示符运行批处理文件获取错误   socket在Java中验证SSL证书的公共名称   如何在JAVA中检查字符串数组中的相等字   用java语言将音频文件转换成文本文件的语音识别   java为什么foo(1,2,3)没有传递给varargs方法foo(对象…)作为整数[]   java通过蓝牙将奇怪的数据从Arduino传输到Android   java ContainerRequestFilter获取空entitystream   java如何从安卓 studio中删除不兼容类型错误   基本Java错误   在Spring引导中使用REST API时发生java错误   javascript通过从SQL查询派生的URL打开页面