如何实现ORACLE到VERTICA复制?

时间:2012-10-17 15:39:56

标签: oracle replication vertica

我正在创建Oracle到Vertica流程! 我们正在寻找创建一个运行大量报告的Vertica数据库。现在一切都很酷Vertica是快速的空间使用是伟大的,一切都很好,直到我们到达主要部分从Oracle获取数据到Vertica。 好的,初始加载没问题,从csv转储到Or​​acle到Vertica,加载时间是一个笑话没问题到目前为止每个人的事情都是糟糕的笑话还是有一些神奇的东西在继续!好吧就是快速。 现在坏的部分 - >数据库已启动并运行ORACLE / VERTICA - 我在ORACLE中更改了数据,因此我需要在VERTICA中复制我的数据。现在怎么办: 根据我的测试以及我对Vertica插入的理解,除非每秒最多20次,否则不会使用更新 - 因此实时复制是不可能的。 所以我想从oracle和ETL -it中读取arch日志来创建包含新数据,更改数据,删除值 - 更改数据的CSV数据,然后将其应用到VERTICA中,但我无法获得这样的列表:

因为VERTICA中的显式数据更改会导致性能下降。

所以我正在寻找一些关于如何解决这个问题的想法,知道我不能:

  1. 改变我的ORACLE生产结构。
  2. 使用ORACLE env资源过滤数据。
  3. 无法在我的VERTICA加载过程中使用插入,更新或删除语句。
  4. 我依赖的事情:

    1. 使用复制命令
    2. 数据一致性
    3. 最多60分钟的窗口(每60分钟 - 新的/更改的数据需要转到VERTICA)。
    4. 我已经看过Continuent数据复制,但似乎现在有人想卖掉他们的产品,我无法与他们取得联系。

2 个答案:

答案 0 :(得分:0)

将整个数据加载到新表中 然后更换它们是可以接受的吗?

copy new() ...
-- you can swap tables in one command:
alter table old,new,swap rename to swap,old,new;
truncate new;

答案 1 :(得分:0)

从Oracle(以.csv格式)提取数据并使用Vertica COPY命令加载它。编写一个简单的shell脚本来自动执行此过程。

我曾经使用Talend(ETL),但它很慢,然后转移到传统的过程,它真的对我有用。目前处理18M记录,我的整个过程不到2分钟。