問題タブ [nosql]

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.

0 投票する
7 に答える
3046 参照

sql - ソーシャルネットワークタイプのアプリケーションを構築するためのパターン?

Webベースのソーシャルネットワークタイプのアプリケーションを設計/設計/開発する必要があります。

基本機能:
-ユーザーはシステム上でアカウントを作成します
-ユーザーはお互いに「友達」になることに同意します-ユーザーは
システム内でコンテンツを作成します
-ユーザーは自分が作成したコンテンツを表示/編集できる友達を指定します

確かに、このコア機能は以前に何度も作成されていますか?この種のものを実装する方法について、そこにベストプラクティスのパターンはありますか?

このためのデータベースがどのように見えるかに最も興味があります。

これはSQLの観点(任意のデータベース)からどのように見えますか?
これは、NOSQLの観点(任意のNOSQLデータベース)からどのように見えるでしょうか?

私が最も興味を持っているのは、データベース内で「コンテンツの可視性」の問題をどのように解決するかということです。つまり、データベース/アプリケーションは、承認された友人だけがユーザーが作成したコンテンツを見ることができるようにするにはどうすればよいですか?

ありがとう

0 投票する
2 に答える
403 参照

graph - InfoGridアプリケーションの基本的な例

私が構築しているプロジェクトにInfoGridと呼ばれるこのソフトウェアを使用しようとしています。誰かが私にいくつかの基本的な入門記事を教えてもらえますか?サイトにドキュメントがありません。

十分な評判のある人は、質問を編集して、この質問にタグInfoGridを追加してください。

0 投票する
4 に答える
1270 参照

nosql - WindowsプラットフォームでNOSQLを使用する場合の最良の選択は何ですか?

私は.NETプログラマーであり、RDBMSに代わるものを見てみたいと思っています。現時点で最も成熟した選択肢は何ですか(データベース内の最も成熟したドライバーとほとんどの機能)?

私はMongoDBを見てきましたが、満足しています。

0 投票する
4 に答える
35423 参照

sql - NOSQLによる結合操作

Bigtable と NOSQL に関する記事をいくつか読みました。JOIN 操作を回避することは非常に興味深いことです。

基本的な例として、Employee テーブルと Department テーブルを取り上げ、データが複数のテーブル/サーバーに分散していると仮定します。

データが複数のサーバーに分散している場合、どのように JOIN または UNION 操作を行うのでしょうか?

0 投票する
3 に答える
3568 参照

nosql - Amazon.com はキー値データストアでどのように機能しますか?

Amazon はキー値データ ストアを使用していると聞きましたが、従来のリレーショナル正規化データベースは使用していません。従来のアプローチしか使ったことのない者として言えば、これはどのように機能するのでしょうか? 次のことをする必要はありませんか?

select * from book where book_id = n

または:

select * from book where author_id = y

正規化されたデータベースなしで、これほど多くのデータと非常に多くの関係を持つサイト/アプリを構築するにはどうすればよいでしょうか?

0 投票する
7 に答える
3573 参照

json - SQLite よりも簡単

データを読みやすいプレーン テキスト形式(複数行の json や yaml など)で格納する SQLite のようなデータベースを知っていますか?

プロジェクトと一緒にバージョン管理システムにデータを保存したいのですが、sqlite を使用すると、異なる作業コピーで発生したデータの変更をマージできません。

すべてのデータをメモリにロードすることなく、プログラムでこのデータを変更して効率的にクエリできるようにしたいので、ある種の構成ファイルだけを使用したくありません。

データベース内のデータは、ある種の sql ダイアレクトを介してアクセスされる場合がありますが、それは必須ではありません。

編集:

適切なデータベースができる限り速くデータのフラグメントにアクセスできるようにする、json/yaml/whatever のインデックスファイルを構築および維持するものを探しています。

また、データを変更する機能も必要なので、クエリのみを許可するソリューションでは不十分です。

0 投票する
7 に答える
16201 参照

gis - NoSQLと空間データ

NoSQL(非リレーショナル)データベースを使用して空間データを格納した経験はありますか?そのようなデータベースを使用して、たとえばデスクトップアプリケーションのデータを保持することの潜在的な利点(速度、スペースなど)はありますか(SpatiaLiteまたはPostGISを使用する場合と比較して)?

空間データにMongoDBを使用することについての投稿を見たことがありますが、パフォーマンスの比較に興味があります。

0 投票する
8 に答える
8692 参照

.net - 組み込みの非リレーショナル (nosql) データ ストア

Windows デスクトップ アプリケーションに何らかの埋め込みキー値 (またはドキュメント) ストアを使用/実装することを考えています。さまざまな種類のデータ (GPS トラックはその一例です) を保存し、もちろんこのデータを照会できるようにしたいと考えています。データの量は、すべてを同時にメモリにロードできないほどの量になります。

y-serialのようなキー値ストアのストレージ エンジンとして sqlite を使用することを考えていますが、.NET で記述されています。また、 FriendFeed が MySQL を使用してスキーマのないデータを保存する方法についても読みました。これは、非リレーショナル データに RDBMS を使用する方法を示す良い指針です。sqlite は、そのシンプルさ、移植性、およびライブラリ サイズから、適切なオプションのようです。

私の質問は、組み込みの非リレーショナル ストアに他のオプションがあるかどうかです。配布可能である必要はなく、トランザクションをサポートする必要もありませんが、.NET からアクセスできる必要があり、ダウンロード サイズが小さい必要があります。

