Ошибка при переносе данных потока из MYSQL в Kinesis. Помогите мне это исправить.
botocore.exceptions.ClientError: Произошла ошибка (ValidationException) при вызове операции PutRecord: обнаружена 1 ошибка проверки: значение '' в 'streamName' не удалось удовлетворить ограничение: участник должен удовлетворять шаблон регулярного выражения: [a-zA-Z0-9 _.-] +
import json
import boto3
import pymysql
import socket,array
import pandas as pd
from datetime import datetime
from pymysqlreplication import BinLogStreamReader
from pymysqlreplication.row_event import (
DeleteRowsEvent,
UpdateRowsEvent,
WriteRowsEvent,
)
class DateTimeEncoder(json.JSONEncoder):
def default(self, o):
if isinstance(o, datetime):
return o.isoformat()
return json.JSONEncoder.default(self, o)
connection = {
"host": "127.0.0.1",
"port": 3306,
"user": "root",
"passwd": "root"}
def main():
kinesis = boto3.client("kinesis",region_name='ap-south-1')
stream = BinLogStreamReader(
connection_settings=connection,
only_events=[DeleteRowsEvent, WriteRowsEvent, UpdateRowsEvent],
server_id=100,
blocking=True,
log_file='mysql-bin.000003',
resume_stream=True,
)
for binlogevent in stream:
for row in binlogevent.rows:
event = {"schema": binlogevent.schema,
"table": binlogevent.table,
"type": type(binlogevent).__name__,
"row": row
}
kinesis.put_record(StreamName="<MysqlKinesisStream>", Data=json.dumps(event,cls=DateTimeEncoder),
PartitionKey="default",)
print (json.dumps(event))
if __name__ == "__main__":
main()