teradata 中的动态假脱机 space 分配

Dynamic spool space allocation in teradata

我有大量数据,正在将其从 teradata 导入到 hdfs。这样做时,通常 spool space 不足,作业因此失败。有什么解决办法吗?可以根据数据大小动态分配假脱机 space 吗?或者我们可以从 sqoop import 加载数据到一个临时缓冲区,然后将它写入 hdfs 吗?

如果您运行离开 SPOOL,可能是以下任何一种情况:

  1. 查询编写不正确(即意外的 CROSS JOIN)

    对您的查询进行 EXPLAIN 并检查产品连接或任何看起来需要很长时间的东西

  2. 查询计划效率低下

    运行一个EXPLAIN,看看有没有长的估计。另外,你可以试试DIAGNOSTIC HELPSTATS ON FOR SESSION。当你启用这个标志时,任何时候你 运行 一个 EXPLAIN,在底部你都会得到一堆推荐的统计数据来收集。其中一些建议可能有用

  3. 海量数据

    您在这里无能为力。也许尝试批量导入。

此外,您可以检查查询中用户 运行 的 MaxSpool 参数。您可以尝试增加 MaxSpool 值以查看是否有帮助。请记住,实际可用的线轴将受到未分配 PERM 数量的限制 space。