6.1 HBase ஐ கண்டுபிடித்தவர் யார் மற்றும் ஏன்

இந்த விரிவுரையில், Hbase போன்ற ஒரு அற்புதமான கருவியைப் பற்றி பேசுவோம், இது சமீபத்தில் பெரும் புகழ் பெற்றது: எடுத்துக்காட்டாக, Facebook அதை அதன் செய்தியிடல் அமைப்பின் அடிப்படையாகப் பயன்படுத்துகிறது, இது ஏற்கனவே நிறைய கூறுகிறது.

விரிவுரையானது பிக் டேபிளின் கருத்து மற்றும் அதன் இலவச செயலாக்கம், வேலையின் அம்சங்கள் மற்றும் கிளாசிக்கல் ரிலேஷனல் தரவுத்தளங்கள் (MySQL மற்றும் Oracle போன்றவை) மற்றும் Redis, Aerospike மற்றும் memcached போன்ற முக்கிய மதிப்பு சேமிப்பகங்களில் இருந்து வேறுபாடுகள் பற்றி பேசும். வழக்கம் போல், பிரச்சினையின் வரலாற்றிலிருந்து ஆரம்பிக்கலாம். பல பிக்டேட்டா திட்டங்களைப் போலவே, Hbase ஆனது Google ஆல் உருவாக்கப்பட்ட ஒரு கருத்தாக்கத்திலிருந்து பிறந்தது. Hbase இன் அடிப்படைக் கொள்கைகள் Bigtable: A Distributed Storage System for Structured Data கட்டுரையில் விவரிக்கப்பட்டுள்ளன .

முந்தைய விரிவுரைகளில் நாங்கள் விவாதித்தபடி, MapReduce முன்னுதாரணத்தைப் பயன்படுத்தி தொகுதி தரவு செயலாக்கத்திற்கு சாதாரண கோப்புகள் மிகவும் பொருத்தமானவை. மறுபுறம், கோப்புகளில் சேமிக்கப்பட்ட தகவல் புதுப்பிக்க சிரமமாக உள்ளது; கோப்புகள் சீரற்ற அணுகலுக்கான வாய்ப்பையும் இழக்கின்றன. சீரற்ற அணுகலுடன் விரைவான மற்றும் வசதியான வேலைக்காக, Aerospike, Redis, Couchbase, Memcached போன்ற முக்கிய மதிப்பு சேமிப்பு போன்ற nosql அமைப்புகளின் வகுப்பு உள்ளது. இருப்பினும், இந்த அமைப்புகளில் தொகுதி செயலாக்கம் பொதுவாக மிகவும் சிரமமாக உள்ளது. Hbase என்பது தொகுதி செயலாக்கத்தின் வசதியையும் புதுப்பித்தல் மற்றும் சீரற்ற அணுகல் வசதியையும் இணைக்கும் முயற்சியாகும்.

6.2 தரவு மாதிரி

HBase என்பது ஒரு விநியோகிக்கப்பட்ட, நெடுவரிசை சார்ந்த, பல பதிப்பு விசை மதிப்பு தரவுத்தளமாகும்.

  • தரவு Hbase இல் RowKey எனப்படும் முதன்மை விசையால் அட்டவணைப்படுத்தப்பட்ட அட்டவணைகளாக ஒழுங்கமைக்கப்பட்டுள்ளது.
  • ஒவ்வொரு RowKey விசைக்கும், வரம்பற்ற பண்புக்கூறுகள் (அல்லது நெடுவரிசைகள்) சேமிக்கப்படும்.
  • நெடுவரிசைகள் நிரல் குடும்பம் எனப்படும் நெடுவரிசைகளின் குழுக்களாக ஒழுங்கமைக்கப்பட்டுள்ளன. ஒரு விதியாக, ஒரே மாதிரியான பயன்பாடு மற்றும் சேமிப்பக முறை கொண்ட நெடுவரிசைகள் ஒரு நெடுவரிசை குடும்பமாக இணைக்கப்படுகின்றன.
  • ஒவ்வொரு பண்புக்கும், பல்வேறு பதிப்புகள் சேமிக்கப்படும். வெவ்வேறு பதிப்புகள் வெவ்வேறு நேர முத்திரையைக் கொண்டுள்ளன.

