NoSQL Databases Overview

Talaan ng mga Nilalaman:

NoSQL Databases Overview
NoSQL Databases Overview
Anonim

Ang acronym na NoSQL ay likha noong 1998. Maraming tao ang nag-iisip na ang NoSQL ay isang mapanlinlang na termino na nilikha para sundutin ang SQL. Sa katotohanan, ang termino ay nangangahulugang Hindi Lamang SQL. Ang ideya ay ang parehong mga teknolohiya ay maaaring magkakasamang mabuhay at ang bawat isa ay may sariling lugar. Ang kilusang NoSQL ay nasa balita sa nakalipas na ilang taon dahil marami sa mga pinuno ng Web 2.0 ang nagpatibay ng teknolohiyang NoSQL. Ang mga kumpanya tulad ng Facebook, Twitter, Digg, Amazon, LinkedIn, at Google ay gumagamit ng NoSQL sa isang paraan o iba pa. Hatiin natin ang NoSQL para maipaliwanag mo ito sa iyong CIO o maging sa iyong mga katrabaho.

Image
Image

NoSQL na Lumabas Mula sa Isang Pangangailangan

Data Storage: Ang nakaimbak na digital na data ng mundo ay sinusukat sa exabytes. Ang isang exabyte ay katumbas ng isang bilyong gigabytes (GB) ng data. Ayon sa Internet.com, ang dami ng nakaimbak na data na idinagdag noong 2006 ay 161 exabytes. Pagkalipas lamang ng 4 na taon noong 2010, ang halaga ng data na nakaimbak ay halos 1, 000 ExaBytes na isang pagtaas ng higit sa 500%. Sa madaling salita, maraming data ang iniimbak sa mundo at magpapatuloy lamang ito sa paglaki.

Interconnected Data: Patuloy na nagiging mas konektado ang data. Ang paglikha ng web na binuo sa mga hyperlink, ang mga blog ay may mga pingback at bawat pangunahing sistema ng social network ay may mga tag na nagbubuklod sa mga bagay. Ang mga pangunahing sistema ay binuo para magkadugtong.

Complex Data Structure: NoSQL ay madaling mahawakan ang hierarchical nested data structures. Upang magawa ang parehong bagay sa SQL, kakailanganin mo ng maramihang mga talahanayan ng pamanggit na may lahat ng uri ng mga susi. Bilang karagdagan, may kaugnayan sa pagitan ng pagganap at pagiging kumplikado ng data. Maaaring bumaba ang pagganap sa isang tradisyunal na RDBMS habang iniimbak namin ang napakalaking dami ng data na kinakailangan sa mga social networking application at sa semantic web.

Ano ang NoSQL?

Sa palagay ko ang isang paraan upang tukuyin ang NoSQL ay isaalang-alang kung ano ang hindi. Hindi ito SQL at hindi ito relational. Tulad ng iminumungkahi ng pangalan, hindi ito kapalit ng isang RDBMS ngunit pinupuri ito. Idinisenyo ang NoSQL para sa mga distributed data store para sa napakalaking pangangailangan ng data. Isipin ang Facebook kasama ang 500, 000, 000 user nito o Twitter na nag-iipon ng Terabits ng data bawat araw.

Sa isang database ng NoSQL, walang nakapirming schema at walang pagsali. Ang isang RDBMS ay "nagpapalaki" sa pamamagitan ng pagkuha ng mas mabilis at mas mabilis na hardware at pagdaragdag ng memorya. Ang NoSQL, sa kabilang banda, ay maaaring samantalahin ang "scaling out". Ang pag-scale out ay tumutukoy sa pagkalat ng load sa maraming sistema ng kalakal. Ito ang bahagi ng NoSQL na ginagawa itong isang murang solusyon para sa malalaking dataset.

NoSQL Categories

Ang kasalukuyang mundo ng NoSQL ay umaangkop sa 4 na pangunahing kategorya.

