問題タブ [large-data-volumes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 大容量データの取り扱いに関するアドバイス
したがって、数値データの「非常に大きな」ASCII ファイル (合計でギガバイト) が「多数」あり、プログラムはその全体を少なくとも 1 回は順番に処理する必要があります。
データの保存/読み込みに関するアドバイスはありますか? ファイルをバイナリに変換して、ファイルを小さくし、読み込みを高速化することを考えました。
一度にすべてをメモリにロードする必要がありますか?
そうでない場合、データを部分的にロードする良い方法は何ですか?
Java 関連の効率化のヒントは何ですか?
c++ - 大量のデータのグラフ化
私が取り組んでいる製品には、数百から数百万回の反復を行うことができる反復ループがあります。各反復では一連の統計変数 (倍精度) が計算され、変数の数は最大 1000 (通常は 15 ~ 50) です。
ループの一部として、反復中の変数の変化をグラフ化するため、X 軸は反復、Y 軸は変数 (色でコード化) です。
http://sawtoothsoftware.com/download/temp/walt/graph.jpg
現在、データは以下を含むファイルに格納されています:
変数
の 4 バイト整数、反復の 4 バイト整数、
および値の 8 バイト double。
y 軸の合計スケールは時間の経過とともに変化するため、現在のスケールに合わせてグラフのサイズを変更することが望まれます (これは図で確認できます)。
約 5 秒間隔で、データが読み取られてビットマップにプロットされ、ユーザーに表示されます。全体の再描画を避けるためにいくつかの最適化を試みますが、反復回数または変数の数が大きくなると、描画に 5 秒以上かかる巨大なファイルになってしまいます。
可能であれば、この大量のデータをより効果的かつ迅速に処理する方法についてのアイデアを探しています。
mysql - MySQL テーブルでデータを分割する方法
私はお互いにメッセージを送るメンバーがいるウェブサイトを持っています。メッセージを送るのが好きなメンバーが数人になりつつあります。
現在、私は、ステータス(未読、保存済みなど)を示すさまざまなステータスIDを持つ「メッセージ」という巧妙なタイトルの適切なリレーショナルテーブルにメッセージが格納されていると述べました。これが事後であることはわかっていますが、このテーブルを他のいくつかのテーブルに分割する必要があると考えています (たとえば、ステータスの種類ごとに複数の場合など)。最善の方法はわかりません。それについて。
私にはいくつかのアイデアがありますが、どれもロケット科学ではありませんが、これに「標準的な解決策」があるかどうかに興味があります. Google はそうではないと提案していますが、この種の問題は、stackoverflow のような場所以外ではそれほど一般的ではないと思います。
すでに行ったことがある人はいますか?
mysql - 大きな MySQL テーブル
私が開発している Web アプリケーションでは、大量のレコードを保存する必要があります。各レコードは、主キーと単一の (短い) 文字列値で構成されます。約 100 GB のストレージが利用可能であると予想し、それをすべて使用できるようにしたいと考えています。
レコードは頻繁に挿入、削除、および読み取られるため、MySQL データベースを使用する必要があります。データの整合性は重要ではありませんが、パフォーマンスは重要です。どのような問題や落とし穴に遭遇する可能性が高く、そのタスクに最適なストレージ エンジンはどれですか?
どうもありがとう、J
mysql - 大きな主キー: 10 億以上の行 MySQL + InnoDB?
InnoDB がテーブルをフォーマットする最良の方法であるかどうか疑問に思っていましたか? テーブルには 1 つのフィールド (主キー) が含まれており、テーブルには 1 日あたり 816,000 行 (概算) が含まれます。これは非常に速く非常に大きくなります!私はファイルストレージの方法に取り組んでいます (これはより高速でしょうか)? テーブルには、処理済みの Twitter ID の ID 番号が格納されますか?
また、SELECT min('id')
ステートメントの推定メモリ使用量はありますか? 他のアイデアは大歓迎です!
mysql - mysqldump が使用する帯域幅を制限する方法
帯域幅がそれほど多くないネットワーク パイプを介して大規模なデータベースをダンプする必要があり、他の人が同時に使用する必要があります。私が試してみると、すべての帯域幅が吸収され、遅延が急増し、他のすべての人が台無しになります.
mysqldump の --compress フラグが多少役立つことは承知しています。
この接続ですべての帯域幅を吸収せずにこれを行うにはどうすればよいですか?
アップデート:
-l フラグを指定して scp を使用してダンプファイルをコピーするという提案は良いものですが、データベース サーバーへのSSHアクセス権がないことに注意してください。
java - 大きなデータベクトルをすべてのズームレベルでリアルタイムに正確にプロットするにはどうすればよいですか?
リアルタイムでプロットする必要のある大きなデータセット(10 Hzデータ、つまり24時間あたり864kポイント)があります。アイデアは、ユーザーが非常に詳細な散布図にズームおよびパンできることです。
データはあまり連続的ではなく、スパイクがあります。データセットが非常に大きいため、プロットが更新されるたびにすべてのポイントをプロットすることはできません。
しかし、n番目のポイントごとにプロットすることもできません。そうしないと、大きいが短いスパイクなどの主要な機能を見逃してしまいます。
Matlabはそれを正しく行います。ゼロでいっぱいの864kベクトルを指定し、任意の1つのポイントを1に設定するだけで、ズームとパンを使用してリアルタイムで正しくプロットされます。
Matlabはどのようにそれを行いますか?
私のターゲットシステムはJavaなので、Swing/Java2Dでこのプロットのビューを生成します。
.net - 大規模なデータセットに最も適したデータ検証方法はどれですか
大規模なデータベースがあり、ユーザーが情報を一括更新できる機能を実装したいと考えています。ユーザーが Excel ファイルをダウンロードして変更を加えると、システムは Excel ファイルを受け入れます。
- ユーザーは Web インターフェイス (ASP.NET) を使用して、データベースから Excel にデータをダウンロードします。
- ユーザーが Excel ファイルを変更します。DB への他のマップとして、特定のデータのみを変更できます。
- ユーザーが変更に満足したら、ASP.NET インターフェイスを介して、変更した Excel ファイルをアップロードします。
- Excelファイルからデータを吸い上げ(Gemboxを使用)、データベースに対してデータを検証するのはサーバーの仕事です(これが私が問題を抱えている場所です)
- 検証が完了すると、検証結果が別の ASP.NET ページに表示されます。検証はソフトであるため、DB へのインデックス マッピングが欠落している場合にのみハード エラーが発生します。(欠落しているデータは無視などを引き起こします)
- ユーザーは、実行されるアクションが適切かどうかを決定できます。これらを受け入れると、システムは変更を適用します。(追加、変更、または無視)
ユーザーが行った変更や追加を適用する前に、ユーザーによる間違いを避けるためにデータを検証する必要があります。(意図せずに誤って削除された日付)
更新が必要な行が 65k を超えるのはそれほど難しくありません。
問題は、データを解析して検証を行い、変更セットと追加セットを構築するための最良の方法は何ですか?
Excel データを検証する必要があるすべてのデータをメモリにロードすると、既にメモリを消費しているアプリケーションに不必要に影響を与える可能性があります。Excel ファイル内のすべてのタプルに対してデータベース ヒットを実行すると、65,000 を超えるデータベース ヒットが表示されます。
ヘルプ?
sql - 7.300.000.000 行を効率的に格納
次の保管と検索の問題にどのように取り組みますか?
約 2.000.000 行が毎日 (365 日/年) 追加され、行ごとに次の情報が追加されます。
- id (一意の行識別子)
- entity_id (1 から 2.000.000 までの値を取る)
- date_id (毎日 1 ずつ増加 - 1 ~ 3.650 (10 年: 1*365*10) の値を取る)
- value_1 (1 から 1.000.000 までの値を取る)
- value_2 (1 から 1.000.000 までの値を取る)
entity_id と date_id の組み合わせは一意です。したがって、エンティティと日付ごとに最大で 1 行をテーブルに追加できます。データベースは、10 年分の毎日のデータ (7.300.000.000 行 (3.650*2.000.000)) を保持できる必要があります。
以上が書き込みパターンである。読み取りパターンは単純です。すべてのクエリは特定の entity_id に対して行われます。つまり、entity_id = 12345 を記述しているすべての行を取得します。
トランザクション サポートは必要ありませんが、ストレージ ソリューションはオープンソースである必要があります。理想的には MySQL を使用したいのですが、提案は受け付けています。
さて、説明されている問題にどのように取り組みますか?
更新:読み取りと書き込みのパターンについて詳しく説明するように求められました。テーブルへの書き込みは 1 日 1 回のバッチで行われ、新しい 2M エントリが一度に追加されます。読み取りは、1 秒ごとに 1 回の読み取りで継続的に行われます。