【问题标题】:teradata export query using cmd windows not working使用cmd窗口的teradata导出查询不起作用
【发布时间】:2016-01-04 09:07:01
【问题描述】:

新帖子: 我已经阅读了教程并找到了这个脚本

.LOGMECH LDAP;
.LOGON  xx.xx.xx.xx/username,password;
.LOGTABLE dbname.LOG_tablename;
DATABASE dbname;
.BEGIN EXPORT SESSIONS 2;
.EXPORT OUTFILE D:\test.txt
MODE RECORD format text;

select a.my_date,b.name2,a.value from dbsource.tablesource a
inner join dbname.ANG_tablename b
on a.name1=b.name2
where value=59000
and a.my_date >= 01/12/2015
;

.END EXPORT;
.LOGOFF;

但它就像不工作

D:\>bteq < dodol.txt
BTEQ 15.00.00.00 Tue Jan 05 14:40:52 2016 PID: 4452

+---------+---------+---------+---------+---------+---------+---------+----
.LOGMECH LDAP;
+---------+---------+---------+---------+---------+---------+---------+----
.LOGON  xx.xx.xx.xx/username,

 *** Logon successfully completed.
 *** Teradata Database Release is 13.10.07.12
 *** Teradata Database Version is 13.10.07.12
 *** Transaction Semantics are BTET.
 *** Session Character Set Name is 'ASCII'.

 *** Total elapsed time was 4 seconds.

+---------+---------+---------+---------+---------+---------+---------+----
.LOGTABLE dbname.LOG_tablename;
 *** Error: Unrecognized command 'LOGTABLE'.
+---------+---------+---------+---------+---------+---------+---------+----
DATABASE dbname;

 *** New default database accepted.
 *** Total elapsed time was 2 seconds.


+---------+---------+---------+---------+---------+---------+---------+----
.BEGIN EXPORT SESSIONS 2;
 *** Error: Unrecognized command 'BEGIN'.
+---------+---------+---------+---------+---------+---------+---------+----
.EXPORT OUTFILE D:\test.txt
 *** Warning: No data format given. Assuming REPORT carries over.
 *** Error: Expected FILE or DDNAME keyword, not 'OUTFILE'.
+---------+---------+---------+---------+---------+---------+---------+----
MODE RECORD format text;

MODE RECORD format text;
     $
 *** Failure 3706 Syntax error: expected something between the beginning of
 the request and the 'MODE' keyword.
                Statement# 2, Info =6
 *** Total elapsed time was 1 second.


+---------+---------+---------+---------+---------+---------+---------+----

select a.my_date,b.name2,a.value from dbsource.tablesource a
inner join dbname.ANG_tablename b
on a.name1=b.name2
where value=59000
and a.my_date >= 01/12/2015
;

旧帖:

我是 teradata 的新手,我发现 mload 可以上传大数据,现在我有疑问,是否可以使用 cmd (win7) 将数据从 teradata 导出到 xxx.txt

--- sample
select a.data1,b.data2,a.data3 from room1.REPORT_DAILY a
inner join room1.andaikan_saja b
on a.likeme=b.data2
where revenue=30000
and content_id like '%super%'
and a.trx_date >= 01/12/2015
;

这是我的 mload up.txt

.LOGMECH LDAP;
.LOGON xx.xx.xx.xx/username,mypassword;
.LOGTABLE mydatabase.LOG_my_table;
SET QUERY_BAND = 'ApplicationName=TD-Subscriber-RechargeLoad; Version=01.00.00.00;' FOR SESSION;

.BEGIN IMPORT MLOAD
  TABLES mydatabase.my_table
  WORKTABLES mydatabase.WT_my_table
  ERRORTABLES mydatabase.ET_my_table mydatabase.UV_my_table;

.LAYOUT LAYOUT_DATA INDICATORS;
.FIELD number * VARCHAR(20);

.DML LABEL DML_INSERT;
INSERT INTO mydatabase.my_table
(               
number =:number
);

.IMPORT INFILE "D:\folderdata\data.txt"
  LAYOUT LAYOUT_DATA
  FORMAT VARTEXT
  APPLY DML_INSERT;

.END MLOAD;
.LOGOFF &SYSRC;

我需要将文件导出到我的笔记本电脑的解决方案,就像我放置的脚本 --- 示例标题 .... 我使用来自 teradasql 的脚本,我正在搜索 cmd 脚本

