Как отправить данные из S3 в Vertica с помощью IAM ROLE? - PullRequest
0 голосов
/ 18 января 2019

У меня есть требование переноса данных из aws s3 в vertica с использованием ролей aws.

Я создал таблицу с правами администратора и создал политику с полным доступом s3, прикрепил ее к нашей роли vertica и, в свою очередь, подключил экземпляры vertica, работающие на AWS.

VERTICA VERSION

Аналитическая база данных Vertica v8.1.1-3

COMMAND:

COPY scratch.my_test SOURCE S3 (url = 'https://s3.amazonaws.com/xxxx-xx/test.csv');

Мой стол:

Имеет только один столбец, имя которого varchar (64)

Мой тест.csv

имя -> столбец

тест -> это мое значение

ОШИБКА:

Ошибка SQL [6085] [VP001]: [Vertica] VJDBC ОШИБКА: неожиданный вызов процесса исключения () Пользовательская функция в UDSource [Vertica] VJDBC ОШИБКА: непредвиденный вызов процесса исключения () Пользовательская функция в UDSource com.vertica.util.ServerException: [Vertica] VJDBC ОШИБКА: неожиданный вызов процесса исключения () Пользовательская функция в UDSource

ПОЛИТИКА:

Я также проверяю с этой политикой, я получил ту же ошибку.

{ «Версия»: «2012-10-17», "Утверждение": [ { «Сид»: «VisualEditor0», «Эффект»: «Разрешить», «Действие»: «s3: », «Ресурс»: «» }, { «Сид»: «VisualEditor1», «Эффект»: «Разрешить», «Действие»: «s3: », «Ресурс»: [ "ARN: AWS: s3 ::: ххх-хх", "ARN: AWS: s3 ::: ххх-хх / " ] } ] }

Кто-то, пожалуйста, укажите, где я не прав, а также некоторые предложения. Спасибо!

Ответы [ 2 ]

0 голосов
/ 18 января 2019

Спасибо, что нашли время проверить мою проблему, Когда я добавил предложенный вами URL, я получил следующую ошибку

SQL Error [6783] [VP001]: [Vertica][VJDBC](6783) ERROR: Filesystem does not support glob s3://xxx-xx/test.csv
  [Vertica][VJDBC](6783) ERROR: Filesystem does not support glob s3://xxx-xx/test.csv
    com.vertica.util.ServerException: [Vertica][VJDBC](6783) ERROR: Filesystem does not support glob s3://xxx-xx/test.csv

Это помогло мне найти, что я должен смонтировать мое ведро s3 в вертику

https://github.com/vertica/aws-lambda-vertica-loader#set-up-s3-bucket-mounts (шаги здесь)

Обсуждение (https://forum.vertica.com/discussion/205657/load-data-from-amazon-s3-bucket-to-vertica)

0 голосов
/ 18 января 2019

Я вообще не знаю Vertica, но проблема, вероятно, заключается в том, что вы неправильно указали URL-адрес объекта S3.Вы попросили Vertica загрузить с https://s3.amazonaws.com/xxxx-xx/test.csv, который является HTTP-URL.В этом запросе нет аутентификации.Это так же, как если бы вы нажали URL-адрес из браузера, и вам было бы отказано в доступе.

Я считаю, что вы должны указать URL-адрес как s3://xxxx-xx/test.csv.

Я предполагаю, что вашПолитика IAM является правильной и указывает arn:aws:s3:::xxxx-xx и arn:aws:s3:::xxxx-xx/* (обратите внимание на конечную звездочку на последней, чтобы она применялась ко всем объектам в сегменте xxxx-xx).

...