私の質問は非常に一般的であり、建築に関してです。データベースに連続したデータフローを挿入する
多くのデータを継続的に受信します(JSON)。これは一秒間に最大30ジョイントになる可能性があります。
情報をディスパッチするためにさまざまなクエリを使用して、それぞれをデータベースに挿入する必要があります。このデータベースは何でもよいが、私はNeo4jを好む。
私が受け取るとすぐに挿入すると、インサートはますます遅くなります。つまり、500個のjsonファイルがあり、200個が挿入されています(db内のインデックスも含めて)。
私はジョブを分けなければならないと思います。データを受け取るスクリプトと、データベースに挿入するスクリプトまたはスレッドを分けてください。
あなたの経験によれば、この場合の最良の方法は何ですか? temporary_jsonファイルは処理待ちのディスクにありますか?
ご注文の内容に関係します。これは、同じタイプのオブジェクトに対して「挿入または置換」されます。クエリは常に同じです。 – Jeff
注文が問題でない場合は、複数の非同期スレッド経由で入力を「ファンアウト」してパラレル更新を実行します(ただし、ロックの問題を調べる必要があります)。あなたの入力とバックエンドのNeo4jとの間に、Apache Kafkaのようなものがあります(ちょっとした例ですが、私は好みを表明していません)。 –