質問: 株式市場アプリケーション用のデータベース(MySqlまたはNoSQL) I'm re-creating an app for Stockmarket Screening & Realtime charting Display. 私が設計することを提案しているデータベースのワイヤフレームは以下の通りです: **1. Company master - Where all the information of the company is given:** Vendor Code|Company Full Name|Company Short name|Industry Code|Industry Full Name|Promoter Group Code|Promoter Group|EXCHANGE1 CODE|STOCK CATEGORY|EXCHANGE2 CODE|TYPE|ISIN CODE|STOCK TYPE **2. ) Intraday Data - Where every minutes the price of a stock is Stored:** (This would be overwritten the next trading day) EXCHANGE1 CODE | OPEN PRICE | LAST PRICE | DAYHIGH | DAYLOW | Offer Price | Offer Qty | VOLUME |VALUE |Date & Time Stamp **3. Historical Data (Day wise):** EXCHANGE1 CODE | OPEN PRICE | CLOSE PRICE | DAYHIGH | DAYLOW | VOLUME | Date **4. Fundamental Data (Not Yet given full thought):** This would store all fundamental data like last 4 qtrly reports, Competitors, Balance sheets, Financial Ratios, P&L Statement, Promoter Details etc.. 典型的なクエリは次のようになります。 **Stock Quote Page:** Time Series Price Charts with user selection, Intraday, 1 week, 1 month, 6months, 1 year, 5 years Fundamental Data presented in chart form (i.e growth in profits, growth in sales) plus Other fundamental Data & News **Stock Screening :** (Example Queries) * 売上高を20%伸ばした企業の在庫を表示します 過去3年間の年数 * PEが10未満の企業を表示します * 過去5年間にqtrly利益が年間15%増加した会社を表示します。 * 過去100日間の平均価格が現在の価格よりも低い自動車部門の企業を表示します。 * 50日、100日、200日の単純な移動平均を表示する Right now i'm at a stage wherein i've to decide which database to use MySQL or MongoDB (NoSQL Document) or Cassandra (NoSQL Column). So in the above case which database should i use? and why? (Advantages/Disadvantages) I want fast execution, data integrity, high concurrency, data aggregation & calculations (Analysis). Plus we have to account that the data tables are being updates every minute and also serving visitor requests from the same DB simultaneously. So consistent & error free read/write is also of importance. 私のDBワイヤフレーム上のコメント/評論も歓迎します。 よろしく サニー
回答: さまざまなデータに対して異なるデータベースが必要になります。たとえば、会社のマスタ、履歴データ、基本データはすべて標準のSQLデータベースに格納されている可能性があります(MySQLまたはPostgresの両方が合理的な選択肢です)。 日中のデータが比較的低い頻度(例えば、1分のバー以下)である場合、それはおそらくSQL DBにも入れられる可能性がある。それが非常に大きい場合(例えば、複数の取引所からのティックごとのデータ)、SQLは大きな選択肢ではないかもしれない。その場合、HDF5ファイルやカスタムファイル形式など、どのような種類のクエリーを実行するかによって異なります。 データが非常に大きくなる場合は、実行するクエリの種類を正確に考え、データ構造(バックエンド、ファイル形式、列レイアウトなど)をクエリに合わせて最適化することが重要です。