1

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

.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 脚本

4

2 回答 2

2

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

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

有一个很好的用户指南有很多示例脚本: 作业示例 12:提取行并以分隔格式发送它们

在您的情况下,您将定义一个通用模板文件,如下所示:

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

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

最后你运行一个cmd

tbuild -f your_template_file -v your_job_var_file
于 2016-01-04T15:01:39.063 回答
0

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

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

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

于 2016-01-04T13:31:12.397 回答