使用 cmd windows 的 teradata 导出查询不起作用

teradata export query using cmd windows not working

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

.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
;

旧 post :

我是 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;

我需要将文件导出到我的笔记本电脑的解决方案,就像我放置的脚本一样 ---sample title .... 我使用 teradasql 中的脚本,我正在搜索 cmd 脚本

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

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

Teradata BTEQ 可以执行轻量级加载和卸载功能。 BTEQ 手册非常擅长为您提供有关如何使用各种命令生成 semi-structured 报告或数据提取的概述。它没有生成带分隔符的平面文件的简单命令。如果您查看手册对 EXPORT 命令的概述,您应该对 BTEQ 在使用通道或网络附加客户端时的行为有一个很好的了解。

如果只是几MB和临时导出可以使用SQL助手:在Tools-Options-Export/Import中设置分隔符,也许修改设置Tools-Options-Export 然后在提交 Select 之前点击 File-Export 结果 。 (与 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 以获得更大的导出。

那么你只需要一个像这样的工作变量文件:

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
;'

唯一不好的部分是您必须将 select 中的任何单引号加倍,例如'%super%' -> ''%super%''.

最后你运行一个cmd:

tbuild -f your_template_file -v your_job_var_file