RowKey வரிசைப்படுத்தப்பட்ட வரிசையில் பதிவுகள் உடல் ரீதியாக சேமிக்கப்படுகின்றன. இந்த வழக்கில், வெவ்வேறு நெடுவரிசை குடும்பத்துடன் தொடர்புடைய தரவு தனித்தனியாக சேமிக்கப்படுகிறது, இது தேவைப்பட்டால், விரும்பிய நெடுவரிசை குடும்பத்திலிருந்து மட்டுமே தரவைப் படிக்க அனுமதிக்கிறது.

ஒரு குறிப்பிட்ட பண்பு நீக்கப்பட்டால், அது உடனடியாக உடல் ரீதியாக நீக்கப்படாது, ஆனால் ஒரு சிறப்பு கல்லறைக் கொடியால் மட்டுமே குறிக்கப்படுகிறது. மேஜர் காம்பாக்ஷன் செயல்பாட்டின் போது, ​​தரவுகளின் உடல் நீக்கம் பின்னர் நிகழும்.

ஒரே நெடுவரிசைக் குழுவிற்குச் சொந்தமான மற்றும் அதே விசையுடன் தொடர்புடைய பண்புக்கூறுகள் வரிசைப்படுத்தப்பட்ட பட்டியலாக உடல் ரீதியாக சேமிக்கப்படும். எந்தவொரு பண்புக்கூறும் ஒவ்வொரு விசையிலும் இல்லாமல் இருக்கலாம் அல்லது இருக்கலாம், மேலும் பண்புக்கூறு இல்லாவிட்டால், இது வெற்று மதிப்புகளைச் சேமிப்பதில் மேல்நிலையை ஏற்படுத்தாது.

பட்டியல் மற்றும் நெடுவரிசை குழு பெயர்கள் நிலையானவை மற்றும் தெளிவான அமைப்பைக் கொண்டுள்ளன. நெடுவரிசை குழு மட்டத்தில், டைம் டு லைவ் (TTL) மற்றும் அதிகபட்சமாக சேமிக்கப்பட்ட பதிப்புகள் போன்ற அளவுருக்கள் அமைக்கப்பட்டுள்ளன. ஒரு குறிப்பிட்ட பதிப்பிற்கான நேர முத்திரைக்கும் தற்போதைய நேரத்திற்கும் இடையே உள்ள வேறுபாடு TTL ஐ விட அதிகமாக இருந்தால், உள்ளீடு நீக்குவதற்கு குறிக்கப்படும். ஒரு குறிப்பிட்ட பண்புக்கூறுக்கான பதிப்புகளின் எண்ணிக்கை அதிகபட்ச பதிப்புகளின் எண்ணிக்கையை விட அதிகமாக இருந்தால், பதிவு நீக்குதலுக்காகவும் குறிக்கப்படும்.

Hbase தரவு மாதிரியை ஒரு முக்கிய மதிப்பு பொருத்தமாக நினைவில் கொள்ளலாம்:

<table, RowKey, Column Family, Column, timestamp> -> Value

6.3 ஆதரிக்கப்படும் செயல்பாடுகள்

