teradata 中的动态假脱机 space 分配
Dynamic spool space allocation in teradata
我有大量数据,正在将其从 teradata 导入到 hdfs。这样做时,通常 spool space 不足,作业因此失败。有什么解决办法吗?可以根据数据大小动态分配假脱机 space 吗?或者我们可以从 sqoop import 加载数据到一个临时缓冲区,然后将它写入 hdfs 吗?
如果您运行离开 SPOOL,可能是以下任何一种情况:
查询编写不正确(即意外的 CROSS JOIN)
对您的查询进行 EXPLAIN 并检查产品连接或任何看起来需要很长时间的东西
查询计划效率低下
运行一个EXPLAIN,看看有没有长的估计。另外,你可以试试DIAGNOSTIC HELPSTATS ON FOR SESSION
。当你启用这个标志时,任何时候你 运行 一个 EXPLAIN,在底部你都会得到一堆推荐的统计数据来收集。其中一些建议可能有用
海量数据
您在这里无能为力。也许尝试批量导入。
此外,您可以检查查询中用户 运行 的 MaxSpool 参数。您可以尝试增加 MaxSpool 值以查看是否有帮助。请记住,实际可用的线轴将受到未分配 PERM 数量的限制 space。
我有大量数据,正在将其从 teradata 导入到 hdfs。这样做时,通常 spool space 不足,作业因此失败。有什么解决办法吗?可以根据数据大小动态分配假脱机 space 吗?或者我们可以从 sqoop import 加载数据到一个临时缓冲区,然后将它写入 hdfs 吗?
如果您运行离开 SPOOL,可能是以下任何一种情况:
查询编写不正确(即意外的 CROSS JOIN)
对您的查询进行 EXPLAIN 并检查产品连接或任何看起来需要很长时间的东西
查询计划效率低下
运行一个EXPLAIN,看看有没有长的估计。另外,你可以试试
DIAGNOSTIC HELPSTATS ON FOR SESSION
。当你启用这个标志时,任何时候你 运行 一个 EXPLAIN,在底部你都会得到一堆推荐的统计数据来收集。其中一些建议可能有用海量数据
您在这里无能为力。也许尝试批量导入。
此外,您可以检查查询中用户 运行 的 MaxSpool 参数。您可以尝试增加 MaxSpool 值以查看是否有帮助。请记住,实际可用的线轴将受到未分配 PERM 数量的限制 space。