hadoop-common-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Hadoop Wiki] Update of "HRDF/HQL" by udanax
Date Wed, 19 Mar 2008 13:55:37 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Hadoop Wiki" for change notification.

The following page has been changed by udanax:

New page:
= HQL =
==  Table of Contents ==

{{{ }}}1. [#QueryGrammars Query Grammars] [[BR]]
{{{    }}}1.1 [#DAL Database administration language] [[BR]]
{{{    }}}1.2 [#DDL Data definition language] [[BR]]
{{{    }}}1.3 [#DML Data manipulation language] [[BR]]
{{{ }}}2. [#Example Example Of HQL Uses] [[BR]]
{{{    }}}2.1 [#Create Create the table in a Hbase] [[BR]]
{{{    }}}2.2 [#Select Select data from a table] [[BR]]
{{{    }}}2.3 [#Insert Insert data into a table] [[BR]]
{{{    }}}2.4 [#Delete Delete data in a table] [[BR]]
{{{    }}}2.5 [#Jar How to use external jars in Hbase Shell] [[BR]]

== Query Grammars ==
'''Note''' that attribute values are quoted with either single or double quotes.
=== Database administration language ===
||<bgcolor="#ececec">'''Syntax''' ||<bgcolor="#ececec">'''Explanation''' ||
||Help ||<99%>'''Help''' provides information about the use of shell script.[[BR]][[BR]]~-''HELP
[function_name];''-~ ||
||Show ||<99%>'''Show''' lists tables.[[BR]][[BR]]~-''SHOW tables;''-~ ||
||Describe ||'''Describe''' provides information about the columnfamilies in a table.[[BR]][[BR]]~-''DESC
table_name;''-~ ||
||FS ||<99%>'''Filesystem''' commands.[[BR]][[BR]]~-''FS [-option] arguments...;''-~
||JAR ||<99%>'''JAR''' syntax to run hadoop jar commands.[[BR]][[BR]]~-''JAR jarFile
[mainClass] args...;''-~||
||Clear ||<99%>'''Clear''' the screen.[[BR]][[BR]]~-''CLEAR;''-~ ||
||Exit ||<99%>'''Exit''' from the current shell script.[[BR]][[BR]]~-''EXIT;''-~ ||

=== Data definition language ===
Data definition langague to define data tables

||<bgcolor="#ececec">'''Syntax''' ||<bgcolor="#ececec">'''Explanation''' ||
||Create ||<99%>'''Create''' a new table.[[BR]][[BR]]~-''CREATE TABLE table_name ([[BR]]{{{
   }}}column_family_definition[[BR]]{{{    }}}[, column_family_spec][[BR]]{{{    }}}...[[BR]])[[BR]][[BR]]''-~'''colum_family_definition:'''~-''[[BR]]column_family_name[[BR]]{{{
 }}}[MAX_VERSIONS=n][[BR]]{{{    }}}[MAX_LENGTH=n][[BR]]{{{    }}}[COMPRESSION=NONE|BLOCK|RECORD][[BR]]{{{
||Alter ||<99%>'''Alter''' syntax changes the structure of the specified table.[[BR]][[BR]]~-''ALTER
TABLE table_name[[BR]]{{{    }}}alter_definition [, alter_definition] ...[[BR]][[BR]]''-~'''alter_definition:'''~-''[[BR]]{{{
    }}}ADD column_family_definition[[BR]]{{{    }}}| ADD (column_family_definition, ...)[[BR]]{{{
   }}}| DROP column_family_name[[BR]]{{{    }}}| CHANGE column_family_name column_family_definition''-~||
||Drop ||'''Drop''' columnfamilies in a table or tables.[[BR]][[BR]]~-''DROP [ALL|TABLE table_name1[,
table_name2, ...]];''-~ ||
||Truncate ||'''Truncate''' cleans all data from a table. [[BR]][[BR]]~-''TRUNCATE TABLE table_name;''-~
||Enable/Disable ||'''Enable/Disable''' table lock. [[BR]][[BR]]~-''[ENABLE|DISABLE] [ALL|table_name];''-~

=== Data manipulation language ===
Data manipulation language to manually manipulate data on more detailed parts

||<bgcolor="#ececec">'''Syntax''' ||<bgcolor="#ececec">'''Explanation''' ||
||Insert ||<99%>'''Insert''' one row into the table with a value for specified column
in the table.[[BR]][[BR]]~-''INSERT INTO table_name (colmn_name, ...)[[BR]]{{{    }}}VALUES
('value', ...)[[BR]]{{{    }}}WHERE row = 'row-key'[[BR]]{{{    }}}[TIMESTAMP 'timestamp'];''-~
||Delete ||'''Delete''' specified rows in table. [[BR]][[BR]]~-''DELETE { column_name, [,
column_name] ... | COLUMNFAMILIES(column_family[, column_family] ... | *} [[BR]]{{{    }}}FROM
table_name[[BR]]{{{    }}}[WHERE row = 'row-key'];''-~ ||
||Select ||<99%>'''Select''' syntax retrieves rows from a table.[[BR]]Several aggregate
operators: COUNT()[[BR]][[BR]]~-''SELECT { column_name [, column_name] ... | expr[alias] |
* }[[BR]]{{{    }}}FROM table_name[[BR]]{{{    }}}[WHERE row = 'row-key' | STARTING FROM 'row-key'
[UNTIL 'stop-key']][[BR]]{{{    }}}[NUM_VERSIONS = version_count][[BR]]{{{    }}}[TIMESTAMP
'timestamp'][[BR]]{{{    }}}[LIMIT = row_count][[BR]]{{{    }}}[INTO FILE 'file_name'][[BR]][[BR]]''-~'''column_name:'''~-''[[BR]]{{{
    }}}column_family_name[[BR]]{{{    }}}| column_family_name:column_label_name''-~ ||
== Example Of HQL Uses ==
=== Create the table in a Hbase ===

hql > help create;
CREATE    Create tables

CREATE TABLE table_name (
        column_family_definition [, column_family_definition] ...

'''CREATE TABLE''' enables you to create a new table with various options for each column

 * ~-'''MAX_VERSIONS''' makes a table keep only the recent n versions in a cell. Its default
value is 3, i.e., only the most recent 3 versions of values are stored in a cell.-~
 * ~-'''MAX_LENGTH''' specifies the maximum size of a column value. By default, the maximum
size is unlimited. It is limited only by Integer.MAX_VALUE.-~
 * ~-'''COMPRESSION''' specifies which compression technique to use for the column family.
By default, Hbase does not compress any data.-~
 * ~-'''IN_MEMORY''' specifies whether to keep the values in the column family in-memory,
or not. By default, values are not kept in-memory.-~
 * ~-'''BLOOMFILTER''' specifies which bloom filter to use for the column family. By default,
none of the bloom filters is used. You can specify the options in two ways: with '''VECTOR_SIZE'''
and '''NUM_HASH''', or with '''NUM_ENTRIES'''. '''VECTOR_SIZE''' specifies the number of elements
in the vector, and '''NUM_HASH''' specifies the number of hash functions to use; With '''NUM_ENTRIES''',
you  specify only the approximated number of entries in the column, and '''VECTOR_SIZE'''
and '''NUM_HASH''' are automatically determined.-~

hql > CREATE TABLE movieLog_table (
  --> year, length, inColor, studioName, vote, producer, actor);

hql > CREATE TABLE webtable (
  --> contents in_memory max_versions=10 compression=block,
  --> anchor max_length=256 bloomfilter=counting_bloomfilter
  --> vector_size=1000000 num_hash=4);

=== Select data from a table ===
hql > help select;
SELECT    Select values from tables

SELECT { column_name, [, column_name] ... | expr[alias] | *} FROM table_name
        [WHERE row='row_key' | STARTING FROM 'row-key' [UNTIL 'stop-key']]
        [NUM_VERSIONS = version_count]
        [TIMESTAMP 'timestamp']
        [LIMIT = row_count]
        [INTO FILE 'file_name'];

'''SELECT''' retrieves a subset of data from the specified table.

 * ~-'''STARTING FROM''' returns all the rows starting from 'row-key'.-~
 * ~-'''NUM_VERSIONS''' retrieves only the recent n versions of values in a cell.-~
 * ~-'''TIMESTAMP''' returns only the values with the specified timestamp.-~
 * ~-'''LIMIT''' limits the number of rows to be returned.-~ 

hql > SELECT studioName: FROM movieLog_table WHERE row = 'Star Wars';

| title         studioName   |
| ========================== |
| Star Wars     Fox          |

Successfully print out the selected data.(0.05 sec)

hql > SELECT count(studioName:Fox) FROM movieLog_table;

=== Insert data into a table ===
hql > help insert;
INSERT    Insert values into tables

INSERT INTO table_name
        (colmn_name, ...) VALUES ('value', ...)
        WHERE row='row_key' [TIMESTAMP 'timestamp'];

        | column_family_name:column_label_name

'''INSERT''' inserts a set of values into a table. 

 * ~-If the specified column already exists, the new value is stored as a new version.-~
 * ~-If '''TIMESTAMP''' is not specified for the value, the current time is used as its timestamp.-~

hql > INSERT INTO movieLog_table (year:, length:, inColor:, studioName:, 'vote:user name',
producer:, 'actor:hero')
  --> VALUES ('1977', '124', 'true', 'Fox', '5', 'George Lucas', 'Mark Hamill')
  --> WHERE row='Star Wars';

=== Delete data in a table ===
hql > help delete;
DELETE    Delete table data

DELETE { column_name, [, column_name] ... | COLUMNFAMILIES(column_family[, column_family]
... | *} 
        FROM table_name
        [WHERE row = 'row-key'];

 * Asterisk (*) will be delete the all in table.
 * COLUMNFAMILIES(column_family list) will be delete the all columns in columnfamily.
 * Specified column_name will be delete the specified column data.

hql > DELETE actor:hero FROM movieLog_table;
hql > DELETE actor:hero FROM movieLog_table WHERE row='Star Wars';
hql > DELETE * FROM movieLog_table;

=== How to use external jars in Hbase Shell ===

hql > HELP JAR;
JAR jarFile [mainClass] args...;

hql > JAR ./build/hadoop-examples.jar pi 10 10;

View raw message