問題タブ [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.
.net - SQL Server で非常に大きなテーブル (600M) からサブセット (200M) を取得する最速の方法
私たちは次の問題に直面しており、可能な限り最善の解決策を見つけようとしています。
SQL Server 2008 を使用しています。6 億を超えるレコードがあり、約 25 列のテーブルがあります。列の 1 つは ID であり、インデックスが付けられています。このテーブルからレコードのサブセットを取得する必要があります。主に 2 つの場合があります。
a) サブセットには、1000 から 200 百万の行が含まれます。取得する行の ID は、SQL Server のインデックス付きテーブルに格納されます。
b) サブセットに含まれる行が 100 万行未満。取得する行の ID は、アプリケーションのサーバーのメモリ (.NET Web アプリ) に格納されます。
私たちの課題は、このサブセットをできるだけ早く取得することです。これを数秒で行う必要があります。
これまでのソリューション:
a) 2 つのテーブルを結合します。それは機能しますが、十分に高速ではありません。クエリは次のようになりSELECT * FROM Big_Table JOIN IndexTable ON Big_Table.ID = IndexTable.ID
ます。
b) 本当に解決策がありません。WHERE IN クエリを実行しようとしましたが、サブセットが 100 万行に近づくと、永遠に時間がかかります ( SELECT * FROM Big_Table WHERE ID IN (ID1, ID2, ID3...)
)。解決策は一時テーブルにインデックスを格納することですが、これはケース a に戻ります。
特に適切なインデックスとパーティショニングを使用して、可能な限り SQL Server を最適化しようとしています。今日は、両方のケース (a と b) でサブセットを抽出するのが最善の方法だと思われる方法についてお尋ねします。
任意のアイデアや提案をいただければ幸いです。
ありがとう
php - 少ないデータしか表示しない大規模サイト
私は大規模なサイトの世話をしており、他の同様のサイトを調査しています。特に、flickr と deviantart を見てきました。彼らは大量のデータを持っていると言っていますが、表示されるのはそれほど多くないことに気付きました。
これはパフォーマンス上の理由によるものだと思いますが、何を表示し、何を表示しないかをどのように決定するかについては、誰もが考えを持っています。古典的な例として、flickr に移動し、タグを検索します。ページ リンクのすぐ下に表示されている結果の数に注意してください。次に、どのページになるかを計算し、そのページに移動します。そのページにはデータがないことがわかります。実際、私のテストでは、flickr は 5,500,000 件の結果があると表示していましたが、4,000 件しか表示されませんでした。これは何ですか?
大規模なサイトが大きくなりすぎて、古いデータをオフラインにしなければならないことはありますか? Deviantart にはウェイバック機能がありますが、それが何をするのかよくわかりません。
どんな入力でも素晴らしいでしょう!
opengl - IDEA: GPU ベースのダイレクト ボリューム レンダリングを使用して、大きな画像シリーズをインタラクティブにレンダリングする方法
GPUベースのボリュームレンダリング(OpenCL / OpenGL / GLSLを使用)を使用して、30+GB、2000+色のTIFF画像シリーズをリアルタイム(インタラクティブフレームレート)で視覚化できるデータセットに変換する方法を探しています。サーフェス フィッティングの代わりに直接ボリューム視覚化アプローチを使用したい (つまり、マーチング キューブの代わりにレイキャスティング)。
問題は 2 つあります。まず、画像を 3D データセットに変換する必要があります。最初に頭に浮かんだのは、すべての画像を 2D テクスチャとして見て、それらを単純に積み重ねて 3D テクスチャを作成することです。
2 つ目の問題は、インタラクティブなフレーム レートです。このためには、ズームなどのときに高解像度データセットをロードする「詳細オンデマンド」と組み合わせて、ある種のダウンサンプリングが必要になるでしょう。
私が見つけた最初のポイントごとのアプローチは次のとおりです。
- レイヤーごとの処理と対応する画像テクスチャの生成による完全なボリューム データのポリゴン化。
- 頂点プロセッサ操作を通じてすべての重要な変換を実行します。
- ポリゴン スライスを小さなフラグメントに分割します。対応する深度とテクスチャ座標が記録されます。
- フラグメント処理では、頂点シェーダー プログラミング手法を展開してフラグメントのレンダリングを強化します。
しかし、このアプローチの実装を開始する方法についての具体的なアイデアはありません。
上記のアプローチの実装を開始する方法について、いくつかの新鮮なアイデアやアイデアを見てみたい.
r - Rでの非常に大きなデータセットのプロット
Rで非常に大きなデータセットをプロットするにはどうすればよいですか?
箱ひげ図やバイオリン図などを使用したいのですが。すべてのデータをメモリに収めることはできません。これらのプロットを作成するために必要な要約を段階的に読み込んで計算できますか?もしそうなら、どのように?
java - NTFS ディレクトリには 100K のエントリがあります。サブディレクトリが 100 を超えると、パフォーマンスはどのくらい向上しますか?
コンテキスト ファイルシステムを基盤とする独自のキャッシング ライブラリがあります。現在、多数のエントリ (最大 100,000 など) が原因で、1 つのインストールでパフォーマンスの問題が発生しています。問題: すべての fs エントリを 1 つの「キャッシュ ディレクトリ」に格納します。非常に大きなディレクトリはパフォーマンスが低下します。
これらのエントリをサブディレクトリに分散することを検討しています--git のように、たとえば 100 個のサブディレクトリにそれぞれ ~ 1,000 個のエントリがあります。
質問
ディレクトリのサイズを小さくすると、ファイルシステムへのアクセスが容易になることを理解しています。
しかし、「サブディレクトリへの展開」は、すべてのエントリのトラバースを高速化しますか? たとえば、100,000 エントリすべてを列挙/読み取りますか? つまり、FS ストアからキャッシュを初期化/ウォームアップする場合、100,000 エントリすべてをトラバースする (および古いエントリを削除する) 必要があり、10 分以上かかる場合があります。
「データを分散する」ことで、この「走査時間」が短縮されます。さらに、この「トラバーサル」は実際に古いエントリ (たとえば、N 日より古い) を削除できます/実際に削除します。
追加のコンテキスト -NTFS -Windows ファミリ OS (Server 2003、2008)
-Java J2ee アプリケーション。
ファイルシステムのスケーラビリティの問題について教えていただければ幸いです。
前もって感謝します。
意思
ps 私はこれを自分でテストするためのツールと能力を持っているとコメントする必要がありますが、最初に理論と経験のためにハイブマインドを選ぶと思いました.
java - 1つのリーダースレッド、1つのライタースレッド、n個のワーカースレッド
私はJavaでコードを開発しようとしています。これにより、SQLデータベースからJDBCドライバーによってフェッチされ、DBに永続化される大量のデータを処理できるようになります。
1つのリーダースレッド、1つのライタースレッド、およびデータを処理するカスタマイズ可能な数のワーカースレッドを含むマネージャーを作成することを考えました。リーダースレッドはデータをDTOに読み取り、「処理の準備ができている」とラベル付けされたキューに渡します。ワーカースレッドはDTOを処理し、処理されたオブジェクトを「永続化の準備ができている」というラベルの付いた別のキューに配置します。ライタースレッドはデータをDBに永続化します。そのようなアプローチは最適ですか?または、データをフェッチするためにより多くのリーダーを許可する必要がありますか?私が知らないこの種のことを行うためのJavaの準備ができているライブラリはありますか?
wcf - 大きなオブジェクトまたは複雑なオブジェクトを WCF サーバーからクライアントに送信する
私のアプリケーションは、ほぼリアルタイムのデータ バッファリング アプリケーションです。
私は、ネットを使用しています。複雑なオブジェクトを送信するための TCP バインディング。
クライアントへのさまざまなコールバック関数を介してデータをバッファリングします。
特定のイベントを有効にすると、アプリケーションの速度が低下し、リアルタイムではなくなります。
WCF で大規模で複雑なオブジェクトを持つ複数のクライアントにリアルタイムのデータ バッファリングを行うための最適な方法を誰もが助けることができますか ???
sql - SQL 2008 R2 スタンドアロン サーバーが 1 つのテーブルに格納する推奨最大行数は?
リアルタイム AJAX Web アプリケーションの機能とパフォーマンスのために DB を設計していますが、現在、DB サーバーの冗長性や負荷分散を追加するためのリソースがありません。
残念ながら、DB に数億行を格納する可能性があるテーブルがあり、Web インターフェイスの遅延を防ぐためにすばやく読み書きする必要があります。
このテーブルの列のすべてではないにしても、ほとんどは個別にインデックスが作成されています。大きなテーブルでクエリを実行するときにサーバーの負担を軽減する方法が他にあるかどうか知りたいです。しかし、クラスター化されていない単一の SQL サーバーが停止し始める前に、最終的にテーブルのサイズ (行数またはGB) に上限はあるのでしょうか?
私のDBには12個のテーブルしかなく、おそらく数十個の外部キー関係があります。私のテーブルはどれも 8 つ以上の列を持っておらず、これらのテーブルの 1 つまたは 2 つだけが多数の行を格納することになります。うまくいけば、私の DB のシンプルさが、これらの 2 つのテーブルの膨大な量のデータを補ってくれることを願っています...
python - 大規模なデータの保存と検索に対応するにはどうすればよいですか?
mysql データベース内のテーブルには 2 つの列があります。最初の列にはフィンガープリントが含まれ、2 番目の列にはそのフィンガープリントを持つドキュメントのリストが含まれます。これは、検索エンジンによって作成された逆索引によく似ています。テーブル内のレコードのインスタンスを以下に示します。
フィンガープリントの数は非常に多い (数兆に及ぶ可能性がある)。データベースには基本的に次の操作があります: レコードの挿入/更新 & 指紋の一致によるレコードの取得。テーブル定義の Python スニペットは次のとおりです。
挿入/更新操作のスニペットは次のとおりです。
これまでに観察した唯一のボトルネックは、mysql でのクエリ時間です。私のアプリケーション全体は Web ベースです。したがって、時間は重要な要素です。カサンドラの使用も考えましたが、知識があまりありません。この問題に取り組むためのより良い方法を教えてください。
java - ソケットを介して5MBのデータを送信しますか?
こんにちは私は、Javaプログラミング言語を使用してTCP経由でサーバーからAndroidクライアントに一定量のデータ(たとえば5MB)を送信したいと思います。データはクライアントにドロップされるかどうかは関係ありません。これは、電話のパフォーマンス測定を行うためにのみ行っています。
誰かがこれを達成するための良い方法をお勧めできますか?サーバーに大量のデータを継続的に送信させるにはどうすればよいですか?ファイルから行を読み取ってからそれらのバイトを送信するという断続的な動作なしで...次に別の行を読み取ってそれらのバイトを送信します。
アイデア?乾杯。