私は大量のCSVファイルを持っています(それぞれ数百万のレコードを含んでいます)。 したがって、私はsedaを使ってマルチスレッド機能を使用します。私は50000を塊で分割し、それを処理し、jpaを使用して分割してDBに保持するEntityオブジェクトのListを取得します。当初、私はヒープメモリ例外の例外を取得していました。しかし後で私は高設定システムを使用し、ヒープの問題は解決されました。csvから重複した値がApache Camelを使用してDBに挿入されます
しかし、今問題は、DBに重複レコードが挿入されていることです。たとえば、csvに1000000レコードがある場合、約2000000レコードがDBに挿入されています。 Csvファイルのレコードの主キーはありません。だから私はそれのための主キーを生成するために休止状態を使用しています。
以下は私のコードである(来た-のcontext.xml)
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="file:C:\Users\PPP\Desktop\input?noop=true" />
<to uri="seda:StageIt" />
</route>
<route>
<from uri="seda:StageIt?concurrentConsumers=1" />
<split streaming="true">
<tokenize token="\n" group="50000"></tokenize>
<to uri="seda:WriteToFile" />
</split>
</route>
<route>
<from uri="seda:WriteToFile?concurrentConsumers=8" />
<setHeader headerName="CamelFileName">
<simple>${exchangeId}</simple>
</setHeader>
<unmarshal ref="bindyDataformat">
<bindy type="Csv" classType="target.bindy.RealEstate" />
</unmarshal>
<split>
<simple>body</simple>
<to uri="jpa:target.bindy.RealEstate"/>
</split>
</route>
助けてください。
_は_「私のコードは正しいです」 - あなたは何を「正しい」に関する情報を提供していないので、私たちは知らないあなたの特定の状況です。 –
こんにちはジム、私はcamel-context.xmlについて話しています。私の側から欲しいコードは他にありますか? – Sandy
'RealEstate'エンティティのマッピングを投稿してください。 –