பெரிய தரவு தீர்வுகளுக்கு அளவிடக்கூடிய மற்றும் திறமையான ஹைவ் பயன்படுத்தி தரவை எவ்வாறு திறம்பட செயலாக்குவது என்பதை அறியவும். இந்த வழிகாட்டி அமைப்பு முதல் மேம்பட்ட மேம்படுத்தல் வரை அனைத்தையும் உள்ளடக்கியது.
ஹைவ் தயாரிப்பு செயலாக்கத்தை உருவாக்குதல்: தரவு சார்ந்த தீர்வுகளுக்கான விரிவான வழிகாட்டி
இன்றைய தரவு சார்ந்த உலகில், பாரிய தரவுத்தொகுப்புகளை திறம்பட செயலாக்கி பகுப்பாய்வு செய்யும் திறன் அனைத்து அளவிலான நிறுவனங்களுக்கும் மிக முக்கியமானது. அப்பாச்சி ஹடூப்பின் மேல் கட்டப்பட்ட தரவு கிடங்கு அமைப்பான ஹைவ், பெரிய தரவு செயலாக்கத்திற்கு சக்திவாய்ந்த மற்றும் அளவிடக்கூடிய தீர்வை வழங்குகிறது. இந்த விரிவான வழிகாட்டி, ஆரம்ப அமைப்பு முதல் மேம்பட்ட மேம்படுத்தல் நுட்பங்கள் வரை, பயனுள்ள ஹைவ் தயாரிப்பு செயலாக்கத்தை உருவாக்குவதன் முக்கிய அம்சங்கள் மூலம் உங்களுக்கு வழிகாட்டும். இது பல்வேறு பின்னணிகள் மற்றும் மாறுபட்ட நிபுணத்துவ நிலைகளை அங்கீகரித்து, உலகளாவிய பார்வையாளர்களுக்காக வடிவமைக்கப்பட்டுள்ளது.
ஹைவ் மற்றும் பெரிய தரவில் அதன் பங்கு
அப்பாச்சி ஹைவ் ஹடூப்பில் சேமிக்கப்பட்டுள்ள பெரிய தரவுத்தொகுப்புகளை வினவுதல் மற்றும் பகுப்பாய்வு செய்வதை எளிதாக்கும் வகையில் வடிவமைக்கப்பட்டுள்ளது. இது SQL ஐப் போன்ற HiveQL என்ற மொழியைப் பயன்படுத்தி தரவை வினவ பயனர்களை அனுமதிக்கிறது, இது SQL உடன் பழக்கமான நபர்கள் பெரிய தரவுடன் வேலை செய்வதை எளிதாக்குகிறது. ஹைவ் வினவல்களை MapReduce வேலைகளாக மாற்றுகிறது, அவற்றை ஒரு ஹடூப் கிளஸ்டரில் இயக்குகிறது. இந்த கட்டமைப்பு அளவிடுதல் மற்றும் தவறு சகிப்புத்தன்மையை செயல்படுத்துகிறது, இது பெட்டாபைட்களின் தரவைக் கையாளுவதற்கு ஏற்றதாக அமைகிறது.
ஹைவ்வின் முக்கிய அம்சங்கள்:
- SQL-ஐப் போன்ற வினவல் மொழி (HiveQL): தரவு வினவலை எளிதாக்குகிறது.
- அளவிடுதல்: ஹடூப்பின் விநியோகிக்கப்பட்ட செயலாக்க திறன்களை மேம்படுத்துகிறது.
- தரவு சேமிப்பு: கட்டமைக்கப்பட்ட தரவு சேமிப்பு மற்றும் பகுப்பாய்விற்காக வடிவமைக்கப்பட்டுள்ளது.
- ஸ்கீமா-ஆன்-ரீட்: ஸ்கீமா வரையறையில் நெகிழ்வுத்தன்மையை அனுமதிக்கிறது.
- விரிவாக்கம்: தனிப்பயன் செயல்பாடுகள் மற்றும் தரவு வடிவங்களை ஆதரிக்கிறது.
ஹைவ் ஹடூப்பின் சிக்கல்களுக்கும் SQL இன் பழக்கத்திற்கும் இடையே உள்ள இடைவெளியை நிரப்புகிறது, இது பெரிய தரவை பரந்த அளவிலான பயனர்களுக்கு அணுகக்கூடியதாக ஆக்குகிறது. இது ETL (Extract, Transform, Load) செயல்முறைகள், தரவு சேமிப்பு மற்றும் விளம்பர-ஹாக் வினவல் பகுப்பாய்வு ஆகியவற்றில் சிறந்து விளங்குகிறது.
உங்கள் ஹைவ் சூழலை அமைத்தல்
ஹைவ் மூலம் தரவைப் செயலாக்கத் தொடங்குவதற்கு முன், உங்கள் சூழலை நீங்கள் அமைக்க வேண்டும். இது வழக்கமாக ஹடூப் மற்றும் ஹைவ் நிறுவுதல், அவற்றை உள்ளமைத்தல் மற்றும் அவை தொடர்பு கொள்ள முடியும் என்பதை உறுதிப்படுத்துகிறது. சரியான படிகள் உங்கள் இயக்க முறைமை, ஹடூப் விநியோகம் மற்றும் கிளவுட் வழங்குநர் (பொருந்தினால்) ஆகியவற்றைப் பொறுத்து மாறுபடும். உலகளாவிய பயன்பாட்டிற்கான பின்வரும் வழிகாட்டுதல்களைக் கவனியுங்கள்.
1. முன்னிபந்தனைகள்
செயல்படும் ஹடூப் கிளஸ்டர் உங்களிடம் இருப்பதை உறுதிப்படுத்தவும். இது பொதுவாக ஜாவா மற்றும் SSH உட்பட ஹடூப்பை நிறுவுதல் மற்றும் உள்ளமைப்பதை உள்ளடக்கியது. உங்களுக்கு லினக்ஸ் (எ.கா., உபுண்டு, சென்டோஸ்), macOS அல்லது விண்டோஸ் போன்ற பொருத்தமான இயக்க முறைமையும் தேவைப்படும். அமேசான் EMR, Google Cloud Dataproc மற்றும் Azure HDInsight போன்ற கிளவுட் அடிப்படையிலான விருப்பங்கள் இந்த செயல்முறையை எளிதாக்கலாம்.
2. நிறுவல் மற்றும் உள்ளமைவு
அப்பாச்சி இணையதளத்தில் இருந்து அல்லது உங்கள் ஹடூப் விநியோகத்தின் தொகுப்பு மேலாளரிடமிருந்து ஹைவ் விநியோகத்தைப் பதிவிறக்கவும். உங்கள் ஹடூப் கிளஸ்டருக்குள் ஒரு பிரத்யேக இயந்திரம் அல்லது நோடில் ஹைவ் நிறுவவும். `hive-site.xml` கோப்பை மாற்றுவதன் மூலம் ஹைவ் உள்ளமைக்கவும். முக்கிய உள்ளமைவுகள் பின்வருமாறு:
- `hive.metastore.uris`: ஹைவ் மெட்டாஸ்டோரின் URI ஐக் குறிப்பிடுகிறது (பொதுவாக MySQL அல்லது PostgreSQL போன்ற தரவுத்தளம்).
- `hive.metastore.warehouse.dir`: ஹைவ் கிடங்கு கோப்பகத்தின் இருப்பிடத்தை வரையறுக்கிறது (உங்கள் தரவு எங்கு சேமிக்கப்படுகிறது).
- `hive.exec.scratchdir`: தற்காலிக கோப்புகளுக்கான ஸ்கிராட்ச் கோப்பகத்தைக் குறிப்பிடுகிறது.
உதாரணம் (எளிமைப்படுத்தப்பட்டது):
<property>
<name>hive.metastore.uris</name>
<value>thrift://<metastore_host>:9083</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
3. மெட்டாஸ்டோர் அமைப்பு
ஹைவ் மெட்டாஸ்டோர் உங்கள் அட்டவணைகள், பகிர்வுகள் மற்றும் பிற தரவு கட்டமைப்புகள் பற்றிய மெட்டாடேட்டாவை சேமிக்கிறது. உங்கள் மெட்டாஸ்டோராக செயல்பட ஒரு தரவுத்தளத்தை நீங்கள் தேர்வு செய்ய வேண்டும் (எ.கா., MySQL, PostgreSQL அல்லது Derby). நீங்கள் MySQL ஐத் தேர்வுசெய்தால், அதை பொருத்தமான பயனர் சலுகைகளுடன் அமைக்கவும். `hive-site.xml` பண்புகளைப் பயன்படுத்தி மெட்டாஸ்டோர் தரவுத்தளத்தை சுட்டிக்காட்ட ஹைவ் உள்ளமைக்கவும்.
4. ஹைவ் தொடங்குதல்
ஹைவ் மெட்டாஸ்டோர் சேவையைத் தொடங்கவும், அதைத் தொடர்ந்து ஹைவ் கட்டளை-வரி இடைமுகம் (CLI) அல்லது பீலைன் கிளையண்ட் (மேலும் மேம்பட்ட CLI). Tableau, Power BI மற்றும் பிற பகுப்பாய்வு தளங்கள் போன்ற கருவிகளிலிருந்து JDBC/ODBC இணைப்பை இயக்குவதற்கு HiveServer2 ஐயும் பயன்படுத்தலாம்.
உதாரணமாக, ஹைவ் CLI ஐ தொடங்க:
hive
தரவு ஏற்றுதல் மற்றும் ஸ்கீமா வரையறை
உங்கள் ஹைவ் சூழல் அமைக்கப்பட்டவுடன், அடுத்த கட்டம் உங்கள் தரவை ஏற்றுவது மற்றும் ஸ்கீமாவை வரையறுப்பது. ஹைவ் பல்வேறு தரவு வடிவங்களை ஆதரிக்கிறது மற்றும் உங்கள் தரவு கட்டமைப்புகளை வரையறுப்பதற்கான நெகிழ்வான விருப்பங்களை வழங்குகிறது. இடம் பொறுத்து மாறுபடும் CSV கோப்புகள் போன்ற சர்வதேச தரவு வடிவங்களைக் கவனியுங்கள்.
1. ஹைவ் ஆதரிக்கும் தரவு வடிவங்கள்
ஹைவ் பல தரவு வடிவங்களை ஆதரிக்கிறது, அவற்றுள்:
- உரை கோப்புகள்: (CSV, TSV, எளிய உரை) - பொதுவாகப் பயன்படுத்தப்படும் மற்றும் நிர்வகிக்க எளிதானது.
- வரிசை கோப்புகள்: ஹடூப்பின் பைனரி வடிவம், தரவு சேமிப்பு மற்றும் மீட்டெடுப்பிற்காக மேம்படுத்தப்பட்டது.
- ORC (மேம்படுத்தப்பட்ட வரிசை நெடுவரிசை): அதிக அளவில் மேம்படுத்தப்பட்ட, நெடுவரிசை சார்ந்த சேமிப்பு வடிவம், இது சிறந்த செயல்திறன் மற்றும் தரவு சுருக்கத்தை வழங்குகிறது.
- Parquet: மற்றொரு நெடுவரிசை சார்ந்த வடிவம், பெரும்பாலும் தரவு சேமிப்பு மற்றும் பகுப்பாய்விற்குப் பயன்படுத்தப்படுகிறது.
- JSON: அரை கட்டமைக்கப்பட்ட தரவைச் சேமிக்க.
உங்கள் தரவு அமைப்பு, செயல்திறன் தேவைகள் மற்றும் சேமிப்பு தேவைகளின் அடிப்படையில் வடிவத்தைத் தேர்ந்தெடுக்கவும். ORC மற்றும் Parquet ஆகியவை அவற்றின் செயல்திறனுக்காக பெரும்பாலும் விரும்பப்படுகின்றன.
2. அட்டவணைகளை உருவாக்குதல் மற்றும் ஸ்கீமாக்களை வரையறுத்தல்
உங்கள் தரவின் கட்டமைப்பை வரையறுக்க `CREATE TABLE` அறிக்கையைப் பயன்படுத்தவும். இது நெடுவரிசை பெயர்கள், தரவு வகைகள் மற்றும் டெலிமிட்டர்களைக் குறிப்பிடுவதை உள்ளடக்குகிறது. பொதுவான தொடரியல்:
CREATE TABLE <table_name> (
<column_name> <data_type>,
...
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;
உதாரணம்:
CREATE TABLE employees (
employee_id INT,
first_name STRING,
last_name STRING,
department STRING,
salary DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
இந்த எடுத்துக்காட்டில், பல்வேறு நெடுவரிசைகள் மற்றும் அவற்றின் தரவு வகைகளுடன் `employees` என்ற அட்டவணையை உருவாக்குகிறோம். `ROW FORMAT DELIMITED` மற்றும் `FIELDS TERMINATED BY ','` உட்பிரிவுகள் உரை கோப்புகளுக்குள் தரவு எவ்வாறு வடிவமைக்கப்படுகிறது என்பதைக் குறிப்பிடுகின்றன. உங்கள் தரவு மூலத்தின் இருப்பிடத்தைப் பொறுத்து வெவ்வேறு டெலிமிட்டர்களைப் பயன்படுத்துவதைக் கவனியுங்கள்.
3. ஹைவ் அட்டவணைகளில் தரவை ஏற்றுதல்
உங்கள் ஹைவ் அட்டவணைகளில் தரவை ஏற்ற `LOAD DATA` அறிக்கையைப் பயன்படுத்தவும். உள்ளூர் கோப்புகள் அல்லது HDFS இலிருந்து தரவை ஏற்றலாம். பொதுவான தொடரியல்:
LOAD DATA LOCAL INPATH '<local_file_path>' INTO TABLE <table_name>;
அல்லது HDFS இலிருந்து ஏற்ற:
LOAD DATA INPATH '<hdfs_file_path>' INTO TABLE <table_name>;
உதாரணம்:
LOAD DATA LOCAL INPATH '/path/to/employees.csv' INTO TABLE employees;
இந்த கட்டளை `employees.csv` கோப்பிலிருந்து தரவை `employees` அட்டவணையில் ஏற்றுகிறது. CSV கோப்பின் வடிவம் அட்டவணையின் ஸ்கீமாவுடன் ஒத்துப்போக வேண்டும் என்பதை உறுதிப்படுத்த வேண்டும்.
4. உங்கள் அட்டவணைகளைப் பிரித்தல்
பகிர்வு ஒன்று அல்லது அதற்கு மேற்பட்ட நெடுவரிசைகளின் அடிப்படையில் (எ.கா., தேதி, பிராந்தியம்) அட்டவணையை சிறிய பகுதிகளாகப் பிரிப்பதன் மூலம் வினவல் செயல்திறனை மேம்படுத்துகிறது. இது வினவல் செய்யும் போது தொடர்புடைய தரவை மட்டும் படிக்க ஹைவ் அனுமதிக்கிறது. நேரம் அல்லது இடம் மூலம் கட்டமைக்கப்பட்ட தரவுத்தொகுப்புகளுக்கு பகிர்வு முக்கியமானது.
பிரிவு செய்யப்பட்ட அட்டவணையை உருவாக்க, `CREATE TABLE` அறிக்கையில் `PARTITIONED BY` உட்பிரிவைப் பயன்படுத்தவும்.
CREATE TABLE sales (
transaction_id INT,
product_id INT,
quantity INT,
sale_date STRING
)
PARTITIONED BY (year INT, month INT)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';
ஒரு பிரிவு செய்யப்பட்ட அட்டவணையில் தரவை ஏற்றும்போது, பகிர்வு மதிப்புகளை நீங்கள் குறிப்பிட வேண்டும்:
LOAD DATA LOCAL INPATH '/path/to/sales_2023_10.csv' INTO TABLE sales PARTITION (year=2023, month=10);
பயனுள்ள ஹைவ் வினவல்களை எழுதுதல் (HiveQL)
ஹைவிற்கான SQL-ஐப் போன்ற மொழியான HiveQL, உங்கள் தரவை வினவவும் பகுப்பாய்வு செய்யவும் உங்களை அனுமதிக்கிறது. உங்கள் தரவுத்தொகுப்புகளிலிருந்து மதிப்புமிக்க நுண்ணறிவுகளைப் பிரித்தெடுக்க HiveQL ஐ தேர்ச்சி பெறுவது முக்கியம். ஒவ்வொரு நெடுவரிசைக்கும் பயன்படுத்தப்படும் தரவு வகைகளை எப்போதும் நினைவில் கொள்ளுங்கள்.
1. அடிப்படை SELECT அறிக்கைகள்
அட்டவணைகளிலிருந்து தரவைப் பெற `SELECT` அறிக்கையைப் பயன்படுத்தவும். பொதுவான தொடரியல்:
SELECT <column_name(s)> FROM <table_name> WHERE <condition(s)>;
உதாரணம்:
SELECT employee_id, first_name, last_name
FROM employees
WHERE department = 'Sales';
2. WHERE உட்பிரிவுடன் தரவை வடிகட்டுதல்
`WHERE` உட்பிரிவு குறிப்பிட்ட நிபந்தனைகளின் அடிப்படையில் தரவை வடிகட்டுகிறது. ஒப்பீட்டு ஆபரேட்டர்கள் (எ.கா., =, !=, <, >) மற்றும் தர்க்கரீதியான ஆபரேட்டர்கள் (எ.கா., AND, OR, NOT) ஆகியவற்றைப் பயன்படுத்தி உங்கள் வடிகட்டி அளவுகோல்களை உருவாக்கவும். பூஜ்ஜிய மதிப்புகளின் தாக்கங்களையும் அவை முடிவுகளை எவ்வாறு பாதிக்கலாம் என்பதையும் கவனியுங்கள்.
உதாரணம்:
SELECT * FROM sales WHERE sale_date > '2023-01-01' AND quantity > 10;
3. GROUP BY மற்றும் HAVING உடன் தரவை ஒருங்கிணைத்தல்
`GROUP BY` உட்பிரிவு ஒன்று அல்லது அதற்கு மேற்பட்ட நெடுவரிசைகளில் ஒரே மாதிரியான மதிப்புகளைக் கொண்ட வரிசைகளை சுருக்கமான வரிசையில் குழுவாக்குகிறது. `HAVING` உட்பிரிவு ஒரு நிபந்தனையின் அடிப்படையில் குழுவாக்கப்பட்ட தரவை வடிகட்டுகிறது. `COUNT`, `SUM`, `AVG`, `MIN` மற்றும் `MAX` போன்ற ஒருங்கிணைப்பு செயல்பாடுகள் `GROUP BY` உடன் இணைந்து பயன்படுத்தப்படுகின்றன.
உதாரணம்:
SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department
HAVING employee_count > 5;
4. அட்டவணைகளை இணைத்தல்
பொதுவான நெடுவரிசையின் அடிப்படையில் பல அட்டவணைகளிலிருந்து தரவை இணைக்க `JOIN` உட்பிரிவுகளைப் பயன்படுத்தவும். ஹைவ் `INNER JOIN`, `LEFT OUTER JOIN`, `RIGHT OUTER JOIN` மற்றும் `FULL OUTER JOIN` உள்ளிட்ட பல்வேறு இணைப்பு வகைகளை ஆதரிக்கிறது. செயல்திறனில் இணைப்பு வரிசையின் தாக்கத்தை கவனத்தில் கொள்ளுங்கள்.
உதாரணம்:
SELECT e.first_name, e.last_name, d.department_name
FROM employees e
JOIN departments d ON e.department = d.department_id;
5. உள்ளமைந்த செயல்பாடுகளைப் பயன்படுத்துதல்
சரம் செயல்பாடுகள், தேதி செயல்பாடுகள் மற்றும் கணித செயல்பாடுகள் உள்ளிட்ட தரவு கையாளுதலுக்கான உள்ளமைந்த செயல்பாடுகளின் பணக்கார தொகுப்பை ஹைவ் வழங்குகிறது. இந்த செயல்பாடுகள் எவ்வாறு வேலை செய்கின்றன என்பதையும் ஏதேனும் மாற்றங்கள் தேவைப்படலாம் என்பதையும் பார்க்க இந்த செயல்பாடுகளுடன் பரிசோதனை செய்யுங்கள்.
உதாரணம் (சரம் செயல்பாடு):
SELECT UPPER(first_name), LOWER(last_name) FROM employees;
உதாரணம் (தேதி செயல்பாடு):
SELECT sale_date, YEAR(sale_date), MONTH(sale_date) FROM sales;
செயல்திறனுக்கான ஹைவ் வினவல்களை மேம்படுத்துதல்
உங்கள் தரவுத்தொகுப்புகள் வளரும்போது, வினவல் செயல்திறன் முக்கியமானது. பல நுட்பங்கள் உங்கள் ஹைவ் வினவல்களின் திறனை கணிசமாக மேம்படுத்த முடியும். இந்த நுட்பங்களின் செயல்திறன் உங்கள் தரவு, கிளஸ்டர் கட்டமைப்பு மற்றும் உங்கள் வினவல்களின் சிக்கலைப் பொறுத்தது. எந்த மேம்படுத்தலையும் செயல்படுத்துவதற்கு முன்னும் பின்னும் எப்போதும் அளவிடவும், அது மதிப்பு வழங்குகிறதா என்பதை உறுதிப்படுத்தவும்.
1. வினவல் மேம்படுத்தும் நுட்பங்கள்
- பகிர்வு: முன்பு குறிப்பிட்டபடி, தொடர்புடைய நெடுவரிசைகளின் அடிப்படையில் (எ.கா., தேதி, பிராந்தியம்) உங்கள் அட்டவணைகளைப் பிரிப்பது ஒரு வினவலின் போது ஸ்கேன் செய்யப்பட்ட தரவின் அளவைக் குறைக்கிறது.
- பக்கெட்டிங்: பக்கெட்டிங் ஒரு பகிர்வுக்குள் தரவை சிறிய, அதிக நிர்வகிக்கக்கூடிய அலகுகளாகப் பிரிக்கிறது. இது வினவல் செயல்திறனை மேம்படுத்தலாம், குறிப்பாக இணைப்புகளை உள்ளடக்கிய வினவல்களுக்கு.
- குறியீட்டு: வினவல்களை விரைவுபடுத்த சில நெடுவரிசைகளில் குறியீட்டை ஹைவ் ஆதரிக்கிறது. இருப்பினும், குறியீட்டு மேலெழுத்து அனைத்து சூழ்நிலைகளுக்கும் நன்மைகளை விட அதிகமாக இருக்கலாம்.
- திசையன்மயமாக்கல்: CPU பயன்பாட்டைக் குறைத்து செயல்திறனை மேம்படுத்தும் நேரத்தில் ஹைவ் வரிசைகளின் தொகுப்புகளைச் செயலாக்க உதவுகிறது. இது புதிய பதிப்புகளில் இயல்பாகவே இயக்கப்படுகிறது.
- வினவல் திட்டம் பகுப்பாய்வு: ஹைவ் உங்கள் வினவலை எவ்வாறு செயலாக்குகிறது மற்றும் சாத்தியமான தடைகளை அடையாளம் காண `EXPLAIN` கட்டளையைப் பயன்படுத்தி வினவல் திட்டத்தை பகுப்பாய்வு செய்யுங்கள்.
2. தரவு வடிவம் மற்றும் சேமிப்பு மேம்பாடு
- சரியான சேமிப்பு வடிவத்தைத் தேர்ந்தெடுப்பது: ORC மற்றும் Parquet ஆகியவை அதிக திறன் கொண்ட நெடுவரிசை சார்ந்த சேமிப்பு வடிவங்களாகும், அவை உரை கோப்புகளை விட குறிப்பிடத்தக்க செயல்திறன் நன்மைகளை வழங்குகின்றன.
- தரவு சுருக்கம்: சேமிப்பு இடத்தைக் குறைக்க மற்றும் வினவல் செயல்திறனை மேம்படுத்த Snappy, Gzip அல்லது LZO போன்ற தரவு சுருக்க கோடெக்குகளைப் பயன்படுத்தவும்.
- தரவு அளவை நிர்வகித்தல்: உங்கள் கிளஸ்டர் திறம்பட நிர்வகிக்கக்கூடிய தரவு அளவுகளை நீங்கள் கையாளுகிறீர்கள் என்பதை உறுதிப்படுத்தவும். பெரிய தரவுத்தொகுப்புகளுக்கு தரவு பகிர்வு உதவக்கூடும்.
3. மேம்படுத்துவதற்கான கட்டமைப்பு அமைப்புகள்
வினவல் இயக்கத்தை மேம்படுத்த ஹைவ் கட்டமைப்பு அமைப்புகளை மாற்றவும். சில முக்கியமான அமைப்புகள் பின்வருமாறு:
- `hive.exec.parallel`: வரைபடம் மற்றும் குறைப்பு பணிகளின் இணையான இயக்கத்தை செயல்படுத்துகிறது.
- `hive.mapjoin.smalltable.filesize`: வரைபட இணைப்புகளில் பயன்படுத்தக்கூடிய அட்டவணைகளின் அதிகபட்ச அளவைக் கட்டுப்படுத்துகிறது (நினைவகத்தில் பெரிய அட்டவணைகளுடன் சிறிய அட்டவணைகளை இணைத்தல்).
- `hive.optimize.skewjoin`: சாய்ந்த தரவை உள்ளடக்கிய இணைப்புகளை மேம்படுத்துகிறது (சில விசைகள் மற்றவர்களை விட அடிக்கடி தோன்றும் தரவு).
- `hive.compute.query.using.stats`: சிறந்த வினவல் இயக்கத் திட்டங்களை உருவாக்க அட்டவணை புள்ளிவிவரங்களைப் பயன்படுத்துகிறது.
உதாரணம் (இணையான இயக்கத்தை உள்ளமைத்தல்):
SET hive.exec.parallel=true;
4. செலவு அடிப்படையிலான மேம்படுத்தல் (CBO)
CBO என்பது ஒரு மேம்பட்ட மேம்படுத்தும் நுட்பமாகும், இது அதிக திறன் கொண்ட வினவல் இயக்கத் திட்டங்களை உருவாக்க அட்டவணை புள்ளிவிவரங்களைப் பயன்படுத்துகிறது. இது தரவு விநியோகம், அட்டவணை அளவுகள் மற்றும் ஒரு வினவலை இயக்குவதற்கான சிறந்த வழியை தீர்மானிக்க பிற காரணிகளை பகுப்பாய்வு செய்கிறது. அமைப்பதன் மூலம் CBO ஐ இயக்கவும்:
SET hive.cbo.enable=true;
CBO க்குத் தேவையான தகவல்களை வழங்க அட்டவணை புள்ளிவிவரங்களைச் சேகரிக்கவும். பின்வரும் கட்டளையைப் பயன்படுத்தி இதைச் செய்யலாம்:
ANALYZE TABLE <table_name> COMPUTE STATISTICS;
மேலும் விரிவான நெடுவரிசை புள்ளிவிவரங்களுக்கு `ANALYZE TABLE <table_name> COMPUTE STATISTICS FOR COLUMNS <column_name1>,<column_name2>;` இயக்குவதைக் கவனியுங்கள்.
மேம்பட்ட ஹைவ் நுட்பங்கள்
அடிப்படையை நீங்கள் தேர்ச்சி பெற்றதும், சிக்கலான தரவு செயலாக்க காட்சிகளைக் கையாள மேம்பட்ட ஹைவ் நுட்பங்களை நீங்கள் ஆராயலாம்.
1. பயனர் வரையறுக்கப்பட்ட செயல்பாடுகள் (UDF கள்)
ஜாவாவில் தனிப்பயன் செயல்பாடுகளை எழுதுவதன் மூலம் ஹைவ்வின் செயல்பாட்டை நீட்டிக்க UDF கள் உங்களை அனுமதிக்கின்றன. சிக்கலான தரவு மாற்றங்களைச் செய்வதற்கு அல்லது வெளிப்புற அமைப்புகளுடன் ஹைவ் ஒருங்கிணைப்பதற்கு இது பயனுள்ளதாக இருக்கும். UDF களை உருவாக்குவதற்கு ஜாவா நிரலாக்க அறிவு தேவைப்படுகிறது மற்றும் அதிக குறிப்பிட்ட பணிகளில் தரவு செயலாக்கத்தை பெரிதும் மேம்படுத்த முடியும்.
ஒரு UDF ஐ உருவாக்கிப் பயன்படுத்துவதற்கான படிகள்:
- `org.apache.hadoop.hive.ql.udf.UDF` வகுப்பை நீட்டித்து, UDF ஐ ஜாவாவில் எழுதுங்கள்.
- ஜாவா குறியீட்டை ஒரு JAR கோப்பில் தொகுக்கவும்.
- `ADD JAR` கட்டளையைப் பயன்படுத்தி ஹைவ்வின் கிளாஸ்பாத்துக்கு JAR கோப்பைச் சேர்க்கவும்.
- செயல்பாட்டு பெயர், ஜாவா வகுப்பு பெயர் மற்றும் JAR கோப்பு பாதை ஆகியவற்றை குறிப்பிடுவதன் மூலம் `CREATE FUNCTION` கட்டளையைப் பயன்படுத்தி ஹைவ்வில் UDF ஐ உருவாக்கவும்.
- உங்கள் ஹைவ் வினவல்களில் UDF ஐப் பயன்படுத்தவும்.
உதாரணம் (எளிய UDF): ஒரு சரத்தை பெரிய எழுத்தாக மாற்றும் இந்த UDF ஐக் கவனியுங்கள்.
// Java UDF
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
public class Capitalize extends UDF {
public Text evaluate(Text str) {
if (str == null) {
return null;
}
return new Text(str.toString().toUpperCase());
}
}
இதை ஒரு JAR ஆகத் தொகுக்கவும் (எ.கா., `Capitalize.jar`) பின்னர் பின்வரும் ஹைவ் கட்டளைகளைப் பயன்படுத்தவும்.
ADD JAR /path/to/Capitalize.jar;
CREATE FUNCTION capitalize AS 'Capitalize' USING JAR '/path/to/Capitalize.jar';
SELECT capitalize(first_name) FROM employees;
2. பயனர் வரையறுக்கப்பட்ட ஒருங்கிணைப்பு செயல்பாடுகள் (UDAF கள்)
UDAF கள் பல வரிசைகளில் ஒருங்கிணைப்புகளைச் செய்கின்றன. UDF களைப் போலவே, நீங்கள் UDAF களை ஜாவாவில் எழுதுகிறீர்கள். அவை ஒரு உள்ளீட்டுத் தரவை ஏற்கும் `evaluate()` முறையையும், தொடர்ச்சியான ஒருங்கிணைப்பு செயல்முறைக்கான `iterate()`, `merge()` மற்றும் `terminatePartial()` முறையையும் வரையறுப்பதன் மூலம் செயல்படுகின்றன.
3. பயனர் வரையறுக்கப்பட்ட அட்டவணை-உருவாக்கும் செயல்பாடுகள் (UDTF கள்)
UDTF கள் ஒரு உள்ளீட்டு வரியிலிருந்து பல வரிசைகளையும் நெடுவரிசைகளையும் உருவாக்குகின்றன. அவை UDF கள் மற்றும் UDAF களை விட சிக்கலானவை, ஆனால் தரவு மாற்றத்திற்கு சக்திவாய்ந்தவை.
4. டைனமிக் பகிர்வு
டைனமிக் பகிர்வு என்பது தரவு மதிப்புகளின் அடிப்படையில் பகிர்வுகளை தானாக உருவாக்க ஹைவ் அனுமதிக்கிறது. இது பகிர்வு செய்யப்பட்ட அட்டவணைகளில் தரவை ஏற்றும் செயல்முறையை எளிதாக்குகிறது. `hive.exec.dynamic.partition=true` மற்றும் `hive.exec.dynamic.partition.mode=nonstrict` அமைப்பதன் மூலம் டைனமிக் பகிர்வை இயக்குகிறீர்கள்.
உதாரணம் (டைனமிக் பகிர்வு):
SET hive.exec.dynamic.partition=true;
SET hive.exec.dynamic.partition.mode=nonstrict;
INSERT INTO TABLE sales_partitioned
PARTITION (year, month)
SELECT transaction_id, product_id, quantity, sale_date, year(sale_date), month(sale_date)
FROM sales_staging;
5. சிக்கலான தரவு வகைகள்
ஹைவ் வரிசைகள், வரைபடங்கள் மற்றும் கட்டமைப்புகள் போன்ற சிக்கலான தரவு வகைகளை ஆதரிக்கிறது, இது ஹைவ்வுக்குள் நேரடியாக அதிக சிக்கலான தரவு கட்டமைப்புகளைக் கையாள உங்களை அனுமதிக்கிறது. தரவு ஏற்றும் போது இதுபோன்ற வகைகளை முன்கூட்டியே செயலாக்க வேண்டிய தேவையை இது நீக்குகிறது.
உதாரணம் (அமைப்புகளைப் பயன்படுத்துதல்):
CREATE TABLE contacts (
id INT,
name STRING,
address STRUCT<street:STRING, city:STRING, state:STRING, zip:INT>
);
ஹைவ் தயாரிப்பு செயலாக்கத்திற்கான சிறந்த நடைமுறைகள்
திறமையான மற்றும் பராமரிக்கக்கூடிய ஹைவ் தயாரிப்பு செயலாக்கத்தை உறுதிப்படுத்த இந்த சிறந்த நடைமுறைகளைப் பின்பற்றவும்.
1. தரவு ஆளுகை மற்றும் தரம்
- தரவு சரிபார்ப்பு: தரவு தரத்தை உறுதிப்படுத்த தரவு ஏற்றும் மற்றும் செயலாக்கத்தின் போது தரவு சரிபார்ப்பு சோதனைகளை செயல்படுத்தவும்.
- தரவு பரம்பரை: உங்கள் தரவின் தோற்றம் மற்றும் மாற்றங்களைப் புரிந்து கொள்ள தரவு பரம்பரையை கண்காணிக்கவும். அப்பாச்சி அட்லஸ் போன்ற கருவிகள் உதவக்கூடும்.
- தரவு பட்டியல்: உங்கள் தரவு, ஸ்கீமாக்கள் மற்றும் தரவு வரையறைகளை ஆவணப்படுத்த ஒரு தரவு பட்டியலைப் பராமரிக்கவும்.
2. வினவல் வடிவமைப்பு மற்றும் மேம்பாடு
- உங்கள் தரவைப் புரிந்து கொள்ளுங்கள்: வினவல்களை எழுதுவதற்கு முன் உங்கள் தரவை முழுமையாகப் புரிந்து கொள்ளுங்கள்.
- வினவல்களை மேம்படுத்தவும்: எப்போதும் உங்கள் வினவல்களை சோதித்து, `EXPLAIN` கட்டளையைப் பயன்படுத்தி செயல்திறன் தடைகளை அடையாளம் காணவும்.
- பகிர்வு மற்றும் பக்கெட்டிங் பயன்படுத்தவும்: வினவல் செயல்திறனை மேம்படுத்த பகிர்வு மற்றும் பக்கெட்டிங் உத்திகளை செயல்படுத்தவும்.
- முழு அட்டவணை ஸ்கேன்களைத் தவிர்க்கவும்: ஸ்கேன் செய்யப்பட்ட தரவின் அளவைக் கட்டுப்படுத்த `WHERE` உட்பிரிவுகள் மற்றும் பகிர்வுகளைப் பயன்படுத்தவும்.
- இணைப்புகளை திறம்படப் பயன்படுத்தவும்: இணைப்புகளின் வரிசை மற்றும் சம்பந்தப்பட்ட அட்டவணைகளின் அளவைக் கவனியுங்கள். முடிந்தால் `MAPJOIN` ஐப் பயன்படுத்தவும் மற்றும் அட்டவணைகள் சிறியதாக இருந்தால்.
- தரவு சாய்வுக்காக மேம்படுத்தவும்: உப்பு சேர்த்தல் அல்லது சாய்வு இணைப்புகள் போன்ற நுட்பங்களைப் பயன்படுத்தி தரவு சாய்வைக் கையாளவும் (சில விசைகள் மற்றவர்களை விட அடிக்கடி தோன்றும்).
3. வள மேலாண்மை
- கிளஸ்டர் வளங்களைக் கண்காணிக்கவும்: தடைகளை அடையாளம் காண உங்கள் ஹடூப் கிளஸ்டரின் வள பயன்பாட்டை (CPU, நினைவகம், வட்டு I/O) கண்காணிக்கவும்.
- வள ஒதுக்கீட்டை சரிசெய்யவும்: பணிச்சுமையின் அடிப்படையில் ஹைவ்வின் வள ஒதுக்கீட்டு அமைப்புகளை உள்ளமைக்கவும் (எ.கா., நினைவகம், CPU கோர்கள்).
- ஒரே நேரத்தில் நடப்பதை நிர்வகிக்கவும்: கிளஸ்டரை ஓவர்லோட் செய்வதைத் தடுக்க ஒரே நேரத்தில் வினவல்களின் எண்ணிக்கையை கட்டுப்படுத்தவும்.
- வரிசைப்படுத்தும் அமைப்புகள்: வள ஒதுக்கீட்டை நிர்வகிக்க YARN போன்ற வள மேலாண்மை அமைப்புகளைப் பயன்படுத்தவும்.
4. ஆவணமாக்கல் மற்றும் பதிப்பு கட்டுப்பாடு
- உங்கள் தரவு மற்றும் வினவல்களை ஆவணப்படுத்தவும்: தெளிவு மற்றும் பராமரிப்பை உறுதிப்படுத்த உங்கள் தரவு ஸ்கீமாக்கள், வினவல்கள் மற்றும் ETL செயல்முறைகளை ஆவணப்படுத்தவும்.
- பதிப்பு கட்டுப்பாட்டைப் பயன்படுத்தவும்: மாற்றங்களைக் கண்காணிக்கவும் மற்றும் ஒத்துழைப்பை எளிதாக்கவும் உங்கள் ஹைவ் ஸ்கிரிப்டுகள் மற்றும் உள்ளமைவுகளை ஒரு பதிப்பு கட்டுப்பாட்டு அமைப்பில் (எ.கா., Git) சேமிக்கவும்.
- சோதனை மூலோபாயத்தை செயல்படுத்தவும்: உங்கள் ஹைவ் வினவல்கள் எதிர்பார்த்தபடி செயல்படுவதை உறுதிப்படுத்த ஒரு சோதனை மூலோபாயத்தை உருவாக்கவும்.
கிளவுட் அடிப்படையிலான ஹைவ் தீர்வுகள்
பல கிளவுட் வழங்குநர்கள் நிர்வகிக்கப்படும் ஹைவ் சேவைகளை வழங்குகிறார்கள், இது வரிசைப்படுத்தல், மேலாண்மை மற்றும் அளவிடுதலை எளிதாக்குகிறது. இதில் அடங்கும்:
- அமேசான் EMR (Elastic MapReduce): AWS இல் ஒரு நிர்வகிக்கப்படும் ஹடூப் மற்றும் ஸ்பார்க் சேவை.
- Google Cloud Dataproc: Google Cloud Platform இல் முழுமையாக நிர்வகிக்கப்படும் மற்றும் அளவிடக்கூடிய ஸ்பார்க் மற்றும் ஹடூப் சேவை.
- Azure HDInsight: Microsoft Azure இல் ஒரு நிர்வகிக்கப்படும் ஹடூப் சேவை.
இந்த கிளவுட் சேவைகள் அடிப்படை கட்டமைப்பை நிர்வகிக்க வேண்டிய தேவையை நீக்குகின்றன, செயல்பாட்டு மேலெழுத்தைக் குறைத்து, தரவு பகுப்பாய்வில் கவனம் செலுத்த உங்களை அனுமதிக்கின்றன. அவை பெரும்பாலும் செலவு குறைந்த அளவிடுதல் மற்றும் கண்காணிப்பு மற்றும் நிர்வாகத்திற்கான ஒருங்கிணைந்த கருவிகளை வழங்குகின்றன.
பொதுவான சிக்கல்களை சரிசெய்தல்
பொதுவான ஹைவ் தொடர்பான சிக்கல்கள் மற்றும் அவற்றின் தீர்வுகள் இங்கே:
- வினவல் செயல்திறன் சிக்கல்கள்:
- தீர்வு: வினவல் திட்டத்தை பகுப்பாய்வு செய்ய `EXPLAIN` கட்டளையைப் பயன்படுத்தவும். அட்டவணை ஸ்கீமாக்களை மேம்படுத்தவும், பகிர்வு பயன்படுத்தவும், இணைப்புகளை மேம்படுத்தவும் மற்றும் ஹைவ் மேம்படுத்தும் அமைப்புகளை உள்ளமைக்கவும். வினவல் திட்டத்தை மதிப்பாய்வு செய்யுங்கள். புள்ளிவிவரங்களை சரிபார்க்கவும்.
- மெட்டாஸ்டோர் இணைப்பு சிக்கல்கள்:
- தீர்வு: மெட்டாஸ்டோர் சேவையகம் இயங்குகிறது மற்றும் அணுகக்கூடியது என்பதை சரிபார்க்கவும். சரியான மெட்டாஸ்டோர் URI க்கான உங்கள் `hive-site.xml` உள்ளமைவைச் சரிபார்க்கவும். மெட்டாஸ்டோர் சேவையகத்திற்கு தேவையான சலுகைகள் இருப்பதை உறுதிப்படுத்தவும். மெட்டாஸ்டோர் சேவையகத்திற்கான நெட்வொர்க் இணைப்பைச் சரிபார்க்கவும்.
- நினைவகம் இல்லாத பிழைகள்:
- தீர்வு: HiveServer2 அல்லது ஹைவ் CLI க்கான ஜாவா ஹீப் அளவை (`-Xmx`) அதிகரிக்கவும். ஹடூப் மற்றும் ஹைவ்வில் நினைவக அமைப்புகளை டியூன் செய்யவும் (எ.கா., `mapreduce.map.memory.mb`, `mapreduce.reduce.memory.mb`). நினைவகத்தை திறம்பட நிர்வகிக்க YARN வள ஒதுக்கீட்டை உள்ளமைக்கவும்.
- கோப்பு காணப்படவில்லை பிழைகள்:
- தீர்வு: உங்கள் `LOAD DATA` அல்லது வினவல் அறிக்கையில் உள்ள கோப்பு பாதை சரியானது என்பதை சரிபார்க்கவும். HDFS அல்லது உங்கள் உள்ளூர் கோப்பு முறைமையில் கோப்பு உள்ளதா என்பதை உறுதிப்படுத்தவும் (நீங்கள் தரவை எவ்வாறு ஏற்றுகிறீர்கள் என்பதைப் பொறுத்து). கோப்பை அணுகுவதற்கான அனுமதிகளை சரிபார்க்கவும்.
- பகிர்வு பிழைகள்:
- தீர்வு: உங்கள் பகிர்வு நெடுவரிசைகளின் தரவு வகைகள் மற்றும் வடிவத்தை சரிபார்க்கவும். `CREATE TABLE` மற்றும் `LOAD DATA` அறிக்கைகளில் பகிர்வு நெடுவரிசைகள் சரியாகக் குறிப்பிடப்பட்டுள்ளதா என்பதை சரிபார்க்கவும்.
முடிவுரை
பயனுள்ள ஹைவ் தயாரிப்பு செயலாக்கத்தை உருவாக்குவது ஹைவ்வின் கட்டமைப்பு, தரவு சேமிப்பு வடிவங்கள், வினவல் மேம்படுத்தும் நுட்பங்கள் மற்றும் சிறந்த நடைமுறைகள் பற்றிய ஆழமான புரிதலை உள்ளடக்கியது. இந்த விரிவான வழிகாட்டியில் உள்ள வழிகாட்டுதல்களைப் பின்பற்றுவதன் மூலம், பெரிய தரவுத்தொகுப்புகளைக் கையாளக்கூடிய வலுவான மற்றும் அளவிடக்கூடிய தரவு செயலாக்க தீர்வை நீங்கள் உருவாக்கலாம். ஆரம்ப அமைப்பு முதல் மேம்பட்ட மேம்பாடு மற்றும் சரிசெய்தல் வரை, உலகளாவிய நிலப்பரப்பில் தரவு சார்ந்த நுண்ணறிவுகளுக்கான ஹைவ்வின் சக்தியைப் பயன்படுத்த தேவையான அறிவு மற்றும் திறன்களை இந்த வழிகாட்டி உங்களுக்கு வழங்குகிறது. தொடர்ச்சியான கற்றல் மற்றும் பரிசோதனை உங்கள் தரவிலிருந்து அதிகபட்ச மதிப்பை பிரித்தெடுக்க மேலும் அதிகாரம் அளிக்கும்.