hbase இல் ஆதரிக்கப்படும் செயல்பாடுகளின் பட்டியல் மிகவும் எளிமையானது. 4 முக்கிய செயல்பாடுகள் ஆதரிக்கப்படுகின்றன:

  • போடு : hbase இல் ஒரு புதிய உள்ளீட்டைச் சேர்க்கவும். இந்த பதிவின் நேர முத்திரையை கையால் அமைக்கலாம், இல்லையெனில் அது தற்போதைய நேரத்திற்கு தானாகவே அமைக்கப்படும்.
  • பெறுக : குறிப்பிட்ட RowKeyக்கான தரவைப் பெறுங்கள். நாங்கள் படிக்க விரும்பும் தரவையும் பதிப்புகளின் எண்ணிக்கையையும் எடுக்கும் நெடுவரிசை குடும்பத்தை நீங்கள் குறிப்பிடலாம்.
  • ஸ்கேன் : பதிவுகளை ஒவ்வொன்றாகப் படிக்கவும். நாங்கள் எந்தப் பதிவிலிருந்து படிக்கத் தொடங்குகிறோம், எந்தப் பதிவு படிக்க வேண்டும், படிக்க வேண்டிய பதிவுகளின் எண்ணிக்கை, படிக்கப்படும் நெடுவரிசை குடும்பம் மற்றும் ஒவ்வொரு பதிவிற்கும் அதிகபட்ச பதிப்புகளின் எண்ணிக்கை ஆகியவற்றை நீங்கள் குறிப்பிடலாம்.
  • நீக்கு : நீக்குவதற்கு ஒரு குறிப்பிட்ட பதிப்பைக் குறிக்கவும். உடல் நீக்கம் இருக்காது, அது அடுத்த பெரிய சுருக்கம் வரை ஒத்திவைக்கப்படும் (கீழே காண்க).

6.4 கட்டிடக்கலை

HBase என்பது விநியோகிக்கப்பட்ட தரவுத்தளமாகும், இது டஜன் கணக்கான அல்லது நூற்றுக்கணக்கான இயற்பியல் சேவையகங்களில் இயங்கக்கூடியது, அவற்றில் சில தோல்வியடைந்தாலும் தடையின்றி செயல்படுவதை உறுதி செய்கிறது. எனவே, கிளாசிக் தொடர்புடைய தரவுத்தளங்களுடன் ஒப்பிடும்போது HBase இன் கட்டமைப்பு மிகவும் சிக்கலானது.

HBase அதன் வேலைக்கு இரண்டு முக்கிய செயல்முறைகளைப் பயன்படுத்துகிறது:

1. பிராந்திய சேவையகம் - ஒன்று அல்லது அதற்கு மேற்பட்ட பகுதிகளுக்கு சேவை செய்கிறது. ஒரு பிராந்தியம் என்பது ஒரு குறிப்பிட்ட வரம்பில் தொடர்ச்சியான RowKeyகளுடன் தொடர்புடைய பதிவுகளின் வரம்பாகும். ஒவ்வொரு பிராந்தியமும் கொண்டுள்ளது:

  • HBase இல் நிலையான சேமிப்பகம் முக்கிய தரவு சேமிப்பகமாகும். தரவு ஒரு சிறப்பு HFile வடிவத்தில் HDFS இல் உடல் ரீதியாக சேமிக்கப்படுகிறது. HFile இல் உள்ள தரவு RowKey வரிசைப்படுத்தப்பட்ட வரிசையில் சேமிக்கப்படுகிறது. ஒரு ஜோடி (பிராந்தியம், நெடுவரிசை குடும்பம்) குறைந்தபட்சம் ஒரு HFIle உடன் ஒத்துள்ளது.
  • MemStore - எழுது தாங்கல். தரவு HFile d இல் வரிசைப்படுத்தப்பட்ட வரிசையில் சேமிக்கப்படுவதால், ஒரு பதிவிற்கு HFileஐப் புதுப்பிப்பது மிகவும் விலை உயர்ந்ததாகும். அதற்கு பதிலாக, எழுதும் போது, ​​தரவு ஒரு சிறப்பு MemStore நினைவக பகுதிக்குள் நுழைகிறது, அங்கு அது சிறிது நேரம் குவிகிறது. MemStore சில முக்கியமான மதிப்பிற்கு நிரப்பப்பட்டால், தரவு புதிய HFile இல் எழுதப்படும்.
  • BlockCache - வாசிப்பதற்கான தற்காலிக சேமிப்பு. அடிக்கடி படிக்கப்படும் தரவின் நேரத்தை கணிசமாக சேமிக்க உங்களை அனுமதிக்கிறது.
  • முன் பதிவு எழுது (WAL) . தரவு மெம்ஸ்டோரில் எழுதப்பட்டிருப்பதால், செயலிழப்பினால் தரவு இழக்கும் அபாயம் உள்ளது. இது நிகழாமல் தடுக்க, கையாளுதல்களின் உண்மையான செயலாக்கத்திற்கு முன் அனைத்து செயல்பாடுகளும் ஒரு சிறப்பு பதிவு கோப்பில் விழும். எந்தவொரு தோல்விக்குப் பிறகும் தரவை மீட்டெடுக்க இது உங்களை அனுமதிக்கிறது.

