2017-02-22 25 views
0

Я использую ODBC и R для подключения к базе данных (Teradata), это работает для соединения. У меня есть data.frame с 2 столбцами/переменными.Создание таблицы с использованием data.frame R База данных с использованием ODBCConnect TERADATA FASTLOAD

Есть ли способ сказать: (Создать таблицу Имя Как Выбрать * из data.frame)

В основном я хочу, чтобы импортировать data.frame в таблицу.

Это работает:

sqlSave(con, datafile, tablename = "TABLE.NAME", rownames = FALSE, append = TRUE, fast = TRUE) 

Так это работает, но это медленный процесс, есть в любом случае для реализации FastLoad/TPump, или что-нибудь подобное? Когда у меня есть большие файлы?

См. Пример.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~

sessions 2; 
errlimit 25; 
logon tdpid/ID,PASSWORD; 

CREATE TEST_FAST_UPLOAD (
     CUST_KEY INTEGER, 
     HOUSEHOLD_KEY INTEGER) ; 

set record TEXT; 

define 
     CUST_KEY(integer, 
     HOUSEHOLD_KEY(integer, 
     ) 

file=insert.input; 

show; 

begin loading TEST_FAST_UPLOAD errorfiles TEST_FAST_UPLOAD_ERR; 

insert into TEST_FAST_UPLOAD(
     :CUST_KEY, 
     :HOUSEHOLD_KEY 
); 

end loading; 

ответ

0

Я на самом деле просто проработал это сам. Вот как я это сделал:

  1. Сохраните файл data.frame в файл фиксированной ширины, используя write.fwf() из пакета gdata. Например, write.fwf(x = dataFrame, file = "dataFile.txt", sep = "", colnames = FALSE, width = c(20, 20)).
  2. Создайте сценарий быстрой загрузки в виде txt-файла, например. fastLoadExampleScript.txt. Если вам нужна помощь в этом, я рекомендую начинать с http://www.info.teradata.com/HTMLPubs/DB_TTU_13_10/index.html#page/Load_and_Unload_Utilities/B035_2411_020A/2411Ch01.03.24.html. Несколько важных замечаний: (a) при использовании write.fwf с sep = "", как и я, вам не понадобится ни один из delim или newlinechar, (b) используйте SET RECORD TEXT и убедитесь, что ширина, указанная в функции должны соответствовать тем, которые содержатся в разделе DEFINE сценария быстрой загрузки.
  3. Первый setwd() в каталог, содержащий dataFile.txt и fastLoadExampleScript.txt. Затем запустите shell("fastload < fastLoadExampleScript.txt").

EDIT: Что касается сценария, большинство из них выглядит хорошо, за исключением DEFINE части, которую я думаю, должно быть

define 
     CUST_KEY(char(20)), 
     HOUSEHOLD_KEY(char(20)) 
+0

Awesome, дайте мне взглянуть, спасибо за все время и обратной связи, обмен очень здорово! –

+0

Почему формат фиксированной ширины помогает? просто пытаясь понять? –

+0

При попытке использовать столбцы переменной длины я никогда не смог заставить его работать. Это возможно, но я не мог понять это. Имейте в виду, что таблица базы данных может по-прежнему иметь какой-либо тип данных. – efh0888

Смежные вопросы