2017-05-08 6 views
1

私はアーキテクチャに関するいくつかの高度なガイダンスを探しています。私はプロバイダがKinesisパイプ(約1M /日)に「トランザクション」を書いています。これらのトランザクションを一度に1つずつオフにして、データの検証、その他のSOAPやRestサービスの追加情報の入力、ビジネスロジックの適用、結果のS3への書き込みが必要です。Amazon Web Services:Spark StreamingまたはLambda

提案されているアプローチの1つは、永久に実行され、データを取得してSpark環境内で処理するSparkジョブの使用です。この利点は、共有可能なキャッシュデータ、SQLの可用性、およびSparkの社内知識として列挙されました。

私の考えは、データを処理する一連のラムダ関数を持つことでした。私が理解しているように、私はラムダに新しいデータ用のキネシスパイプを見せてもらうことができます。私は引っ張ったデータを一連の小さなステップ(lambdas)で実行したい、それぞれがプロセスの一歩を踏み出している。これはステップ関数の理想的な使用のようです。キャッシュに関しては、必要があれば、私はElastiCacheのRedisを使うことができると考えました。

これは、ラムダとステップ関数(ラムダを使用)の組み合わせを使用して行うことができますか?それができるのなら、それは最善のアプローチですか?私は他にどのような選択肢を検討すべきですか?

答えて

0

これは、ラムダとステップ関数の組み合わせを使用して実現できます。説明したように、ラムダはストリームを監視し、ステートマシンの新しい実行を開始し、トランザクションデータを入力として渡します。ラムダでのキネシスの詳細は、http://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.htmlをご覧ください。 ステートマシンは、1つのラムダ関数のデータを次の関数に渡し、データが処理され、S3に書き込まれます。 1M /日をサポートするために、デフォルトの2秒のStartExecution API制限を増やすには、AWSに問い合わせる必要があります。

希望すると便利です。

関連する問題