2. மாஸ்டர் சர்வர் - HBase கிளஸ்டரில் உள்ள முக்கிய சர்வர். பிராந்திய சேவையகங்களுக்கிடையில் பிராந்தியங்களின் விநியோகத்தை மாஸ்டர் நிர்வகிக்கிறது, பிராந்தியங்களின் பதிவேட்டைப் பராமரிக்கிறது, வழக்கமான பணிகளைத் தொடங்குவதை நிர்வகிக்கிறது மற்றும் பிற பயனுள்ள வேலைகளைச் செய்கிறது.

சேவைகளுக்கு இடையேயான செயல்களை ஒருங்கிணைக்க, HBase ஆனது Apache ZooKeeper ஐப் பயன்படுத்துகிறது, இது உள்ளமைவுகளை நிர்வகிக்கவும் சேவைகளை ஒத்திசைக்கவும் வடிவமைக்கப்பட்ட ஒரு சிறப்புச் சேவையாகும்.

பிராந்தியத்தில் உள்ள தரவுகளின் அளவு அதிகரித்து, அது ஒரு குறிப்பிட்ட அளவை அடையும் போது, ​​Hbase பிரிக்கத் தொடங்குகிறது, இது பிராந்தியத்தை 2 ஆல் பிரிக்கிறது. பிராந்தியங்களின் நிலையான பிரிவுகளைத் தவிர்க்க, நீங்கள் பிராந்தியங்களின் எல்லைகளை முன்கூட்டியே அமைத்து அவற்றின் அதிகபட்சத்தை அதிகரிக்கலாம். அளவு.

ஒரு பிராந்தியத்திற்கான தரவை பல HFiles இல் சேமிக்க முடியும் என்பதால், Hbase அவ்வப்போது அவற்றை ஒன்றாக இணைத்து வேலையை விரைவுபடுத்துகிறது. இந்த செயல்பாடு Hbase இல் சுருக்கம் என்று அழைக்கப்படுகிறது. சுருக்கங்கள் இரண்டு வகைகளாகும்:

  • சிறிய சுருக்கம் . தானாகவே தொடங்குகிறது, பின்னணியில் இயங்கும். மற்ற Hbase செயல்பாடுகளுடன் ஒப்பிடும்போது குறைந்த முன்னுரிமையைக் கொண்டுள்ளது.
  • முக்கிய சுருக்கம் . இது கையால் அல்லது சில தூண்டுதல்கள் ஏற்பட்டால் (உதாரணமாக, டைமர் மூலம்) தொடங்கப்படுகிறது. இது அதிக முன்னுரிமையைக் கொண்டுள்ளது மற்றும் கிளஸ்டரை கணிசமாக மெதுவாக்கும். கிளஸ்டரில் சுமை சிறியதாக இருக்கும் நேரத்தில் மேஜர் காம்பாக்ஷன்கள் சிறப்பாக செய்யப்படுகின்றன. மேஜர் காம்பாக்ஷன் முன்பு கல்லறையால் குறிக்கப்பட்ட தரவையும் உடல் ரீதியாக நீக்குகிறது.

6.5 HBase உடன் வேலை செய்வதற்கான வழிகள்

HBase ஷெல்

Hbase உடன் தொடங்குவதற்கான எளிதான வழி hbase ஷெல் பயன்பாட்டைப் பயன்படுத்துவதாகும். எந்த hbase கிளஸ்டர் முனையிலும் hbase ஐ நிறுவிய உடனேயே இது கிடைக்கும்.

