hive
डेटाबेस और टेबल स्टेटमेंट बनाएं
खोज…
वाक्य - विन्यास
[TEMPORARY] [EXTERNAL] TABLE [अगर नहीं है तो] [db_name।] Table_name
[(col_name data_type [COMMENT col_comment], ...]] [COMMENT table_comment] [PART BYIONED BY (col_name data_type [COMMENT col_comment], ...)]] [CLUSTERED BY (col_name, col_name, ...) [SORTED BY ( col_name [ASC | DESC], ...)] INT_ num_buckets BUCKETS] [SK BYED (col_name, col_name, ...) - (नोट: हाइव में उपलब्ध 0.10.0 और बाद में) ON ((col_value, col_value) ...), (col_value, col_value, ...), ...) [दिशाओं के रूप में] [[ROW FORMAT row_format] [STORED AS file_format] | STORED BY 'storage.handler.class.name' [SERDEPROPERTIES (...)] के साथ [] LOCATION hdfs_path] [TBLPROPERTIES (property_name = property_value, ...)]
[AS select_statement];बनाएँ [मंदिर] [बाहरी] टेबल [अगर नहीं है] [db_name।] Table_name मौजूदा_table_or_view_name [स्थान hdfs_path] पसंद है;
data_type: primitive_type, array_type, map_type, struct_type, Union_type
primitive_type: TINYINT, SMALLINT, INT, BIGINT, BOOLEAN, FLOAT, DOUBLE, STRING, BINARY, TIMESTAMP, DECIMAL, DECIMAL (परिशुद्धता, स्केल, DATE, VARCHAR, CHAR
array_type: ARRAY <data_type>
map_type: MAP <primitive_type, data_type>
struct_type: STRUCT <col_name: data_type [COMMENT col_comment], ...>
Union_type: UNIONTYPE <data_type, data_type, ...>
row_format: DELIMITED [चार वर्णों द्वारा निर्धारित [चार चार्ट द्वारा चयनित]] [चार्ली द्वारा स्नातक की उपाधि प्राप्त की गई पुस्तकें] [एमएएपी चार्ट्स चार्ट द्वारा संक्षिप्त] [चार वर्णों से संक्षिप्त] [पूरी तरह से चार वर्ण के रूप में]
, SERDE_file_format:: SEQUENCEFILE, TEXTFILE, RCFILE, ORC, PARQUET, AVRO, INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_clatname
क्रिएट (DATABASE | SCHEMA) [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [DBPROPERTIES के साथ (property_name = property_value, ...)];
टिप्पणियों
जब हाइव में टेबल और डेटाबेस के साथ काम कर रहे हों। नीचे दिए गए बिंदु उपयोगी हो सकते हैं।
- हम डेटाबेस का
use database;
कर डेटाबेस को स्विच कर सकते हैंuse database;
आदेश - वर्तमान कार्यशील डेटाबेस को जानने के लिए हम
SELECT current_database()
का उपयोग कर सकते हैं - तालिका विवरण बनाने के लिए उपयोग किए जाने वाले DDL को देखने के लिए हम
SHOW CREATE TABLE tablename
उपयोग कर सकते हैं - तालिका के सभी स्तंभों को देखने के लिए
DESCRIBE tablename
टैबलेन का उपयोग करें जैसे कि विस्तारित सर्ड का उपयोग किया गया विवरण दिखाने के लिए और अन्यDESCRIBE FORMATTED tablename
टैबलेन के रूप में अग्रेषित करें। DESCRIBE को DESC के रूप में समाप्त किया जा सकता है।
तालिका बनाएं
विभाजन के साथ एक प्रबंधित तालिका बनाना और एक अनुक्रम फ़ाइल के रूप में संग्रहीत। फ़ाइलों में डेटा प्रारूप को Ctrl-A (^A)
द्वारा फ़ील्ड-सीमांकित और नई-पंक्ति द्वारा पंक्ति-सीमांकित माना जाता है। नीचे दी गई तालिका हाइव गोदाम डायरेक्टरी में बनाई गई है जो हाइव hive.metastore.warehouse.dir
फ़ाइल hive-site.xml
hive.metastore.warehouse.dir
में कुंजी hive.metastore.warehouse.dir
लिए मूल्य में निर्दिष्ट है।
CREATE TABLE view
(time INT,
id BIGINT,
url STRING,
referrer_url STRING,
add STRING COMMENT 'IP of the User')
COMMENT 'This is view table'
PARTITIONED BY(date STRING, region STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\001'
STORED AS SEQUENCEFILE;
विभाजन के साथ एक बाहरी तालिका बनाना और एक अनुक्रम फ़ाइल के रूप में संग्रहीत। फ़ाइलों में डेटा प्रारूप को ctrl-A
द्वारा फ़ील्ड-सीमांकित और न्यूलाइन द्वारा पंक्ति-सीमांकित माना जाता है। नीचे दी गई तालिका निर्दिष्ट स्थान पर बनाई गई है और जब हमारे पास पहले से ही डेटा है तो यह काम आता है। बाहरी तालिका का उपयोग करने का एक फायदा यह है कि हम डेटा को हटाए बिना तालिका को गिरा सकते हैं। उदाहरण के लिए, यदि हम एक तालिका बनाते हैं और महसूस करते हैं कि स्कीमा गलत है, तो हम डेटा के बारे में चिंता किए बिना तालिका को सुरक्षित रूप से छोड़ सकते हैं और नए स्कीमा के साथ पुन: निर्माण कर सकते हैं। अन्य लाभ यह है कि यदि हम एक ही फाइल पर सुअर जैसे अन्य उपकरणों का उपयोग कर रहे हैं, तालिका हटाने के बाद भी हम उनका उपयोग जारी रख सकते हैं।
CREATE EXTERNAL TABLE view
(time INT,
id BIGINT,
url STRING,
referrer_url STRING,
add STRING COMMENT 'IP of the User')
COMMENT 'This is view table'
PARTITIONED BY(date STRING, region STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\001'
STORED AS SEQUENCEFILE
LOCATION '<hdfs_location>';
क्वेरी से चुनिंदा क्वेरी और पॉप्युलेटिंग परिणामों का उपयोग करके एक तालिका बनाना, इन कथनों को CTAS (Create Table As Select) के रूप में जाना जाता है।
CTAS में दो भाग होते हैं, SELECT भाग HiveQL द्वारा समर्थित कोई भी सेलेक्ट स्टेटमेंट हो सकता है। CTAS का सृजन भाग परिणामी स्कीमा को SELECT भाग से लेता है और अन्य तालिका गुणों जैसे कि SerDe और संग्रहण प्रारूप के साथ लक्ष्य तालिका बनाता है।
CTAS के पास ये प्रतिबंध हैं:
- लक्ष्य तालिका विभाजन तालिका नहीं हो सकती।
- लक्ष्य तालिका बाहरी तालिका नहीं हो सकती।
- लक्ष्य तालिका एक सूची बाल्टी तालिका नहीं हो सकती।
CREATE TABLE new_key_value_store
ROW FORMAT SERDE "org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe"
STORED AS RCFile
AS
SELECT * FROM page_view
SORT BY url, add;
तालिका बनाएं:
CREATE TABLE का LIKE रूप आपको मौजूदा तालिका परिभाषा की प्रतिलिपि बनाने की अनुमति देता है (इसके डेटा को कॉपी किए बिना)। CTAS के विपरीत, नीचे दिया गया बयान एक नई तालिका बनाता है जिसकी परिभाषा तालिका के नाम के अलावा अन्य सभी विवरणों में मौजूदा तालिका से बिल्कुल मेल खाती है। नई तालिका में कोई पंक्तियाँ नहीं हैं।
CREATE TABLE empty_page_views
LIKE page_views;
डेटाबेस बनाएँ
किसी विशेष स्थान में डेटाबेस बनाना। यदि हम डेटाबेस के लिए गोदाम निर्देशिका में बनाए गए किसी भी स्थान को निर्दिष्ट नहीं करते हैं।
CREATE DATABASE IF NOT EXISTS db_name
COMMENT 'TEST DATABASE'
LOCATION /PATH/HDFS/DATABASE/;
छत्ता ACID तालिका निर्माण।
ACID टेबल हाइव 0.14 संस्करण के बाद से समर्थित हैं। नीचे दी गई तालिका UPDATE / DELETE / INSERT का समर्थन करती है
नीचे विन्यास परिवर्तन hive-site.xml में आवश्यक है।
hive.support.concurrency = true
hive.enforce.bucketing = true
hive.exec.dynamic.partition.mode = nonstrict
hive.txn.manager =org.apache.hadoop.hive.ql.lockmgr.DbTxnManager
hive.compactor.initiator.on = true
hive.compactor.worker.threads = 1
वर्तमान में केवल orc फ़ाइल प्रारूप समर्थित है।
टेबल स्टेटमेंट बनाएं।
create table Sample_Table(
col1 Int,
col2 String,
col3 String)
clustered by (col3) into 3 buckets
stored as orc
TBLPROPERTIES ('transactional'='true');
HIVE_HBASE एकीकरण
Hive-Hbase एकीकरण नीचे दिए गए संस्करणों से समर्थित है। छत्ता: 0.11.0 HBase: 0.94.2 Hadoop: 0.20.2
CREATE TABLE hbase_hive
(id string,
col1 string,
col2 string,
col3 int)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES
("hbase.columns.mapping" = ":key,cf1:col1,cf1:col2,cf1:col3")
TBLPROPERTIES ("hbase.table.name" = "hive_hbase");
नोट: 1 कॉलम प्रमुख कॉलम होना चाहिए।
मौजूदा तालिका गुणों का उपयोग करके तालिका बनाएं।
CREATE TABLE new_table_name LIKE existing_table_name;