Запрос экспорта teradata с использованием окон cmd не работает
Новое сообщение: я уже прочитал учебник и нашел этот скрипт
.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
2 ответа
Если это всего лишь несколько МБ и экспорт ad-hoc, вы можете использовать SQL Assistant: установите разделитель в Tools-Options-Export / Import, возможно, измените настройки в Tools-Options-Export и затем нажмите File-Export Results перед отправкой вашего выбора. (Похоже в ТД Студио)
В противном случае самый простой способ извлечь данные в читаемом формате с разделителями - это TPT, либо Export
для больших объемов данных (ГБ) или SQL Selector
(MBS). 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
В зависимости от объема данных, которые вы хотите извлечь из Teradata, вы можете использовать Teradata BTEQ или утилиту Teradata Parallel Transport (TPT) с EXPORT
оператор из командной строки для извлечения данных.
Утилита TPT является возможной заменой устаревшим утилитам загрузки и выгрузки Teradata (FastLoad, MultiLoad, FastExport и TPump) и предоставляет более простой механизм для создания плоских файлов с разделителями через FastExport. TPT достаточно гибок и эффективен для экспорта больших объемов данных клиентам, подключенным к каналу или сети.
Teradata BTEQ может выполнять легкие функции загрузки и выгрузки. Руководство BTEQ довольно хорошо предоставляет вам обзор того, как использовать различные команды для создания полуструктурированного отчета или извлечения данных. У него нет простой команды для создания плоского файла с разделителями. Если вы посмотрите обзор руководства по EXPORT
Команда, вы должны получить представление о том, как BTEQ ведет себя при работе с клиентами, подключенными к каналу или сети.