問題タブ [data-processing]
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.
regex - 連続する 4 行のテキストに一致する正規表現パターンを提案できる人はいますか?
大きなデータ ファイルを解析しようとしています。ファイルには、空白行で区切られた 3 行または 4 行のデータのグループがあります。例えば:
4 行のデータ グループをすべて抽出する簡単な方法を探しています (3 行のグループはすべて無視します)。テキスト ファイル内の 4 行のすべてのグループを正規表現で検索する方法はありますか? または、これを行うための他の提案された(おそらくawkまたはsedを使用したもの)方法はありますか?
mysql - 一時テーブルを使用せずに個別のレコードを選択する
最新の個別のレコードを取得する必要がある雑然としたデータが取り込まれているサード パーティのテーブルがあります。テーブルには、毎年、または「人」が変わるたびに新しい行が供給されます。テーブルは、最新の ActiveDate が正しい人であることに基づいて機能します。これを示すために、モック テーブルとデータを作成しました。
そしていくつかのモックデータ:
テーブルには、実際にはエンド ユーザーが設定する ExpireDate 列もあり、常に設定されているとは限りません。現在、ダミーテーブルを使用して、個別のレコードを取り出してその日に保存しています。私は一時テーブルを使用しますが、MySQL での使用方法を 100% 確信しているわけではなく、嫌いです。私がやっている方法は、より良い SQL を期待して一時的なものです。
次に、完成品を得るために、データを他の多数のテーブルと結合する必要があります。しかし、まだ個別のデータの初期セットを処理する必要があります。そして、最初から他のテーブルに参加してもうまくいきません。
したがって、データをプルして保存し、後で再度プルして他のテーブルに結合する方法は次のとおりです。
一時テーブル (任意の形式) を使用して重複する行を処理するコストを回避するために、これをどのように記述できますか? うまくいけば、私はこれを十分に明確にしました.そうでない場合は、喜んで追加または明確にすることができます.
database-design - 0年からn年までの計算のためのデータとソフトウェアアーキテクチャ
たとえば、このアプリケーションは動物の移動と農場の価格を追跡します。現在の在庫数を取得するための最も簡単な解決策は、開始番号を取得し、現在の番号が取得されるまですべての移動を合計することです。しかし、これはメモリ集約的であり、動きの数が年々増加するにつれてますます遅くなります。
1 年を「凍結」するという贅沢はないので、変更を受け入れることはできません。システムは、いつでも動きの変更を処理でき、更新された数値をリアルタイムで表示できなければなりません。
これは単なる在庫数ではありません。このような多数の変数を追跡し、これらの変数に基づく集計計算を含む各期間 (日、週、月、年) のレポートを作成する必要があります。
計算およびレポート目的で複数年にわたるデータ ストリームを処理するための、最も一般的で、優先される、「最良の」、最速でエレガントな方法は何ですか? このシナリオでは、データベース設計とアーキテクチャはどのように関係しますか (つまり、データベース スキーマが適切に設計されている限り、ORM を使用しても問題ないでしょうか?)。ここでの重要な要件は、最適なパフォーマンスとリアルタイムの可用性です。
私は大規模なシステムを見てきました。そのため、ある種の作業は週、月、年の集計テーブルなどのタイム スライスに分割されます。この問題を解決するための共通の設計パターンがあれば特に興味があります。
r - 相関の失敗-ピアソン
相関に関する情報を次のようにデータファイルに書き込みたい:
結果は私には奇妙です-ピアソンの相関は非常に高いですが(常に1に等しい)、ケンダルとスピアマンは非常に低いです。散布図を作成しましたが、線形相関が見られません。
nosql - 大規模なデータ処理HbaseとCassandra
大規模なデータストレージソリューションを研究した後、私はカサンドラにほぼ着陸しました。しかし、一般的に、Hbaseは大規模なデータ処理と分析に適したソリューションであると言われています。
どちらも同じキー/値ストレージであり、両方とも(最近Cassandraで)Hadoopレイヤーを実行できますが、大規模なデータで処理/分析が必要な場合、Hadoopがより適切な候補になります。
また、 http://ria101.wordpress.com/2010/02/24/hbase-vs-cassandra-why-we-moved/で両方の詳細を見つけました 。
しかし、私はまだHbaseの具体的な利点を探しています。
ノードを追加するためのシンプルさとシームレスなレプリケーション、および単一障害点機能がないため、Cassandraについてはより確信しています。また、セカンダリインデックス機能も保持しているため、優れた利点です。
c - (C) 仮想ネットワークアダプター
Linux でリッスンできる仮想ネットワーク アダプタをプログラムで作成して、アダプタ経由でデータを送信しようとするたびにメソッドが呼び出されるようにする方法はありますか?
すべてのパケットを単一の IP アドレスに転送し、元の場所をパケットに含めようとしています。
このようなもの:
たとえば、仮想ネットワーク アダプターを介して google.com に ping を実行すると、メソッドは次のように呼び出されます。sendPacket("GooglesIp","Whatever data a ping sends")
data-processing - データ操作環境
データの操作と解釈に役立つ何か*を探しています。名前、住所などのデータ。
現在、ある情報が別の情報に関連しているかどうかを調べるために Python を多用していますが、多くのコードは何らかのクエリ言語に簡単に置き換えることができることに気付きました。
主に、xml、html、csv、Excel、データベースファイルなど、あらゆる形式のデータをインポートできる環境が必要です。そして、ソフトウェアがそれを読み取って、どの列があるかなどを教えてくれることを望みます。そうすれば、それを解釈するコードを書くことだけを心配することができます。
これは十分に具体的に聞こえますか? もしそうなら、そのような洗練されたソフトウェアを所有している人はいますか?
*プログラミング言語、IDE、それらの組み合わせでもかまいません。
c++ - Lua vsEmbeddedLispおよびその他の潜在的な候補。セットベースのデータ処理用
現在の選択: lua-jit。印象的なベンチマーク、私は構文に慣れています。高性能のABIを作成するには、C++をどのように構成するかを慎重に検討する必要があります。
その他の興味のある質問
- 埋め込み可能な言語としてのGambit-CとGuile
- Luaパフォーマンスのヒント(コレクターを無効にして実行するオプションがあり、処理実行の最後にコレクターを呼び出すことは常にオプションです)。
バックグラウンド
私はリアルタイムの大容量(複合)イベント処理システムに取り組んでいます。ソースでのイベント構造のスキーマ、ストレージ形式、特定のドメイン固有の構造、内部イベントの発生(汎用処理を構造化および駆動するため)、および常に発生する特定の処理ステップのエンコードを表すDSLがあります。
DSLはSQLに非常によく似ています。実際、私はイベントの長期保存にberkeley db(sqlite3インターフェイス経由)を使用しています。ここで重要なのは、イベントの処理がSQLのようにセットベースで行われることです。しかし、DSLに汎用処理ロジックを追加するのではなく、luaまたはlispを埋め込んでこれを処理する必要があるという結論に達しました。
処理コアはboost::asioを中心に構築されており、マルチスレッドであり、rpcはプロトコルバッファを介して実行され、イベントはプロトコルバッファIOライブラリを使用してエンコードされます。つまり、イベントはプロトコルバッファオブジェクトを使用して構造化されておらず、同じエンコーディングを使用します。 /decodingライブラリ。データベースエンジンがメモリセットに格納する方法と非常によく似た、行を含むデータセットオブジェクトを作成します。DSLの処理ステップは最初に処理され、次に汎用処理ロジックに提示されます。
使用する埋め込み可能なスクリプト環境に関係なく、処理コアの各スレッドには、おそらく独自の埋め込み言語環境が必要です(つまり、少なくともマルチスレッド作業を行う場合は、luaがそれを必要とします)。
質問)
現時点での選択は、lispECLとluaのどちらかです。パフォーマンスとスループットが強力な要件であることを念頭に置いて、これはメモリ割り当てを最小限に抑えることが非常に望ましいことを意味します。
もしあなたが私の立場にあったら、あなたはどの言語を選びますか?
検討すべき代替案はありますか(埋め込み可能な実装がない言語を提案しないでください)。Javascript v8はおそらく?
lispはドメインによりよく適合しますか?luaとlispは、提供するものに関してそれほど異なるとは思いません。私を呼んでください:D
私が考えるべき他のプロパティ(以下のような)はありますか?
あらゆる形式の組み込みデータベースIO(コンテキストについては以下のDSLの例を参照)は、スクリプト言語の呼び出しを桁違いに小さくし、どちらを選択しても、全体的なスループットに大きなオーバーヘッドは追加されないと断言します。私は正しい方向に進んでいますか?:D
必要なプロパティ
データセットをlispリストまたはluaテーブルにマッピングしたいのですが、冗長なデータコピーを最小限に抑えたいと思います。たとえば、あるデータセットから別のデータセットに行を追加する場合、両方のテーブルの形状が同じである場合は、参照セマンティクスを使用する必要があります。
lua / lisp呼び出しを行っている間、入力として渡されるデータセットが変更されないことを保証できます。luaとlispに、可能であればデータセットも変更しないように強制したいと思います。
埋め込まれたコールエンドのデータセットを破棄した後、作成された参照をコピーに置き換える必要があります(私は推測します)。
DSLの例
私はあなたの視聴の喜びのためにDSLを添付しますので、あなたは私が何を達成しようとしているのかを知ることができます。注:DSLは汎用処理を示していません。
このプロジェクトは博士課程の研究プロジェクトの構成要素であり、自由ソフトウェアです。このプロジェクトで私と一緒に仕事をする(または貢献する)ことに興味がある場合は、コメントを残してください:D
haskell - データ処理をパイプラインとして表すためのフレームワーク
ほとんどのデータ処理は、コンポーネントのパイプラインとして想定でき、ある出力が別の入力にフィードされます。典型的な処理パイプラインは次のとおりです。
この議論を始めるためのフォイルとして、各セグメントがオブジェクトであるこのパイプラインのオブジェクト指向の実装を考えてみましょう。オブジェクトにはとオブジェクトhandler
の両方への参照が含まれ、次のようなメソッドがあります。reader
writer
run
概略的には、依存関係は次のとおりです。
ここで、リーダーとハンドラーの間に新しいパイプラインセグメントを挿入したいとします。
繰り返しますが、このOO実装では、はオブジェクトtweaker
のラッパーになり、メソッドは次のようになります(疑似命令型コードでは)。reader
tweaker
これはあまり構成可能な抽象化ではないことがわかりました。いくつかの問題は次のとおりです。
tweaker
の左側でのみ使用できますhandler
。つまり、上記の実装を使用tweaker
してこのパイプラインを形成することはできません。リーダー| ハンドラー| 微調整| 作家
パイプラインの結合法則を利用したいので、このパイプラインは次のようになります。
リーダー| ハンドラー| 作家
次のように表すことができます:
p
パイプラインはどこにありますかhandler | writer
。このOO実装では、handler
オブジェクトを部分的にインスタンス化する必要があります
- (1)の言い換えでは、オブジェクトはデータを「プッシュ」するか「プル」するかを知る必要があります。
これらの問題に対処するデータ処理パイプラインを作成するためのフレームワーク(必ずしもOOではない)を探しています。
私はこれにタグを付けました。関数型プログラミングの概念がここで役立つかもしれないと感じたからですHaskell
。functional programming
目標として、次のようなパイプラインを作成できると便利です。
いくつかの観点から、Unixシェルパイプは、次の実装上の決定により、これらの問題の多くを解決します。
パイプラインコンポーネントは、別々のプロセスで非同期的に実行されます
パイプオブジェクトは、「プッシャー」と「プラー」の間のデータの受け渡しを仲介します。つまり、データの書き込み速度が速すぎるライターと、読み取り速度が速すぎるリーダーをブロックします。
特別なコネクタ
<
を使用>
し、パッシブコンポーネント(つまりファイル)をパイプラインに接続します
特に、エージェント間でのスレッド化やメッセージパッシングを使用しないアプローチに興味があります。これを行うにはおそらくそれが最善の方法ですが、可能であればスレッド化は避けたいと思います。
ありがとう!
php - PHP でのメモリ内データの処理
大量のデータを視覚化するために使用できる PHP フレームワークを作成しています。すべてのデータをメモリにフェッチして処理することはできません (並べ替え、フィルターなど)。そのため、SQLクエリを構築し、すべての処理部分をSQLサーバーにプッシュするSQLクエリビルダーがあります。PHPでそれを行う方法はありますか?または、データをバイナリで保存し、処理中のメモリ使用量を削減する C ライブラリが利用可能ですか?