【问题讨论】:

  • 您的脚本用于 FastExport,但您尝试使用 BTEQ 运行它,当然这会失败。如果安装了 FastExport(或切换到 BTEQ 导出),您可能会运行 fexp &lt; dodo.txt,但是:正如 Rob Paller 已经写的那样,FastLoad/MultiLoad/FastExport 是旧工具,您最好学习 TPT。在 info.teradata.com 下载手册,例如在 www.info.teradata.com/templates/eSrchResults.cfm?&txtpid=B035-2445 找到与您的版本相匹配的正确版本的 TPT 用户指南
  • 结果错误:code **** 18:18:37 UTY1006 CLI 错误:244,MTDP:EM_SSOLOGONFAIL(244):网关的 SSO 登录失败。 **** 18:18:37 UTY2410 使用的总处理器时间 = '0.0936006 秒' code @dnoeth 也许我应该使用 TPT ?因为我仍然使用版本 13 作为数据库。
  • 如果您收到“*** CLI 错误:MTDP:EM_SSOLOGONFAIL(244):网关的 SSO 登录失败。”尝试设置环境变量 GUILOGON=NO

标签: teradata mload


【解决方案1】:

如果它只有几 MB 和临时导出,您可以使用 SQL 助手:在 Tools-Options-Export/Import 中设置分隔符,也许在 Tools-Options- 中修改设置导出,然后在提交您的选择之前单击文件-导出结果。 (在 TD Studio 中类似)

否则,以可读分隔格式提取数据的最简单方法是 TPT,Export 用于大量数据 (GB) 或 SQL Selector (MB)。 TPT 适用于包括 Windows 在内的大多数操作系统。

有一个很好的用户指南,其中包含许多示例脚本: Job Example 12: Extracting Rows and Sending Them in Delimited Format

在您的情况下,您将像这样定义一个通用模板文件

DEFINE JOB EXPORT_DELIMITED_FILE
DESCRIPTION 'Export rows from a Teradata table to a delimited file'
(
  APPLY TO OPERATOR ($FILE_WRITER() ATTR (Format = 'DELIMITED'))
  SELECT * FROM OPERATOR ($SELECTOR ATTR (SelectStmt = @ExportSelectStmt)); 
);

$SELECTOR 更改为 $EXPORT 以进行更大的导出。

那么你只需要一个 job 变量文件,像这样:

SourceTdpId         = 'your system'
,SourceUserName     = 'your user'
,SourceUserPassword = 'your password'
,FileWriterFileName = 'xxx.txt'
,ExportSelectStmt   = 'select a.data1,b.data2,a.data3 from room1.REPORT_DAILY a
inner join room1.andaikan_saja b
on a.likeme=b.data2
where revenue=30000
and content_id like ''%super%''
and a.trx_date >= DATE ''2015-12-01'' -- modified this to a valid date literal
;'

唯一不好的部分是你必须在你的选择中加倍任何单引号,例如'%super%' -&gt; ''%super%''.

最后你运行cmd:

tbuild -f your_template_file -v your_job_var_file

【讨论】:

  • 作为@RobPaller +1 推荐给 dnoeth 答案。我把我的 mload 脚本。 -- 我仍然不明白如何创建 txt 文件以像 c:\>mload
【解决方案2】:

根据您希望从 Teradata 提取的数据量,您可以使用 Teradata BTEQ 或 Teradata 并行传输 (TPT) 实用程序和命令行中的 EXPORT 运算符来提取数据。

TPT 实用程序最终替代了传统的 Teradata 加载和卸载实用程序(FastLoad、MultiLoad、FastExport 和 TPump),并提供了一种更简单的机制来通过 FastExport 生成分隔的平面文件。 TPT 在将大量数据导出到通道或网络连接的客户端时相当灵活和有效。

Teradata BTEQ 可以执行轻量级加载和卸载功能。 BTEQ 手册很好地为您提供了如何使用各种命令来生成半结构化报告或数据提取的概述。它没有一个简单的命令来生成分隔的平面文件。如果您查看手册中对EXPORT 命令的概述,您应该会很好地了解 BTEQ 在与通道或网络连接的客户端一起工作时的行为方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-21
    • 2013-03-25
    • 1970-01-01
    • 2014-08-21
    • 2012-12-05
    • 2013-05-22
    相关资源
    最近更新 更多