Hbase ஷெல் என்பது அனைத்து அடிப்படை Hbase செயல்பாடுகளுக்கும் உள்ளமைக்கப்பட்ட ஆதரவுடன் ஒரு jruby கன்சோல் ஆகும். பின்வருபவை இரண்டு நெடுவரிசை குடும்பங்களுடன் ஒரு பயனர் அட்டவணையை உருவாக்கி, அதில் சில கையாளுதல்களைச் செய்து, அட்டவணையை இறுதியில் hbase ஷெல்லில் விடுவதற்கு ஒரு எடுத்துக்காட்டு:

create 'users', {NAME => 'user_profile', VERSIONS => 5}, {NAME => 'user_posts', VERSIONS => 1231231231} 
put 'users', 'id1', 'user_profile:name', 'alexander' 
put 'users', 'id1', 'user_profile:second_name', 'alexander' 
get 'users', 'id1' 
put 'users', 'id1', 'user_profile:second_name', 'kuznetsov' 
get 'users', 'id1' 
get 'users', 'id1', {COLUMN => 'user_profile:second_name', VERSIONS => 5} 
put 'users', 'id2', 'user_profile:name', 'vasiliy' 
put 'users', 'id2', 'user_profile:second_name', 'ivanov' 
scan 'users', {COLUMN => 'user_profile:second_name', VERSIONS => 5} 
delete 'users', 'id1', 'user_profile:second_name' 
get 'users', 'id1' 
disable 'users' 
drop 'users'

நேட்டிவ் ஏபிஐ

மற்ற ஹடூப் தொடர்பான திட்டங்களைப் போலவே, hbase ஜாவாவில் செயல்படுத்தப்படுகிறது, எனவே நேட்டிவ் ஏபிஐ ஜாவாவில் கிடைக்கிறது. நேட்டிவ் ஏபிஐ அதிகாரப்பூர்வ இணையதளத்தில் நன்கு ஆவணப்படுத்தப்பட்டுள்ளது. அங்கிருந்து எடுக்கப்பட்ட Hbase API ஐப் பயன்படுத்துவதற்கான எடுத்துக்காட்டு இங்கே:

import java.io.IOException;

import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;

public class MyLittleHBaseClient {
  public static void main(String[] args) throws IOException {
	Configuration config = HBaseConfiguration.create();
	Connection connection = ConnectionFactory.createConnection(config);
	try {
  	Table table = connection.getTable(TableName.valueOf("myLittleHBaseTable"));
  	try {
    	Put p = new Put(Bytes.toBytes("myLittleRow"));
    	p.add(Bytes.toBytes("myLittleFamily"), Bytes.toBytes("someQualifier"),
    	Bytes.toBytes("Some Value"));
    	table.put(p);

    	Get g = new Get(Bytes.toBytes("myLittleRow"));
    	Result r = table.get(g);
    	byte [] value = r.getValue(Bytes.toBytes("myLittleFamily"),
      	Bytes.toBytes("someQualifier"));

    	String valueStr = Bytes.toString(value);
    	System.out.println("GET: " + valueStr);

    	Scan s = new Scan();
    	s.addColumn(Bytes.toBytes("myLittleFamily"), Bytes.toBytes("someQualifier"));
    	ResultScanner scanner = table.getScanner(s);
    	try {
       	for (Result rr = scanner.next(); rr != null; rr = scanner.next()) {
         	System.out.println("Found row: " + rr);
       	}
     	} finally {
       	scanner.close();
     	}
   	} finally {
     	if (table != null) table.close();
   	}
 	} finally {
   	connection.close();
 	}
  }
}

சிக்கனம், ஓய்வு மற்றும் பிற நிரலாக்க மொழிகளுக்கான ஆதரவு

