Пример Kinesis Firehose Putrecordbatch

Я ищу пример для отправки нескольких записей в потоки Kinesis с помощью putrecordbatch.

В настоящее время я использую команду putrecord следующим образом для отправки записей в потоки kinesis.

aws firehose put-record --delivery-stream-name csvtoredshiftstreamingjson --record = 'Data = "{\" productid \ ": 1, \" productname \ ": \" phone \ ", \" productprice \ ": \" 2,30\"}""

Обратитесь за помощью по аналогичному способу написания putrecordbatch.

Спасибо и С уважением, Шривиньеш К.Н.

2 ответа

От aws firehose put-record-batch help:

aws firehose put-record-batch \
        --delivery-stream-name csvtoredshiftstreamingjson \
        --records \
'"{\"productid\":1,\"productname\":\"phone\",\"productprice\":\"2.30\"}"' \
'"{\"productid\":1,\"productname\":\"phone\",\"productprice\":\"2.30\"}"' \
'"{\"productid\":1,\"productname\":\"phone\",\"productprice\":\"2.30\"}"'

Должно работать нормально, до 500 записей или ограничение вашего буфера командной строки.

Результат будет выглядеть примерно так:

{
  "FailedPutCount": 0, 
  "RequestResponses": [
    {
      "RecordId": "TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLg=="
    }, 
    {
      "RecordId": "TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLg=="
    }, 
    {
      "RecordId": "TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLg=="
    }
  ]
}

Я смог решить эту проблему следующим образом.

aws firehose put-record-batch --delivery-stream-name S3TestingStream --records '"{\"productid\":1,\"productname\":\"phone\",\"productprice\":\"2.30\"}"' \
'"{\"productid\":2,\"productname\":\"bus\",\"productprice\":\"5.40\"}"' \
'"{\"productid\":3,\"productname\":\"car\",\"productprice\":\"3.20\"}"'

Это дает мне идентификаторы записей после успешной записи.

   "FailedPutCount": 0, 
"RequestResponses": [
    {
        "RecordId": "N3w6uvXwuxbd9sdXrNI3Kcptcwu5j/oco1wuIjq6vrbz+HAkDEw0N1Rah58pwx6h5dZozBScJ4EFFTQf0SxhH5A0Ie6LGdfJ0OuStB3zb512a2O/bmQretZWGopN3bvzMQO3EIZ3ksNaM63rCIbIT5fI6ZkYzX+rLu8QQtaMCS/881z6qwMGG7n3eJCtWK36uTs4M0X5hEpR1+j8B4hyjdXexu212f4j"
    }, 
    {
        "RecordId": "eWW4ZX9bwyIjVdJ/TQbb+Yh+vJFo/O/CdeT4MXby4T4DNydjoGgoPluQFJbwzFMV2Q6OPWXJblNgjRG3nGVGn73WPQC3AhqWQ3Bqc1ioa2E5yyYGEK1bbk57I4lFN9cdhkkC01POKwz9RszZLkJB38iZsIK4Gh2lp2p65LTPmBWdP0c8Hgd6WOJfrX8IHRhLhc00tuBBi6IM5jCdWRAyLhf45fGhPTee"
    }, 
    {
        "RecordId": "vf8NVYzfGQiCPX0ocRhdhqeTlobYv9FIOacHanqCrkbspHM71Zg36rS5YLu5clIvCSIs6cX6EnaStn5L6s8LgpGQNBBfgr5zk9ydRWNHHF3kkEvqZnPcHU64R4KpkvVhqDTVELqMsFxPfPFEP9Gikzc3d3IqN2EMc+T8fAj7g66nNZgQ3TF3y0SMeZpGyrezDYfLUzGuP/ZzbhCvMr2ypRW51SszGUBN"
    }
]

}