Разбор данных кинезиса с использованием bash, jq, sed - PullRequest
0 голосов
/ 01 октября 2019

Я надеюсь пройтись по некоторым данным кинезиса, используя bash. Используя cmd вроде:

aws kinesis get-records --shard-iterator <long shard info> | jq '[.|.Records[].Data]' | grep \"ey |  sed -e 's/^[ \t]*\"//;s/[ \t]*\",$//'

Я могу получить данные base64 из потока. У меня проблемы с передачей через base64 , чтобы я мог видеть фактические данные.

Если я отправлю их, используя комбинацию head -n и tail Я вижу отдельные значения, но любая попытка пройти более 2-3 строк не удалась. Ошибки обычно представляют собой один набор значений JSON, за которыми следуют данные мусора. Команде обычно предшествует

Недопустимый символ во входном потоке.

Чтобы увидеть значения json, которые я использую |xargs base64 -D

- Предупреждение: использование bash в OSX

Ответы [ 2 ]

0 голосов
/ 05 октября 2019

Я разработал Kines - удобный CLI для Amazon Kinesis Data Stream. Это может быть полезно для вашей цели отладки.

Вы можете установить его с помощью pip.

pip install kines

Затем вы можете запустить команду kines walk для потока и сегмента для просмотра декодированных данных.

kines walk <stream-name> <shard-id>

Демонстрация: Kines walk command

0 голосов
/ 02 октября 2019

Это работает (при условии, что вы скопировали данные base64 в файл):

while IFS= read -r line; do echo $line | base64 -D && printf "\n"; done < <infile>
...