பிற நிரலாக்க மொழிகளில் இருந்து வேலை செய்ய, Hbase சிக்கன API மற்றும் Rest API ஐ வழங்குகிறது. அவற்றின் அடிப்படையில், அனைத்து முக்கிய நிரலாக்க மொழிகளுக்கும் கிளையன்ட்கள் உருவாக்கப்படுகின்றன: பைதான், PHP, ஜாவா ஸ்கிரிப்ட் போன்றவை.

6.6 HBase உடன் பணிபுரியும் சில அம்சங்கள்

  1. Hbase பெட்டியின் வெளியே MapReduce உடன் ஒருங்கிணைக்கிறது, மேலும் சிறப்பு TableInputFormat மற்றும் TableOutputFormat ஐப் பயன்படுத்தி உள்ளீடு மற்றும் வெளியீட்டாகப் பயன்படுத்தலாம்.

  2. சரியான RowKey ஐத் தேர்ந்தெடுப்பது மிகவும் முக்கியம். RowKey பிராந்தியங்கள் முழுவதும் நல்ல சீரான விநியோகத்தை வழங்க வேண்டும், இல்லையெனில் "சூடான பகுதிகள்" என்று அழைக்கப்படுவதற்கான ஆபத்து உள்ளது - மற்றவற்றை விட அதிகமாகப் பயன்படுத்தப்படும் பகுதிகள், இது கணினி வளங்களின் திறமையற்ற பயன்பாட்டிற்கு வழிவகுக்கிறது.

  3. தரவு தனித்தனியாகப் பதிவேற்றப்படாமல், உடனடியாக பெரிய தொகுதிகளாக இருந்தால், Hbase ஒரு சிறப்பு பல்க்லோட் பொறிமுறையை ஆதரிக்கிறது, இது ஒற்றை புட்டுகளைப் பயன்படுத்துவதை விட மிக வேகமாக தரவைப் பதிவேற்ற அனுமதிக்கிறது. பல்க்லோட் அடிப்படையில் இரண்டு-படி செயல்பாடு:

    • சிறப்பு MapReduce வேலையைப் பயன்படுத்தி புட்டுகளின் பங்கேற்பு இல்லாமல் HFile உருவாக்கம்
    • இந்த கோப்புகளை நேரடியாக Hbase இல் செருகுகிறது
  4. Hbase அதன் அளவீடுகளை Ganglia கண்காணிப்பு சேவையகத்திற்கு வெளியிடுவதை ஆதரிக்கிறது. Hbase சிக்கல்களின் அடிப்பகுதியைப் பெற Hbase ஐ நிர்வகிக்கும் போது இது மிகவும் உதவியாக இருக்கும்.

வரிசை விசை

RowKey என்பது பயனர் ஐடி ஆகும், இது GUUID ஆகும், இது உலகம் முழுவதும் தனித்துவமாக இருக்கும் வகையில் சிறப்பாக உருவாக்கப்பட்ட ஒரு சரம். GUUIDகள் சமமாக விநியோகிக்கப்படுகின்றன, இது சர்வர்கள் முழுவதும் தரவின் நல்ல விநியோகத்தை அளிக்கிறது.

நெடுவரிசை குடும்பம்

எங்கள் சேமிப்பகம் இரண்டு நெடுவரிசை குடும்பங்களைப் பயன்படுத்துகிறது:

  • தகவல்கள். ஒரு பயனர் குறிப்பிட்ட URLகளைப் பார்வையிட்டது போன்ற விளம்பர நோக்கங்களுக்காக இனி பொருந்தாத தரவை இந்த நெடுவரிசைகளின் குழு சேமிக்கிறது. இந்த நெடுவரிசை குடும்பத்திற்கான TTL 2 மாதங்களுக்கு அமைக்கப்பட்டுள்ளது, பதிப்புகளின் எண்ணிக்கையின் வரம்பு 2000 ஆகும்.
  • நீண்ட தரவு. இந்த நெடுவரிசைகளின் குழு பாலினம், பிறந்த தேதி மற்றும் பிற "நித்திய" பயனர் பண்புகள் போன்ற காலப்போக்கில் அதன் பொருத்தத்தை இழக்காத தரவைச் சேமிக்கிறது.

