問題タブ [large-data]
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.
hbase - 非常に大きなデータセット(リレーショナルDB以外)を保存およびクエリする方法
現在、非常に大きなデータセット(数十億)からデータを効果的に保存および取得する方法の問題に直面しています。私たちはmysqlを使用しており、システム、OS、raid、クエリ、インデックスなどを最適化しており、現在、先に進むことを検討しています。
データの問題を解決するためにどのテクノロジーを追求するかについて、十分な情報に基づいて決定する必要があります。私はHDFSでmap/reduceを調査してきましたが、HBaseについても良いことを聞いています。他にも選択肢があると思います。利用可能なテクノロジーとそれぞれのトレードオフの良い比較はありますか?
それぞれに共有するリンクがあれば、それもありがたいです。
c++ - 大規模なデータ配列を含むクラスの要素を持つ STL コンテナーを処理する方法
ベクトルやキューなどのSTLコンテナに大きなデータ配列(データのチェック、サイズなどの基本機能を保持するクラス内に格納)を配置する方法を探しています(プロデューサーがあるため、FIFOキューが最適です)および消費者)。
問題は、コピーコンストラクターを実装する必要があることです..まあ..ディープコピーを作成したくありません(時間がかかりすぎるため、浅いコピーに固執します)が、もう一度持っていますデストラクタ内のデータの配列を削除するタイミングがわからないという問題 (デストラクタを 2 回呼び出し、データは 1 回しかないため、さらに、デストラクタへの最初の呼び出しは、コンテナー内の要素の挿入/移動から発生する可能性が高いため、その時点でまだ配列データが必要です)。
データ配列に std::shared_ptr のようなスマート ポインターを使用することを考えましたが、私が読んだところによると、delete [] ではなく delete を呼び出します。通常の配列 [] があるので残念です。
現在、クラスをコンテナーから削除する前に、クラスで「DeleteArray」関数を手動で呼び出すソリューションがあります。それはうまくいきますが..それは良くありません。
何か案は?
c# - 非常に大きなデータセットを処理し、時間内にロードする
C#(.NET 4.0)で記述された.NETアプリケーションがあります。このアプリケーションでは、ファイルから大きなデータセットを読み取り、その内容をグリッドのような構造で表示する必要があります。そこで、これを実現するために、フォームにDataGridViewを配置しました。3つの列があり、すべての列データはファイルから取得されます。当初、ファイルには、DataGridViewの600.000行に対応する約600.000レコードが含まれていました。
DataGridViewがこのような大きなデータセットで崩壊することにすぐに気づいたので、仮想モードに切り替えました。これを実現するために、最初にファイルを3つの異なる配列(3つの列に対応)に完全に読み取り、次にCellValueNeededイベントが発生し、配列から正しい値を提供します。
ただし、すぐにわかったように、このファイルには膨大な数のレコードが含まれている可能性があります。レコードサイズが非常に大きい場合、すべてのデータを配列またはリスト<>などに読み込むことは実行不可能であるように見えます。すぐにメモリ割り当てエラーが発生します。(メモリ不足の例外)。
私たちはそこで立ち往生しましたが、なぜ最初にすべてのデータを配列に読み込むのか、CellValueNeededイベントが発生したときにオンデマンドでファイルを読み込むのはなぜですか?これが現在の作業です。ファイルを開きますが、何も読み取りません。CellValueNeededイベントが発生すると、最初にファイル内の正しい位置にSeek()を実行し、次に対応するデータを読み取ります。
これは私たちが思いつくことができる最高のものですが、まず第一に、これは非常に遅いため、アプリケーションが遅くなり、ユーザーフレンドリーではありません。第二に、これを達成するためのより良い方法がなければならないと考えざるを得ません。たとえば、一部のバイナリエディタ(HXDなど)は、どのファイルサイズでも目がくらむほど高速なので、これを実現する方法を知りたいと思います。
さらに、DataGridViewの仮想モードで、RowCountをファイル内の使用可能な行数(たとえば16.000.000)に設定すると、DataGridViewがそれ自体を初期化するまでに時間がかかります。この「問題」についてのコメントもいただければ幸いです。
ありがとう
mysql - 大きなテーブルに対する MySQL の UPDATE クエリ
21M レコードの MySQL データベースがあり、約 1M レコードを更新しようとしていますが、クエリが失敗します。ERROR 1206 (HY000): The total number of locks exceeds the lock table size.
ロックを取得せずにテーブルを更新することはできますか?
などの MySQL 構成パラメーターを変更するアクセス権がありませんinnodb_buffer_pool_size
。同じことを達成する別の方法はありますか?
ありがとう
編集:
- 5000回のバッチで試しましたが、数回は機能しますが、同じエラーが発生します
- LOCK TABLES を使用してテーブル全体をロックしようとしましたが、まだ機能しません。
android - 大きなアプリケーション データ パターンをダウンロードする
Android 用のマップ レンダリング アプリケーションを開発しています。地図データは約1.1Gbとかなり大きいです。.apk のサイズには市場と携帯電話の両方に制限があるため、アプリケーションの起動時にダウンロードすることをお勧めします。
これは私が現在使用しているパターンです:
1. メイン アクティビティ (マップのレンダリングに使用) は、データが利用可能かどうかを確認し、そうでない場合はダウンロード アクティビティを開始します
2. ダウンロード アクティビティはローカル サービスを開始します
3. サービスは zip ファイルをダウンロードします4.
サービスはイベントをダウンロード アクティビティと通知に送信します。
電話とネットワークによっては、プロセス全体に 30 分から数時間かかる場合があるため、サービスを生成します。
しかし、プログラムのインスタンスが 1 つしか実行されていないことを確認するのに苦労しています。launchmode プロパティのすべての組み合わせを試してみましたが、役に立ちませんでした。
ご存じのとおり、実行中の 2 つのインスタンスはダウンロード/解凍をクラッシュさせます。
これは本当にイライラします!現在、sdcardファイルロックへの醜い読み取り/書き込みを行っており、ほとんどの場合、1つのインスタンスのみが実行されていることを確認しています。
Android 1.6以降を対象としています。
mysql - MYSQL - 非常に大きなテーブルの分割 - アドバイスをお願いします
約 17 の正規化された列があり、約 600 万レコードの InnoDB テーブルがあります。テーブルのサイズは ~15GB です。テーブルからのクエリに時間がかかりすぎて、タイムアウト/クラッシュすることがあります。テーブルを分割することを考えていますが、どちらが良いか混乱しています。列を同じ/異なる DB の異なるテーブルに分割しますか? または、テーブルの行を別の DB に分割しますが、どの行が DB のどこにあるのかを知るにはどうすればよいでしょうか。
誰かが Map/Reduce について言及しましたが、私はさらに混乱しました。これに関するヘルプは大歓迎です。
ありがとう。
mysql - 10 ^ 10レコードに適したデータベースエンジンはどれですか?
mysqlを使用してデータセットを保存することを計画しています。私は約10^8(1億)のレコードを持って
いID(int)
ますx(float)
:、、、、、。y(float)
z(float)
property(float)
この種のデータセットInnoDBまたはMyISAMに適したデータベースエンジンはどれですか?または多分ndb(私はスケーラビリティやパフォーマンスについてはわかりません)?
次の質問で静的データセットをクエリすることを計画しています。
getRectagularRegionまたはgetPointsInSphereを選択します;
jquery - セレクトボックスで膨大なデータを扱う
こんにちは、jQuery を使用して、mySQL テーブルの 1 つから「アイテム」を取得しています。そのテーブルには約 20,000 個の「アイテム」があり、フォームの検索パラメーターとして使用されます。したがって、基本的には、その「アイテム」を含む「購入」を検索できます。
ドロップダウンリストから「アイテム」を選択できるようにする必要がありますが、ドロップダウンリストに20,000個の「アイテム」を入力するにはかなり時間がかかります。オートコンプリート付きのドロップダウン ボックスのページネーションをサポートする jQuery プラグインがあるかどうか疑問に思っていました。
そうすれば、ユーザーは最初の数文字を入力してリストをフィルタリングするか、矢印をクリックしておそらく 20 個の項目を表示し、最後に「クリックして詳細を確認してください」と入力することができます。
巨大なデータセットを処理し、HTML 選択ボックスにそのデータセットを入力するための他の提案を受け入れます。
この検索ページには複数の選択ボックスがあり、ユーザーは「アイテム」や「顧客」などを選択して「検索」をクリックできます。
svn - SVNチェックアウトはタグなしでトランクとブランチをプロジェクトします
私はSVNに古典的な構造の大規模なプロジェクトを持っています:
トランクから新しいブランチを作成したいのですが、ご存知のように、リポジトリを自分のコンピュータにチェックアウトする必要があります。トランクフォルダとブランチフォルダのみをチェックアウトできますか?これのために私は何をしなければなりませんか?
php - このように私の生活を楽にしてくれませんか?(大規模なコードベースとパッチの問題)
そのため、私は非常に大きなコードベース、3000を超えるファイル、100万行を超えるコード、500を超えるテーブルに取り組んでいます。
それは実際には問題ではありませんが。ここでの問題は、新しい機能が必要な場合、自分のマシンでローカルに作業し、ライブプロダクションを更新/パッチするときが来たときです。
- 私は私たちのprodサーバーにSSHで接続します
- ディレクトリに移動し、パッチを適用するファイルを開きます
- コピーして貼り付けます??? ああ、神様
とにかく、ここに私の見解があります、あなたたちがこれを行うための代替手段またはより快適なものを持っているかどうかを提案してください
まず、GITに移行します。(私たちはSVNにいます)
リリースを行うたびに、gitリポジトリでブランチを作成し、prodサーバーで新しいコピーを複製します(現在、svnでブランチを実行し、svn exportを実行してから、ターゲットディレクトリにコピーします。
サーバーに新機能のパッチを適用する場合、ターゲットのリポジトリ/リリースに移動してgitpullを実行できますか?または、gitパッチを適用する必要がありますか?
これは私がよりシンプルな生活を想像する方法です。
これよりずっと簡単なことを思いつきますか?