Я пытаюсь использовать систему запросов Athena Federated со встроенным Коннектором Athena-DynamoDB . У меня есть настройка коннектора, поэтому я могу выполнять такие запросы:
SELECT * FROM "lambda:<connector>".[Something]."DynamoDB Table Name"
Однако с некоторыми таблицами я получаю следующую Java ошибку коннектора:
GENERIC_USER_ERROR: Обнаружено исключение [null] из вашей LambdaFunction [], выполненное в контексте [получение метаданных] с сообщением [Неожиданная ошибка при выполнении Lambda-функции]
Я считаю, что эта ошибка возникает из-за ограниченного способность выводить схему таблицы, заставляя ее вызывать исключение нулевой ссылки при обнаружении отсутствующих данных в таблице, как указано здесь . Поэтому я пытаюсь использовать предложенное решение:
В качестве обходного пути вы можете определить схему этой таблицы DDB в Glue. Это приведет к тому, что коннектор обойдет его возможность вывода схемы и, возможно, остановит ошибку, чтобы вы могли продолжить свою работу, пока мы ее исследуем.
Я установил склеивающий сканер, который сканирует таблицу, в которой есть проблема, Я запустил поисковый робот glue, и метаданные таблицы доступны для просмотра в консоли Glue. Однако я не понимаю, как на самом деле использовать эти метаданные вместо вывода схемы соединителя. Любые запросы к ошибочной таблице возвращают те же ошибки.
Другая информация, которая может быть актуальной, но я не уверен:
- Имя таблицы в Dynamo состоит из заглавных букв, например это: MyTable. Это будет заменено на клей для всех строчных букв, например: mytable
- Таблица содержит столбцы с заглавными буквами в имени, например: MyCol1, MyCol2, et c. В них вносятся изменения в клей для всех строчных букв, например: mycol1, mycol2, et c
- Все ресурсы были разделены с помощью CloudFormation вместо консоли. Если что-то нужно разделить, я бы предпочел сделать это таким образом, а не через консоль.
- [Something] в приведенном выше запросе - это имя базы данных, но похоже, что любой произвольный ввод работает. Я подозреваю, что мне, возможно, придется указать это, чтобы запросы работали с клеем, но это всего лишь предположение, и ничего из того, что я пробовал до сих пор, не сработало