如何实现ORACLE到VERTICA的复制?

问题描述 投票:0回答:3

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

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

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

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

我依赖的东西:

  1. 复制命令的使用
  2. 数据一致性
  3. 最多 60 分钟窗口(每 60 分钟 - 新/更改的数据需要发送到 VERTICA)。

我看到了持续的数据复制,但似乎现在有人想卖他们的产品,我无法联系到他们。

oracle replication vertica
3个回答
0
投票

将把整个数据加载到一个新表中 然后更换可以接受吗?

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

0
投票

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

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


0
投票

最近,我们使用 debezium 和 Kafka 流实现了从 SQL Server(130 个数据库)到 Vertica 中的集中式数据仓库的实时刷新。在这之间编写了一个脚本来识别插入/更新/删除并在 Vertica 中应用相同的操作。

Avinash 关于使用 shell 脚本的回答听起来很棒。

© www.soinside.com 2019 - 2024. All rights reserved.