Ang

  • Mga Tindahan ng Key-values ay pangunahing nakabatay sa Dynamo Paper ng Amazon na isinulat noong 2007. Ang pangunahing ideya ay ang pagkakaroon ng hash table kung saan mayroong natatanging susi at isang pointer sa isang partikular na item ng data. Ang mga pagmamapa na ito ay kadalasang sinasamahan ng mga mekanismo ng cache para ma-maximize ang performance.
  • Column Family Stores ay ginawa upang mag-imbak at magproseso ng napakaraming data na ipinamahagi sa maraming machine. Mayroon pa ring mga susi ngunit tumuturo ang mga ito sa maraming column. Sa kaso ng BigTable (modelo ng Google's Column Family NoSQL), ang mga row ay nakikilala sa pamamagitan ng isang row key na may data na pinagsunod-sunod at iniimbak ng key na ito. Ang mga column ay nakaayos ayon sa pamilya ng column.

    Ang

  • Document Databases ay inspirasyon ng Lotus Notes at katulad ng mga key-value store. Ang modelo ay karaniwang may bersyon na mga dokumento na mga koleksyon ng iba pang mga key-value na koleksyon. Ang mga semi-structured na dokumento ay iniimbak sa mga format tulad ng JSON.
  • Ang

  • Graph Databases ay binuo gamit ang mga node, mga ugnayan sa pagitan ng mga tala at mga katangian ng mga node. Sa halip na mga talahanayan ng mga row at column at ang mahigpit na istraktura ng SQL, ginagamit ang isang flexible na modelo ng graph na maaaring mag-scale sa maraming machine.
  • Mga Pangunahing Manlalaro ng NoSQL

    Ang mga pangunahing manlalaro sa NoSQL ay lumitaw pangunahin dahil sa mga organisasyong nagpatibay sa kanila. Ang ilan sa mga pinakamalaking teknolohiya ng NoSQL ay kinabibilangan ng:

    Ang

  • Dynamo: Dynamo ay ginawa ng Amazon.com at ito ang pinakakilalang Key-Value NoSQL database. Nangangailangan ang Amazon ng isang mataas na nasusukat na distributed platform para sa kanilang mga e-commerce na negosyo kaya binuo nila ang Dynamo. Ginagamit ng Amazon S3 ang Dynamo bilang mekanismo ng imbakan.
  • Cassandra: Si Cassandra ay open sourced ng Facebook at isang column-oriented na database ng NoSQL.
  • Ang

  • BigTable: BigTable ay ang pinagmamay-ariang database ng column oriented ng Google. Pinapayagan ng Google ang paggamit ng BigTable ngunit para lamang sa Google App Engine.
  • SimpleDB: Ang SimpleDB ay isa pang database ng Amazon. Ginagamit para sa Amazon EC2 at S3, bahagi ito ng Amazon Web Services na naniningil ng mga bayarin depende sa paggamit.
  • CouchDB: Ang CouchDB kasama ng MongoDB ay mga open source na database ng NoSQL na nakatuon sa dokumento.
  • Neo4J: Ang Neo4j ay isang open source na database ng graph.
  • Querying NoSQL

    Ang tanong kung paano mag-query ng isang database ng NoSQL ay kung ano ang interesado sa karamihan ng mga developer. Pagkatapos ng lahat, ang data na nakaimbak sa isang malaking database ay walang anumang kabutihan kung hindi mo ito makukuha at ipakita sa mga end user o mga serbisyo sa web. Ang mga database ng NoSQL ay hindi nagbibigay ng mataas na antas ng declarative query na wika tulad ng SQL. Sa halip, ang pag-query sa mga database na ito ay> PREFIX foaf:

    SELECT ?url

    FROM

    WHERE {

    ?contributor foaf:name "Jon Foobar".

    ?contributor foaf:weblog ?url.

    }

    Kinabukasan ng NoSQL

    Ang mga organisasyong may malaking pangangailangan sa pag-iimbak ng data ay seryosong tumitingin sa NoSQL. Tila, ang konsepto ay hindi nakakakuha ng mas maraming traksyon sa mas maliliit na organisasyon. Sa isang survey na isinagawa ng Information Week, 44% ng mga propesyonal sa IT ng negosyo ay hindi nakarinig ng NoSQL. Dagdag pa, 1% lamang ng mga respondent ang nag-ulat na ang NoSQL ay bahagi ng kanilang estratehikong direksyon. Maliwanag, may lugar ang NoSQL sa ating konektadong mundo ngunit kakailanganing patuloy na mag-evolve para makuha ang mass appeal na iniisip ng marami na maaaring magkaroon nito.