4.1 వివరణ

Apache Cassandra అనేది పంపిణీ చేయబడిన డేటాబేస్ మేనేజ్‌మెంట్ సిస్టమ్, ఇది NoSQL సిస్టమ్‌ల తరగతికి చెందినది మరియు హాష్ రూపంలో సమర్పించబడిన భారీ డేటా శ్రేణుల యొక్క అత్యంత స్కేలబుల్ మరియు నమ్మదగిన నిల్వలను రూపొందించడానికి రూపొందించబడింది.

ప్రారంభంలో, ఈ ప్రాజెక్ట్ Facebook యొక్క ప్రేగులలో అభివృద్ధి చేయబడింది మరియు 2009లో అపాచీ సాఫ్ట్‌వేర్ ఫౌండేషన్ విభాగంలోకి బదిలీ చేయబడింది, ఈ సంస్థ ప్రాజెక్ట్‌ను అభివృద్ధి చేయడం కొనసాగించింది. Cisco, IBM, Cloudkick, Reddit, Digg, Rackspace, Huawei, Netflix, Apple, Instagram, GitHub, Twitter మరియు Spotify వంటి కంపెనీలకు సేవలను అందించడానికి Cassandra ఆధారిత పారిశ్రామిక పరిష్కారాలు అమలు చేయబడ్డాయి. 2011 నాటికి, కాసాండ్రా కింద ఒకే డేటాబేస్‌ను అందించే అతిపెద్ద సర్వర్ క్లస్టర్ 400 కంటే ఎక్కువ యంత్రాలను కలిగి ఉంది మరియు 300 TB కంటే ఎక్కువ డేటాను కలిగి ఉంది.

జావా భాషలో వ్రాయబడింది , ఇది DynamoDB మాదిరిగానే పంపిణీ చేయబడిన హాష్ సిస్టమ్‌ను అమలు చేస్తుంది, ఇది డేటా వాల్యూమ్‌ను పెంచడంతో దాదాపు లీనియర్ స్కేలబిలిటీని అందిస్తుంది. ఇది కాలమ్‌ల కుటుంబం ఆధారంగా డేటా నిల్వ నమూనాను ఉపయోగిస్తుంది, ఇది MemcacheDB వంటి సిస్టమ్‌ల నుండి భిన్నంగా ఉంటుంది, ఇది డేటాను కీ-విలువ జతలో మాత్రమే నిల్వ చేస్తుంది, అనేక స్థాయిల గూడుతో హ్యాష్‌లను నిల్వ చేయగల సామర్థ్యం ద్వారా.

తప్పు-తట్టుకునే DBMS వర్గానికి చెందినది: డేటాబేస్లో ఉంచబడిన డేటా స్వయంచాలకంగా పంపిణీ చేయబడిన నెట్‌వర్క్ యొక్క అనేక నోడ్‌లకు ప్రతిరూపం చేయబడుతుంది లేదా అనేక డేటా కేంద్రాలలో సమానంగా పంపిణీ చేయబడుతుంది. నోడ్ విఫలమైనప్పుడు, దాని విధులు ఇతర నోడ్‌ల ద్వారా ఫ్లైలో తీయబడతాయి, క్లస్టర్‌కి కొత్త నోడ్‌లను జోడించడం మరియు కాసాండ్రా వెర్షన్‌ను అప్‌డేట్ చేయడం, అదనపు మాన్యువల్ జోక్యం మరియు ఇతర నోడ్‌ల రీకాన్ఫిగరేషన్ లేకుండా ఫ్లైలో జరుగుతుంది.

అయినప్పటికీ, లోడ్ బ్యాలెన్సింగ్ నాణ్యతను కాపాడేందుకు, ఇప్పటికే ఉన్న వాటితో సహా ప్రతి నోడ్‌కు కీలను (లేబుల్‌లు) మళ్లీ రూపొందించాలని సిఫార్సు చేయబడింది. నోడ్‌ల సంఖ్యలో బహుళ పెరుగుదల (2 సార్లు, 3 సార్లు మరియు మొదలైనవి) విషయంలో ఇప్పటికే ఉన్న నోడ్‌ల కోసం కీ ఉత్పత్తిని నివారించవచ్చు.

4.2 డేటా మోడల్

కాసాండ్రా పరిభాషలో, ఒక అప్లికేషన్ కీస్పేస్‌తో పని చేస్తుంది, ఇది రిలేషనల్ మోడల్‌లోని డేటాబేస్ స్కీమా భావనకు అనుగుణంగా ఉంటుంది. ఈ కీస్పేస్ అనేక కాలమ్ కుటుంబాలను కలిగి ఉంటుంది, ఇది రిలేషనల్ టేబుల్ భావనకు అనుగుణంగా ఉంటుంది.

