[TIL] NoSQL



NoSQL


2000年代初め、NoSQLはWeb環境で生成されたデータを処理するために大量に使用された.2000年代初め、Web市場の発展に伴い、データ量が急激に増加し始め、1台のサーバを大きく(垂直拡張)するよりも、複数のサーバを接続して拡張(水平拡張)する方法がコストを削減し始めた.

SQLとの違い


リレーショナル・データベース(RDB)は、SQLを使用して、予め作成されたパターンに従って固定形式でデータを格納する.逆に、NoSQLは(モードなし)key-value、document、graph、wide-columnなどの方法でデータを格納できます.
NoSQLのアーキテクチャ形式はSQLよりもダイナミックです.その利点は、各プロパティにすべてのカラムのデータを入力することなく、ローを追加するときにカラムを一緒に追加できることです.そのため、NoSQLは簡単に水平拡張を行い、データを迅速にロードできます.しかし、欠点はACIDとトランザクションを保証できないことです.

NoSQLのタイプ

  • Key Valueタイプ:ex.RedisおよびDynamoなど、Key(属性名)とValue(関連データ値)のペアを属性とする配列形式でデータを格納します.
  • Document DB:データベースex.MongoDBなど
  • 、テーブルではなくドキュメントとしてデータを格納
  • Wide-Column DB:データベースex.Classandra、HBAseなど
  • 、データベース内のカラム(Column)のデータを集中的に管理

    MongoDB-Python接続


    まずmongodbとpythonを接続するには、MongoDBサイトにログインした後にDBを作成する必要があります.データベースを作成したら、接続ウィンドウの「接続yourアプリケーション」をクリックしてPythonに接続します.

    次のウィンドウに移動すると、Pythonバージョンを選択し、以下のURIを取得できます.URIの構造は次のとおりです.
    mongodb+srv://<username>:<password>@<Host>/<database name>?retryWrites=true&w=majority
    それからコードウィンドウに移動し、MongoClientでMongoDBに接続すればいいです.
    from pymongo import MongoClient
    
    URI = 'mongodb+srv://<username>:<password>@<Host>/<database name>?retryWrites=true&w=majority'
    
    client = MongoClient(URI)
    database = client['db']
    collection = database['collection']
    
    # 위와 동일한 동작을 하는 코드
    collection = MongoClient(URI).db.collection