更新: sqlite と組み込みのキー値ストア ライブラリである Berkeley DB を比較する、キー値データベースとしての SQLiteというタイトルの記事を見つけました。

0 投票する
2 に答える
2410 参照

database-design - 動的分類法を処理するための専用のファセット検索エンジン - パフォーマンスや柔軟性だけに役立ちますか?

私はしばらくの間、eBay のような分類法と特定の製品カテゴリに依存する属性を使用して、典型的な e コマース サイトをモデル化することについて考えてきました。

最初の試みは、EAV と Table Per Class db 継承モデリングのどちらかを選択することでした。パフォーマンスのために後者を選択しましたが、それが意味することは、個別の列としてモデル化された特定のカテゴリ属性 (テレビの解像度など) を持つ特定の (カテゴリ ツリーの葉) 製品カテゴリごとに専用のテーブルを作成することでした。

既存のカテゴリに属性を追加したり、新しいカテゴリを追加したりする必要がある場合、この設定は効率的ですが、柔軟ではありません。このような変更ごとに、次のものが必要です。

  • テーブルの変更/作成
  • このようなカテゴリを特定の属性でフィルタリングするための新しいフォーム
  • 検索およびフィルタリング用のデータベース クエリを生成するための新しいコード
  • 新しいカテゴリの製品を表示するためのいくつかの新しいビューモデル/DTO およびビュー

その複雑さに対処するには、これらの属性のある種のメタ表現が (アプリケーションの外部であっても) xml または Excel ファイルで必要であると思います。これにより、変更のたびに、言及されたすべてのコードが自動生成されます (sql/orm クエリ、アプリケーションコード、テンプレート)。したがって、開発には役立ちますが、それでもテストと追加の展開が必要です。

その時点で、eBay は実際には検索にリレーショナル データベースを使用しておらず、分類法が非常に柔軟であるため、新しいリーフ カテゴリを非常に迅速に追加できることを知りました。また、それらのカテゴリは、おそらくリレーショナル データベースでモデル化された階層ツリーのカテゴリではなく、単に検索属性 (ファセット) です。

最も有望な専用のファセット検索セットアップ (個別の Solr インスタンス) を簡単に調べた後、分類法の変更に柔軟に対応できるかどうかはわかりません。通常、Solr は何らかの形でリレーショナル DB をミラーリングするだけなので、特定のカテゴリ属性は依然としてDBMS メタデータとして DB でモデル化されます。属性をフィルタリングするための UI フォームを動的に生成することは、次の場合を除いて困難です。

1) EAV ファシオンを使用してデータを RDBMS に保持し、SOLR 検索を使用してパフォーマンスの問題を克服します (ただし、EAV の乱雑さ、データ整合性の強制などの問題はまだあります)

2) RDBMS に属性ディクショナリ (名前と型のみ) だけを保持し、検索機能とは別に非リレーショナル データ ストアのようなものとして使用して、特定の属性値を SOLR に格納します。アプリケーションがsolrと緊密に結合されるため(つまり、製品版の管理者CRUDがSOLRと直接やり取りするため)、このソリューションにも(たとえそれが可能であったとしても)確信が持てません。

あなたの考えは何ですか?このような (パフォーマンスの高い) 分類法では、柔軟なコード生成は避けられないと思いますか? それをどのように処理しますか?コード生成のためだけに、DB で EAV 方式の別のデータ ディクショナリがあるのでしょうか。MongoDB のようなものも使用できると思いますが、UI コードの生成 (実行時かどうかに関係なく) には何らかのメタデータが必要です。

ここには多くの質問がありますが、より大きなクラスの問題を扱うときの一般的な設計アプローチに興味があるため、小さな質問に分割したくありませんでした。

0 投票する
12 に答える
4128 参照

scalability - 動的に水平方向にスケーラブルなKeyValueストア

次のようなキーバリューストアはありますか?

  • ノードを追加および削除するだけで、データが自動的に再配布されます
  • ノードを削除しても、冗長性を提供するために2つの追加データノードを追加できます
  • 最大1GBのサイズのテキストまたは画像を保存できます
  • 最大100TBのデータを保存できます
  • 高速(その上でクエリを実行できるようになります)
  • これをすべてクライアントに対して透過的にします
  • Ubuntu/FreeBSDまたはMacで動作します
  • 無料またはオープンソース

基本的に、「単一」を使用できるものが必要であり、memcached、db、およびいくつかのストレージコンポーネントについて心配する必要はないので、そうです、データベースの「銀の弾丸」が必要です。

ありがとう

ズベイル

これまでの回答:BackBlaze上にあるMogileFS-私が見る限り、これは単なるファイルシステムであり、いくつかの調査の結果、大きな画像ファイルにのみ適しているようです。

東京暴君-ライトクラウドが必要です。新しいノードを追加しても、これは自動スケーリングされません。私はこれを調べましたが、単一のノードに適合するクエリでは非常に高速であるようですが

Riak-これは私が自分で調べているものですが、まだ結果がありません

Amazon S3-本番環境で唯一の永続化レイヤーとしてこれを使用している人はいますか?私が見たところ、複雑なクエリは高すぎるため、画像の保存に使用されているようです

@shamanはCassandraを提案しました-間違いなく私が調べているものです

これまでのところ、100ポイントの賞金を提供した後でも、質問に答えられなかったとしても、私が述べた基準を満たすデータベースまたはキーバリューストアはないようです。