ప్రతిగా, కాలమ్ కుటుంబాలు నిలువు వరుసలను (కాలమ్) కలిగి ఉంటాయి, వీటిని రికార్డ్ (వరుస)లోని కీ (వరుస కీ) ఉపయోగించి కలుపుతారు. నిలువు వరుస మూడు భాగాలను కలిగి ఉంటుంది: పేరు (కాలమ్ పేరు), టైమ్‌స్టాంప్ (టైమ్‌స్టాంప్) మరియు విలువ (విలువ). రికార్డులోని నిలువు వరుసలు ఆర్డర్ చేయబడ్డాయి. రిలేషనల్ డేటాబేస్ వలె కాకుండా, రికార్డులు (మరియు డేటాబేస్ పరంగా ఇవి అడ్డు వరుసలు) ఇతర రికార్డులలోని అదే పేర్లతో నిలువు వరుసలను కలిగి ఉన్నాయా అనే దానిపై ఎటువంటి పరిమితులు లేవు - లేదు.

కాలమ్ కుటుంబాలు అనేక రకాలుగా ఉండవచ్చు, కానీ ఈ వ్యాసంలో మేము ఈ వివరాలను వదిలివేస్తాము. కాసాండ్రా యొక్క తాజా సంస్కరణల్లో, CQL భాషను ఉపయోగించి డేటాను (DDL, DML) నిర్వచించడం మరియు మార్చడం కోసం ప్రశ్నలను అమలు చేయడం అలాగే ద్వితీయ సూచికలను సృష్టించడం సాధ్యమైంది.

కాసాండ్రాలో నిల్వ చేయబడిన నిర్దిష్ట విలువ దీని ద్వారా గుర్తించబడుతుంది:

  • కీస్పేస్ అనేది అప్లికేషన్ (డొమైన్)కి బైండింగ్. ఒకే క్లస్టర్‌లో వివిధ అప్లికేషన్‌ల నుండి డేటాను హోస్ట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది;
  • కాలమ్ కుటుంబం అనేది ప్రశ్నకు కట్టుబడి ఉంటుంది;
  • కీ అనేది క్లస్టర్ నోడ్‌కు బైండింగ్. సేవ్ చేయబడిన నిలువు వరుసలు ఏ నోడ్‌లలో ముగుస్తాయో కీ నిర్ణయిస్తుంది;
  • కాలమ్ పేరు అనేది రికార్డ్‌లోని ఒక లక్షణానికి కట్టుబడి ఉంటుంది. ఒక ఎంట్రీలో బహుళ విలువలను నిల్వ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.

ప్రతి విలువ టైమ్‌స్టాంప్‌తో అనుబంధించబడుతుంది, రికార్డింగ్ సమయంలో వైరుధ్యాలను పరిష్కరించడానికి ఉపయోగించే వినియోగదారు-నిర్దిష్ట సంఖ్య: పెద్ద సంఖ్య, కొత్త నిలువు వరుస పరిగణించబడుతుంది మరియు పోల్చినప్పుడు, పాత నిలువు వరుసలను ఓవర్‌రైట్ చేస్తుంది.

4.3 డేటా రకాలు

డేటా రకాల ద్వారా: కీస్పేస్ మరియు కాలమ్ కుటుంబం స్ట్రింగ్స్ (పేర్లు); టైమ్‌స్టాంప్ 64-బిట్ సంఖ్య; మరియు కీ, కాలమ్ పేరు మరియు కాలమ్ విలువ బైట్‌ల శ్రేణి. కాసాండ్రా డేటా రకాల భావనను కూడా కలిగి ఉంది. కాలమ్ కుటుంబాన్ని సృష్టించేటప్పుడు డెవలపర్ ఈ రకాలను (ఐచ్ఛికంగా) పేర్కొనవచ్చు.

కాలమ్ పేర్ల కోసం దీనిని కంపారిటర్ అంటారు, విలువలు మరియు కీల కోసం దీనిని వాలిడేటర్ అంటారు. కాలమ్ పేర్లకు ఏ బైట్ విలువలు అనుమతించబడతాయో మరియు వాటిని ఎలా ఆర్డర్ చేయాలో మొదటిది నిర్వచిస్తుంది. రెండవది కాలమ్ మరియు కీ విలువలకు ఏ బైట్ విలువలు చెల్లుబాటు అవుతాయి.

