如何使用 Apache Apex 将数据从 DB2 批量摄取到 Vertica

Posted

技术标签:

【中文标题】如何使用 Apache Apex 将数据从 DB2 批量摄取到 Vertica【英文标题】:How to use Apache Apex to ingest data in batch from DB2 to Vertica 【发布时间】:2016-05-16 22:18:15 【问题描述】:

用例:从 DB2 批量提取事务数据(例如行 = 10,000)并将它们插入到 Vertica 数据库。

问题: 我应该从数据库中获取单行还是批量 10k 行,处理然后插入目标数据库? 是否有从一个数据库读取并写入另一个数据库的示例代码?

【问题讨论】:

【参考方案1】:

您应该始终更喜欢批处理执行,您将最大限度地减少网络往返并改善对 Vertica 的负载。

【讨论】:

【参考方案2】:

您可以使用 JDBC 输入和输出运算符从源数据库和目标数据库中获取数据。它们应该具有可配置的批量大小。一般来说,批处理比 tuple by tuple 要快。

查看https://github.com/apache/incubator-apex-malhar/tree/master/library/src/main/java/com/datatorrent/lib/db/jdbc

您可以在项目的 src/site/conf 中添加多个 XML 配置文件,并在启动时选择其中一个。 http://docs.datatorrent.com/application_packages/ 在标题为“添加预设配置”的部分下对此进行了简要描述

【讨论】:

以上是关于如何使用 Apache Apex 将数据从 DB2 批量摄取到 Vertica的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Apache Apex 应用程序内部获取 ApplicationID?

如何重新启动 Apache Apex 应用程序?

如何计算 Apache Apex 中运营商之间的网络延迟

如何使用 Apache Apex 对 Kafka 0.9 运算符进行单元测试?

可以在 Apache Apex 中的 DAG 中间使用输入运算符吗

如何在 DAG 中使用 Apache Apex Malhar RabbitMQ 运算符