Я пытаюсь подсчитать количество строк в файле, хранящемся в ведре S3, с помощью AWS SELECT. В частности, выполнение следующей команды (на основе Документация по AWS s3api и этого Пример Java для запроса count (*)):
aws s3api select-object-content --bucket my_bucket_name --key my_file_name --expression "select count(*) from S3object s" --expression-type SQL --input-serialization CSV = {} --output-serialization CSV = {}
Вышеуказанное возвращает:
{
"Payload":
Circular reference detected
Несмотря на то, что значения по умолчанию подходят для моего варианта использования, я попытался предоставить дополнительную информацию с помощью параметров CSV = {}
в командной строке, а также попробовал альтернативный синтаксис JSON '{"CSV":{}}'
. Всегда получайте ошибку Circular reference detected
.
Файл существует в корзине; в противном случае вы получите ошибку NoSuchKey
. Да, был там, сделал это ... :)
Примеры для AWS SELECT либо редки, либо мой гугл-фу меня подводит.
Предложения? Альтернативы приветствуются, но они должны быть скриптовыми.
Не уверен, что кто-то все еще сталкивается с ошибкой - в моем случае помогло обновление awscli - pip3 install awscli --upgrade