Return-Path: Delivered-To: apmail-lucene-hadoop-commits-archive@locus.apache.org Received: (qmail 85961 invoked from network); 14 Aug 2007 03:56:01 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 14 Aug 2007 03:56:01 -0000 Received: (qmail 66203 invoked by uid 500); 14 Aug 2007 03:55:59 -0000 Delivered-To: apmail-lucene-hadoop-commits-archive@lucene.apache.org Received: (qmail 66181 invoked by uid 500); 14 Aug 2007 03:55:59 -0000 Mailing-List: contact hadoop-commits-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: hadoop-dev@lucene.apache.org Delivered-To: mailing list hadoop-commits@lucene.apache.org Received: (qmail 66172 invoked by uid 99); 14 Aug 2007 03:55:59 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 13 Aug 2007 20:55:59 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.130] (HELO eos.apache.org) (140.211.11.130) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Aug 2007 03:56:11 +0000 Received: from eos.apache.org (localhost [127.0.0.1]) by eos.apache.org (Postfix) with ESMTP id C3DC059A07 for ; Tue, 14 Aug 2007 03:55:37 +0000 (GMT) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Apache Wiki To: hadoop-commits@lucene.apache.org Date: Tue, 14 Aug 2007 03:55:37 -0000 Message-ID: <20070814035537.25685.74004@eos.apache.org> Subject: [Lucene-hadoop Wiki] Trivial Update of "Hbase/ShellPlans" by udanax X-Virus-Checked: Checked by ClamAV on apache.org Dear Wiki user, You have subscribed to a wiki page or wiki category on "Lucene-hadoop Wiki" for change notification. The following page has been changed by udanax: http://wiki.apache.org/lucene-hadoop/Hbase/ShellPlans ------------------------------------------------------------------------------ = Hbase Shell Plan Draft = Plan is to significantly expand the set of shell operators. Basic data manipulation and data definition operators will be extended and evolved to be more SQL-like ([wiki:Hbase/HbaseShell/HQL HQL]). More sophisticated manipulations to do relational and linear algebra, matrix additions, multiplications, etc., will be added to a HBase subshell to keep the two operator types -- SQL-like vs. non-SQL -- distinct. - - This project is currently in the planning stage. [https://issues.apache.org/jira/browse/HADOOP-1608 HADOOP-1608] to add "Relational Algrebra Operators" is currently in process. == Suggested Hbase Query Language plans == @@ -15, +13 @@ ---- == Suggested Hbase Shell altools plans == - I suggest to develop HBase Shell in SQL-style, and develop '''al'''gebraic '''tools''' as a sub shell as described below. + I suggest to develop HBase Shell in SQL-style, and develop '''al'''gebraic '''tools''' as a sub shell in Intuitionalized-style as described below. {{{ HBase > altools; @@ -46, +44 @@ ==== Commands ==== ||'''Command''' ||'''Explanation''' || ||Table ||<99%>'''Table''' command loads specified table. [[BR]][[BR]]~-''A = Table('movieLog_table');''-~ || - ||Matrix ||<99%>'''Matrix''' command constructs the configuration of the logic matrix. [[BR]][[BR]]~-''M = Matrix(table_name, columnfamily_name[, option]);''-~ || + ||Matrix ||<99%>'''Matrix''' command constructs the configuration of the logic matrix.[[BR]]'''Options''' : features not yet. [[BR]][[BR]]~-''M = Matrix(table_name, columnfamily_name[, scalar S]);''-~ || ||Substitute ||<99%>'''Substitute''' expression to [A~Z][[BR]][[BR]]~-''A = Table('movieLog_table');''-~ || ||IF...ELSE ||<99%>'''IF...ELSE''', Imposes conditions on the execution. [[BR]][[BR]]~-''IF ( boolean_expression )[[BR]]B = command_statements;[[BR]]ELSE[[BR]]B = command_statements;''-~|| ||Store ||<99%>'''Store''' command will store results to specified table. [[BR]][[BR]]~-''A = Table('movieLog_table'); [[BR]]B = A.Selection(length > 100); [[BR]]Store B TO table('tmp_table')[or file('backup.dat')];''-~ || @@ -103, +101 @@ ||'''Function''' ||'''Explanation''' || ||LU ||<99%>'''LU Decomposition'''[[BR]]A procedure for decomposing an N by N matrix A into a product of a lower triangular matrix L and an upper triangular matrix U, LU = A.[[BR]]'''Functions''' : ~-''getL(), getU(), isSingular(), getPivot()''-~ [[BR]][[BR]]~-''A = Matrix('m_table','cf_1');[[BR]]B = LUDecomposition(A);[[BR]]C = getU(B);[[BR]]D = getL(A);''-~|| ||QR ||<99%>'''QR Decomposition'''[[BR]]For an m-by-n matrix A with m >= n, the QR decomposition is an m-by-n orthogonal matrix Q and an n-by-n upper triangular matrix R so that A = Q*R.[[BR]]'''Functions''' : ~-''getH(), getQ(), getR()''-~[[BR]][[BR]]~-''A = Matrix('m_table','cf_1');[[BR]]B = QRDecomposition(A);[[BR]]C = getH(B);''-~|| - ||Cholesky ||<99%>'''Cholesky Decomposition'''[[BR]]It is a special case of LU decomposition applicable only if matrix to be decomposed is symmetric positive definite.[[BR]]'''Functions''' : ~-''getL(), isSPD()''-~ [[BR]][[BR]]~-''A = Matrix('m_table','cf_1');[[BR]]B = CholeskyDecomposition(A);[[BR]]C = getU(B);[[BR]]D = getL(A);''-~|| + ||Cholesky ||<99%>'''Cholesky Decomposition'''[[BR]]It is a special case of LU decomposition applicable only if matrix to be decomposed is symmetric positive definite.[[BR]]'''Functions''' : ~-''getL(), isSPD()''-~ [[BR]][[BR]]~-''A = Matrix('m_table','cf_1');[[BR]]B = CholeskyDecomposition(A);[[BR]]C = getL(A);''-~|| ||SVD ||<99%>'''SV(Singular Value) Decomposition'''[[BR]]For an m-by-n matrix A with m >= n, the singular value decomposition is an m-by-n orthogonal matrix U, an n-by-n diagonal matrix S, and an n-by-n orthogonal matrix V so that A = U*S*V'.[[BR]]'''Functions''' : ~-''getS(), getU(), getV(), getSingularValues()''-~ [[BR]][[BR]]~-''A = Matrix('m_table','cf_1');[[BR]]B = SVDecomposition(A);[[BR]]C = getU(B);''-~|| - ''~-Again, to help readers, you might cite pages that explain 'relational algebra' or examples of its use in databases to help contextualize your plan (Aren't there other relational operators than these that might be included? Do you intend to implement those? If not, you might say why not of if you intend to do these as 'Matrix Arithmetic Operators, you might say so. -- St.Ack-~'' + '''(ex. 1)''' To find the Singular Value decomposition in Altools, do the following: + [[BR]]~-''M = UΣV*''-~ + + {{{ + Hbase.altools > M = Matrix('m_table','cf_1'); + Hbase.altools > U = M.getU(); + Hbase.altools > V = M.getV(); + }}} + ---- = Implementation = - - ''~-I'd suggest you add a section on the framework you intend to use developing operators (Will you be using javacc to parse the shell inputs? Will some operators run mapreduce jobs? Will output always be ASCII or will it specifiable?). -- St.Ack-~'' '''Note''' : ''We should first test on local machines. -- udanax'' [[BR]] ''Code Style Formatter'' [attachment:uncle-jim-code-style.xml] @@ -132, +136 @@ St.Ack }}} - + This project is currently in the planning stage. [https://issues.apache.org/jira/browse/HADOOP-1608 HADOOP-1608] to add "Relational Algrebra Operators" is currently in process. ---- = Example Of Hbase Shell Use =