Import 使用tpt将excel文件导入teradata

Import 使用tpt将excel文件导入teradata,import,teradata,Import,Teradata,我需要将excel文件加载到teradata表中,该表中已包含数据。我使用了TPT插入器操作符来加载带有CSV文件的数据。我不知道如何使用TPT插入器直接加载excel文件。 当我尝试为excel文件提供TextDelimiter='TAB'时,解析器抛出了一个错误 数据连接器:TPT19134!错误!处理文件“d:\sample\u dat”时出现致命数据错误 a、 csv’。分隔数据分析错误:第1行中的列太少 1) 有人能解释一下将excel文件直接导入teradata时需要哪些选项吗 2)

我需要将excel文件加载到teradata表中,该表中已包含数据。我使用了TPT插入器操作符来加载带有CSV文件的数据。我不知道如何使用TPT插入器直接加载excel文件。 当我尝试为excel文件提供TextDelimiter='TAB'时,解析器抛出了一个错误

数据连接器:TPT19134!错误!处理文件“d:\sample\u dat”时出现致命数据错误 a、 csv’。分隔数据分析错误:第1行中的列太少

1) 有人能解释一下将excel文件直接导入teradata时需要哪些选项吗

2) 如何使用tptLoad/tptInserter在teradata中加载以制表符分隔的文件

我使用的脚本是:

define job insert_data
description 'Load from Excel to TD table'
(
define operator insert_operator
type inserter
schema *
attributes
(
 varchar logonmech='LDAP',
 varchar username='username',
 varchar userpassword='password',
 varchar tdpid='tdpid',
 varchar targettable='excel_to_table'
);
define schema upload_schema
(
 quarter varchar(20),
 cust_type varchar(20)
);
define operator data_connector
type dataconnector producer
schema upload_schema
attributes
(
 varchar filename='d:\sample_data.xlsx',
 varchar format='delimited',
 varchar textdelimiter='TAB',
 varchar openmode='Read'
);
apply ('insert into excel_to_table(quarter, cust_type) values(:quarter, :cust_type);')
to operator (insert_operator[1])
select quarter, cust_type
from operator (data_connector[1]); 
);

谢谢

除了错误与分隔数据相关以及脚本中指定了.xlsx扩展名文件之外,从外观上看,脚本实际上看起来还不错。您确定指定的文件是以制表符分隔的吗

TPT Dataconnector operator支持的格式有:

  • 二进制-二进制数据完全符合定义的模式加上指示符字节
  • 分隔-更容易用于多列人类可读文件,仅限于所有varchar模式
  • 格式化-用于处理Teradata TTU导出的数据
  • 文本-用于包含固定宽度列的文本文件,也是人类可读的,仅限于所有varchar模式
  • 未格式化-用于处理Teradata TTU导出的数据
原生TPT运算符不直接支持原始excel数据(true xls或xlsx格式)。但是,如果您的数据确实是以制表符分隔的,那么这应该不是问题;你应该可以加载这个。在加载分隔文件时要考虑的一个明显点是,CHAR或VARCHAR字段不能包含数据内的分隔符。可以使用“\”转义数据中的分隔符。更微妙的一点是,您不能以小写形式指定制表符分隔符,即
varchar textdimiter='TAB'
有效,但
varchar textdimiter='TAB'
无效。此外,不能将任何其他控制字符(除制表符外)指定为分隔符


如果确实需要加载excel文件,则可能需要将其预处理为可加载格式,如分隔或二进制或文本数据。您可以用任何语言编写单独的代码来实现这一点。

您确定该文件采用制表符分隔格式吗。xlsx扩展通常不以制表符分隔。您是否通过在文本编辑器(如记事本+++)中打开文件来验证文件的内容?您是对的。我在记事本中打开了xlsx文件,只找到了垃圾数据。这应该是TPT错误的原因。想知道是否有任何方法可以使用TPT将excel数据直接加载到Teradata?…不,没有任何通用方法可以使用本机Teradata实用程序将随机excel文件加载到TD中。我认为,原因是Excel文件可能包含复杂的对象(图形/图表/图像)和公式,需要复杂的工具进行适当的操作。您可能会发现一些第三方工具用于此类目的,但如果它只是一个文件,那么手动将其转换为CSV格式,然后使用本机TTU加载CSV文件就更容易了