VanillaからDiscourseへの大規模データインポート(速度低下)

Discourseからのデータダンプが26GBあります。
ユーザー:130万人
トピック:300万件
投稿:2100万件

問題は、初期は毎分50万件の速度でインポートできていたものの、数分後には毎分2千件まで速度が低下してしまうことです。

「いいね!」 1

大量のRAMが必要です。一括インポーターを検討するかもしれませんが、バニラ用のものは存在しないと思います。

「いいね!」 2

こんにちは、Jay。AWS で c5.4xlarge インスタンスを使用していますが、最初は 500k/分だったものが、数分後に速度が低下します。

インポートスクリプトは再開可能ですが、残念ながらこれはインポートスクリプトにおいて一般的なことです。

「いいね!」 2

はい、再起動すると既にインポートされたデータはスキップされますが、同じ処理が時間とともに遅くなってしまいます :frowning:

「いいね!」 1

ご確認いただきありがとうございます。:frowning: データが3100万件に達し、このペースで減少し続けるなら、完了までに1ヶ月ほどかかるでしょう。これを改善するご提案はありますか?それとも、これが現状の仕様でしょうか?

クラウド環境では、高速なシングルコア性能を持つ CPU を見つけるのはかなり困難です。

あるいは、一括インポートスクリプトを試してみてください。Importers for large forums

Vanilla 用のスクリプトもあります:discourse/script/bulk_import/vanilla.rb at main · discourse/discourse · GitHub

「いいね!」 3

AWS の c5.4xlarge を使用しています。
vCPU - 16、メモリ(GiB)- 32
これで十分でしょうか、それともアップグレードすべきでしょうか?

もちろん、そのバッチインポートスクリプトを試してみます。ありがとうございます!

可能な限り通常のインポートスクリプトを高速で実行したい場合は、PassMark CPU Benchmarks - Single Thread Performance のトップにある CPU が必要です。AWS や他のクラウドプロバイダーで vCPU を使用した場合にどのような性能が得られるかは、私にはわかりません。:man_shrugging:

「いいね!」 3

一括インポート機能を使いたいようですね。

「いいね!」 2

バッチインポートを試すたびに、そこで停止してしまいます。トレースバックがカテゴリ ID で止まるため、-1 を 0 に変更してみました。

@last_imported_category_id = imported_category_ids.max || -1

@last_imported_category_id = imported_category_ids.max || 0
に変更しました。

ID が -1 のカテゴリを削除して再度試してみましたが、やはりうまくいきませんでした。

追加のサポートを雇うことができる場合は、https://www.literatecomputing.com/@pfaffman までご連絡ください。

「いいね!」 3