【发布时间】:2017-10-19 05:02:34
【问题描述】:
您好,我是 teradata 的新手。我正在使用快速加载将平面文件加载到我的 TD DB 中。 我的数据集(CSV 文件)包含一些问题,例如 city 列中的某些行包含正确的数据,但某些行包含 NULL。包含 NULL 的城市列的值存储到下一列,即邮政编码等。由于行中有额外的 NULL,最后一些行包含额外的列。下面给出例子。如何解决快速加载中的这些问题?有人可以用 SQL 示例回答这个问题吗?
City Zipcode country
xyz 12 Esp
abc 11 Ger
Null def(city's data) 12(zipcode's data) Por(country's data)
【问题讨论】:
-
如果您是 Teradata 新手,最好熟悉 Teradata Parallel Transporter (TPT)。 Fastload、MLoad 和 FastExport 现已弃用。
-
您无法使用 FastLoad 解决此问题。输入文件中的数据实际上是什么样子的?
-
我已经编辑了有问题的表格。我希望我的问题现在很清楚。我确实有逻辑,每当系统尝试加载城市数据时,系统必须首先扫描它,就像城市列是否包含 Null 或其他内容,然后从下一列获取数据。我不知道如何在 SQL 中实现这个逻辑
-
再次,输入文件中的数据是什么样子的,是CSV吗? NULL是如何表示的?
-
可能最简单的方法是使用
sed预处理数据,例如sed "s/^NULL,//"(或尝试获取正确的日期)。否则,您将作为单个列加载到临时表中,然后将CASE WHEN STRTOK(col, ',', 1) = 'NULL' THEN ...应用于每个目标列。或者使用这种情况删除NULL,然后CSVLD。
标签: sql pattern-matching teradata flat-file