Использование быстрого экспорта teradata в команде sq oop - PullRequest
0 голосов
/ 15 января 2020

Возникла проблема с sqooping из базы данных Teradata при использовании метода Teradata "--fast-export", пример sq oop, запрос ниже


-Dhadoop.security.credential.provider.path=jceks:/PATH/TO/password/password.jcecks

-Dteradata.db.job.data.dictionary.usexviews=false

--connect

jdbc:teradata://DATABASE

--password-alias

password.alias

--username

USER

--connection-manager

org.apache.sqoop.teradata.TeradataConnManager

--fields-terminated-by

'\t'

--lines-terminated-by

'\n'

--null-non-string

''

--null-string

''

--num-mappers

8

--split-by

column3

--target-dir

/THE/TARGET/DIR

--query

SELECT column1,column2,column3 WHERE column3 > '2020-01-01 00:00:00' and column3 <= '2020-01-12 10:41:20' AND $CONDITIONS

--

--method

internal.fastexport

Я получаю ошибку

Причина: com.teradata.connector.common.exception.ConnectorException: java. sql .SQLException: [База данных Teradata] [TeraJDB ​​C] [Ошибка 3524] [SQLState 42000] У пользователя нет доступа CREATE VIEW к базе данных DATABASE.

Я подозреваю, что в быстром экспорте будет реализована временная промежуточная таблица / представление, и задание под капотом будет загружаться из временной таблицы. , Это механизм sq oop и возможно ли его отключить?

Большое спасибо

Дан

1 Ответ

0 голосов
/ 15 января 2020

Быстрый экспорт не реализует никакого представления для извлечения данных. Представление создается Sq oop на основе значения --query. Следовательно, пользователь, выполняющий задание, должен иметь право CV на БАЗУ ДАННЫХ.

Вы можете проверить права пользователя в базе данных, выполнив следующий запрос, заменив USER_NAME и DATABASE_NAME их значениями в вашем env.

ACCESS_RIGHT = 'CV', означает CREATE VIEW, поэтому оставьте его как есть. is.

SELECT * 
FROM dbc.allRoleRights WHERE roleName IN 
(SELECT roleName FROM dbc.roleMembers WHERE grantee = 'USER_NAME')
AND DATABASENAME = 'DATABASE_NAME'
AND ACCESS_RIGHT = 'CV'
ORDER BY 1,2,3,5;

Возможно, вам понадобятся права CT (Создать таблицу) для создания таблицы журнала для быстрого экспорта. Это задается Sq oop параметрами --error-table и --error-database

...