Использовать потоки DynamoDB в Apache Flink
Кто-нибудь пробовал использовать потоки DynamoDB в Apache Flink?
У Flink есть потребитель Kinesis. Но я ищу, как я могу использовать поток Динамо напрямую.
DataStream<String> kinesis = env.addSource(new FlinkKinesisConsumer<>(
"kinesis_stream_name", new SimpleStringSchema(), consumerConfig));
Я много пробовал искать, но ничего не нашел. Однако нашел открытый запрос в ожидании доски Flink Jira. Итак, я думаю, что эта опция еще не доступна? Какие у меня есть альтернативы?
Разрешить FlinkKinesisConsumer адаптироваться для потоков AWS DynamoDB
1 ответ
ОБНОВЛЕННЫЙ ОТВЕТ
Кажется, что Apache Flink не использует адаптер коннектора потока DynamoDB, поэтому он может читать данные из Kinesis, но не может читать данные из DynamoDB.
Я думаю, что одним из вариантов может быть реализация приложения, которое будет записывать данные из потоков DynamoDB в Kinesis, а затем читать данные из Kinesis в Apache Flink и обрабатывать их.
Другим вариантом будет реализация пользовательского коннектора DynamoDB для Apache Flink. Вы можете использовать существующий разъем в качестве отправной точки.
Также вы можете взглянуть на разъем Apache Spark Kinesis. Но похоже, что у него та же проблема.
ОРИГИНАЛЬНЫЙ ОТВЕТ
DynamoDB имеет адаптер Kinesis, который позволяет использовать поток обновлений DynamoDB с помощью клиентской библиотеки Kinesis. Использование адаптера Kinesis - рекомендуемый способ (в соответствии с AWS) использования обновлений от DynamoDB. Это даст вам те же данные, что и при прямом использовании потока DynamoDB (также называемый низкоуровневым API DynamoDB).