آموزش Hive

آموزش Hive – درباره View و Indexها

در این بخش نحوه ی ایجاد و مدیریت viewها را توضیح میدیم. Viewها بر اساس نیازهای کاربر ایجاد میشن. میتوانید نتیجه ی هر مجموعه داده ای را بصورت view ذخیره کنین. کاربردِ view در Hive مشابه کاربرد view در SQL و یک مفهوم استانداردِ RDBMS است. میتوانید در view تمام عملیات هایِ DML را اجرا کنین.

ایجاد view

می توانید هنگام اجرای عبارتِ SELECT، یک view ایجاد کنین. شکل دستوری آن بصورت زیرِه:

CREATE VIEW [IF NOT EXISTS] view_name [(column_name [COMMENT column_comment], ...) ]
[COMMENT table_comment]
AS SELECT ...

مثال

در ادامه مثالی از view آورده ایم. جدول employee را بصورت زیر با فیلدهای Id, Name, Salary, Designation و Dept در نظر بگیرین. برای بازیابی اطلاعات کارمندی که salary آن بیش تر از Rs 30000 است، کوئری زیر را اجرا کنین. نتیجه ی این کوئری را در viewای با نامِ emp_30000 ذخیره میکنیم.

+------+--------------+-------------+-------------------+--------+
| ID   | Name         | Salary      | Designation       | Dept   |
+------+--------------+-------------+-------------------+--------+
|1201  | Gopal        | 45000       | Technical manager | TP     |
|1202  | Manisha      | 45000       | Proofreader       | PR     |
|1203  | Masthanvali  | 40000       | Technical writer  | TP     |
|1204  | Krian        | 40000       | Hr Admin          | HR     |
|1205  | Kranthi      | 30000       | Op Admin          | Admin  |
+------+--------------+-------------+-------------------+--------+

کوئری زیر اطلاعات یک کارمند را با استفاده از سناریویِ بالا بازیابی می کنه:

hive> CREATE VIEW emp_30000 AS
SELECT * FROM employee
WHERE salary>30000;

حذفِ View

برای حذف view از دستور زیر استفاده کنین:

DROP VIEW view_name

کوئری زیر، viewای به نامِ emp_30000 را حذف میکنه:

hive> DROP VIEW emp_30000;

ایجادِ Index

Index، اشاره گری در ستون خاصی از جدولِه. ایجادِ index به معنی ایجاد یک اشاره گر در ستون خاصی از جدولِه. شکل دستوری آن بصورت زیرِه:

CREATE INDEX index_name
ON TABLE base_table_name (col_name, ...)
AS 'index.handler.class.name'
[WITH DEFERRED REBUILD]
[IDXPROPERTIES (property_name=property_value, ...)]
[IN TABLE index_table_name]
[PARTITIONED BY (col_name, ...)]
[
   [ ROW FORMAT ...] STORED AS ...
   | STORED BY ...
]
[LOCATION hdfs_path]
[TBLPROPERTIES (...)]

مثال

در ادامه مثالی از index آورده شده. از همان جدولِ employee که با فیلدهایِ Id, Name, Salary, Designation و Dept که پیش تر استفاده کردیم، استفاده کنین. در جدولِ employee برای ستونِ salary، indexای به نامِ index_salary ایجاد کنین.

کوئری زیر یک index ایجاد می کنه:

hive> CREATE INDEX inedx_salary ON TABLE employee(salary)
AS 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler';

index بالا یک اشاره گر به ستونِ salary ایجاد می کنه. اگه این ستون تغییر کنه، تغییرات با استفاده از مقدارِ index ذخیره میشه.

حذفِ Index

دستور زیر برای حذف index استفاده میشه:

DROP INDEX <index_name> ON <table_name>

کوئری زیر indexای به نامِ index_salary را حذف میکنه:

hive> DROP INDEX index_salary ON employee;
در صورتی که سوال و یا نظری دارید، از بخش نظرات با ما در میان بگذارید.

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

شما چه نظر و یا سوالی درباره این نوشته دارید؟

مبحث آموزشی

آموزش Hive

Learn Hive

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

کلیک کنید و سوالات خود را از ما بپرسید
لطفا فرم سوال را پر کنید

سوال شما با موفقیت ثبت شد. برای اینکه بتوانیم به شما اطلاع رسانی کنیم، موارد زیر را وارد کنید:

لطفا چند لحظه منتظر بمانید ...