ఈ డేటా రకాలు సెట్ చేయబడకపోతే, కాసాండ్రా విలువలను నిల్వ చేస్తుంది మరియు వాటిని బైట్ స్ట్రింగ్‌లుగా (బైట్‌టైప్) పోలుస్తుంది, ఎందుకంటే వాస్తవానికి అవి అంతర్గతంగా నిల్వ చేయబడతాయి.

డేటా రకాలు:

  • బైట్స్ రకం : ఏదైనా బైట్ స్ట్రింగ్స్ (ధృవీకరణ లేదు)
  • AsciiType : ASCII స్ట్రింగ్
  • UTF8రకం : UTF-8 స్ట్రింగ్
  • పూర్ణాంక రకం : ఏకపక్ష పరిమాణంతో సంఖ్య
  • Int32Type : 4-బైట్ సంఖ్య
  • పొడవైన రకం : 8-బైట్ సంఖ్య
  • UUID రకం : UUID రకం 1 లేదా 4
  • సమయంUUID రకం : టైప్ 1 UUID
  • తేదీ రకం : 8-బైట్ టైమ్‌స్టాంప్ విలువ
  • BooleanType : రెండు విలువలు: true = 1 లేదా తప్పు = 0
  • FloatType : 4-బైట్ ఫ్లోటింగ్ పాయింట్ సంఖ్య
  • డబుల్ టైప్ : 8-బైట్ ఫ్లోటింగ్ పాయింట్ నంబర్
  • దశాంశ రకం : ఏకపక్ష పరిమాణం మరియు ఫ్లోటింగ్ పాయింట్‌తో కూడిన సంఖ్య
  • కౌంటర్ కాలమ్ రకం : 8 బైట్ కౌంటర్

కాసాండ్రాలో, అన్ని డేటా రైటింగ్ ఆపరేషన్‌లు ఎల్లప్పుడూ రీరైటింగ్ ఆపరేషన్‌లు, అంటే, ఇప్పటికే ఉన్న అదే కీ మరియు పేరుతో ఉన్న కాలమ్ కాలమ్ కుటుంబానికి వచ్చి, సేవ్ చేయబడిన దాని కంటే టైమ్‌స్టాంప్ ఎక్కువగా ఉంటే, అప్పుడు విలువ భర్తీ చేయబడుతుంది. . రికార్డ్ చేయబడిన విలువలు ఎప్పటికీ మారవు, కొత్త నిలువు వరుసలు కొత్త విలువలతో వస్తాయి.

చదవడం కంటే కాసాండ్రాకు రాయడం వేగంగా ఉంటుంది. ఇది డిజైన్‌లో తీసుకున్న విధానాన్ని మారుస్తుంది. డేటా మోడల్‌ను రూపొందించే కోణం నుండి మేము కాసాండ్రాను పరిగణనలోకి తీసుకుంటే, కాలమ్ కుటుంబాన్ని పట్టికగా కాకుండా మెటీరియలైజ్డ్ వీక్షణగా ఊహించడం సులభం - ఇది కొన్ని క్లిష్టమైన ప్రశ్నల డేటాను సూచించే నిర్మాణం, కానీ దానిని నిల్వ చేస్తుంది డిస్క్.

ప్రశ్నలను ఉపయోగించి ఏదో ఒక విధంగా డేటాను కంపోజ్ చేయడానికి ప్రయత్నించే బదులు, ఈ ప్రశ్నకు అవసరమైన ప్రతిదాన్ని లక్ష్య కుటుంబంలో నిల్వ చేయడానికి ప్రయత్నించడం మంచిది. అంటే, ఎంటిటీలు లేదా వస్తువుల మధ్య సంబంధాల మధ్య సంబంధాల వైపు నుండి కాకుండా, ప్రశ్నల వైపు నుండి చేరుకోవడం అవసరం: ఏ ఫీల్డ్‌లను ఎంచుకోవాలి; రికార్డులు ఏ క్రమంలో వెళ్లాలి; ప్రధాన వాటికి సంబంధించిన ఏ డేటాను కలిసి అభ్యర్థించాలి - ఇవన్నీ ఇప్పటికే కాలమ్ కుటుంబంలో నిల్వ చేయబడాలి.

రికార్డులోని నిలువు వరుసల సంఖ్య సిద్ధాంతపరంగా 2 బిలియన్లకు పరిమితం చేయబడింది. ఇది సంక్షిప్త డైగ్రెషన్ మరియు మరిన్ని వివరాలను డిజైన్ మరియు ఆప్టిమైజేషన్ పద్ధతులపై కథనంలో చూడవచ్చు. ఇప్పుడు కాసాండ్రాకు డేటాను సేవ్ చేసే మరియు దానిని చదివే ప్రక్రియను పరిశీలిద్దాం.