பேச்சாளர்கள்

ஒவ்வொரு வகையான பயனர் உண்மைகளும் தனித்தனி நெடுவரிசையில் சேமிக்கப்படும். எடுத்துக்காட்டாக, Data:_v நெடுவரிசை பயனர் பார்வையிட்ட URLகளை சேமிக்கிறது, மேலும் LongData: gender நெடுவரிசை பயனரின் பாலினத்தைச் சேமிக்கிறது.

இந்த உண்மையின் நேர முத்திரை நேர முத்திரையாக சேமிக்கப்படுகிறது. எடுத்துக்காட்டாக, தரவு:_v நெடுவரிசையில், நேர முத்திரை என்பது பயனர் குறிப்பிட்ட URL ஐப் பார்வையிட்ட நேரமாகும்.

இந்த பயனர் தரவு சேமிப்பக அமைப்பு எங்கள் பயன்பாட்டு முறையுடன் மிகவும் பொருந்துகிறது மற்றும் பயனர் தரவை விரைவாகப் புதுப்பிக்கவும், பயனர்களைப் பற்றிய தேவையான அனைத்து தகவல்களையும் விரைவாகப் பெறவும், MapReduce ஐப் பயன்படுத்தி, அனைத்து பயனர்களைப் பற்றிய தரவையும் ஒரே நேரத்தில் செயலாக்கவும் உங்களை அனுமதிக்கிறது.

6.7 மாற்றுகள்

HBase நிர்வகிப்பதற்கும் பயன்படுத்துவதற்கும் மிகவும் சிக்கலானது, எனவே HBase ஐப் பயன்படுத்துவதற்கு முன்பு மாற்று வழிகளைப் பார்ப்பது அர்த்தமுள்ளதாக இருக்கிறது:

  • தொடர்புடைய தரவுத்தளங்கள் . ஒரு நல்ல மாற்று, குறிப்பாக தரவு ஒரு கணினியில் பொருந்தும் போது. மேலும், முதன்மையானது அல்லாத பிற குறியீடுகளின் பரிவர்த்தனைகள் முக்கியமானதாக இருக்கும் போது, ​​முதலில், தொடர்புடைய தரவுத்தளங்களைப் பற்றி நீங்கள் சிந்திக்க வேண்டும்.

  • முக்கிய மதிப்பு சேமிப்பு . ரெடிஸ் மற்றும் ஏரோஸ்பைக் போன்ற சேமிப்பகங்கள் தாமதம் தேவைப்படும்போது மிகவும் பொருத்தமானவை மற்றும் தொகுதி செயலாக்கம் குறைவாக இருக்கும்.

  • MapReduce உடன் கோப்புகள் மற்றும் அவற்றின் செயலாக்கம் . தரவு மட்டுமே சேர்க்கப்பட்டு, அரிதாகவே புதுப்பிக்கப்பட்டால்/மாற்றப்பட்டால், HBaseஐப் பயன்படுத்தாமல் இருப்பது நல்லது, ஆனால் தரவை கோப்புகளில் சேமிக்கவும். கோப்புகளுடன் வேலையை எளிதாக்க, ஹைவ், பிக் மற்றும் இம்பாலா போன்ற கருவிகளைப் பயன்படுத்தலாம்.

HBase இன் பயன்பாடு எப்போது நியாயப்படுத்தப்படுகிறது:

  • நிறைய தரவு உள்ளது, மேலும் அவை ஒரு கணினி / சேவையகத்தில் பொருந்தாது
  • தரவு அடிக்கடி புதுப்பிக்கப்பட்டு நீக்கப்படும்
  • தரவுகளில் ஒரு வெளிப்படையான "விசை" உள்ளது, மற்ற அனைத்தையும் பிணைக்க வசதியாக உள்ளது
  • தொகுதி செயலாக்கம் தேவை
  • குறிப்பிட்ட விசைகள் மூலம் தரவை சீரற்ற அணுகல் தேவை