【问题标题】:Do while loop with GPDB using talend使用 talend 使用 GPDB 执行 while 循环
【发布时间】:2016-12-31 02:45:37
【问题描述】:

我在 GPDB 中有一个非常大的数据集,我需要从中提取近 350 万条记录。我将它用于平面文件,然后用于加载到不同的表。我使用 Talend,并使用 tgreenpluminput 组件从表中选择 * 并将其提供给 tfileoutputdelimited。但是,由于文件量很大,我在 Talend 服务器上执行它时内存不足。

我缺乏超级用户的权限,无法执行 \copy 以将其输出到 csv 文件。我认为像 do while 或行数有限的 tloop 这样的东西可能对我有用。但是我的表没有任何 row_id 或 uid 来区分行。

请帮助我提出解决此问题的建议。欣赏任何想法。谢谢!

【问题讨论】:

  • GPDB有“可写外部表”导出表数据link。这样 gpdb 段将并行导出数据(更多段,更多工作人员来导出数据)。不清楚您要在哪里加载数据(gpdb?或 hdfs?)。不建议使用 \copy,因为所有数据都将通过主服务器。
  • 我想使用 gpload 组件加载。但是有没有办法循环有限的行并将输出聚合到 csv 然后用于 gpload?

标签: jvm export-to-csv talend greenplum


【解决方案1】:

如果您的要求是将数据从一个表加载到不同的表中,那么您不需要先选择load into file,然后再选择from file to table

有一个名为tGreenplumRow 的组件允许您在其中编写直接的 sql 查询(DDL 和 DML 查询)。

下面是一个示例作业,

如果你注意到,这个组件中有three insert statements。会一一执行,用分号隔开。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 2020-11-09
    • 2015-09-13
    • 1970-01-01
    相关资源
    最近更新 更多