現在、機械学習プロジェクトに取り組んでいます。古いJavaアプリ(現在のパラダイムのデータの管理者でもあります)からpythonにデータを転送する必要があります。 _機械学習に関連するすべてのことを行うサービス。したがって、ネットワークを流れる必要がある数GBのデータが揃っています。
そのデータを転送する最も効率的な方法は何でしょうか?
この情報は役に立つかもしれません-
助けていただければ幸いです!前もって感謝します!
これはApache Kafka(またはApache Flink)などのストリーム処理パイプラインを使用する完璧な例と考えています。
それらを使用する根拠は、可能な限り多くのプロデューサー(Javaアプリ)またはコンシューマー(Pythonアプリ)を追加できることです。また、Kafkaがバッファリングするため、速度が異なる場合でも心配する必要はありません。
データをKafkaに渡す前に、データをシリアル化する必要がある場合があります(ASCIIでない場合)。そのためには、JSONを使用することもできます(または、Apache Avroこれにより、データを簡単に分割できます)。
両方のアプリに同じデータベースからの読み取りを許可しないのはなぜですか?あるいは、それができない場合は、一方のアプリでS3にデータを書き込み、もう一方のアプリでS3からデータを読み取ることができます。ターゲットアプリは、書き込まれるすべてのファイルについてS3のイベントをリッスンして、それをロードするだけです。
多分それを単純化しすぎているかもしれませんが、それは簡単に思えます...(?)
Snowpipeと呼ばれるテクノロジーを使用してAWSに接続できるSnowflake SQL www.snowflake.comもあります。これは、基本的にAWSのリソースに書き込み、それをSnowflake DBにロードします(ただし、この場合はおそらくやりすぎです) )。