There are a number of other things you can do with Hive to improve your simple query.
First is best to upgrade to Hive 1.2.1 or above which will require minimal effort just ensure that you upgrade your metastore as well. Second your first column is unique (?) as it is ID so in all probability it is a monotonically increasing number. You can therefore deploy bucketing to spread your col1 uniformily as its selectivity is 1. I just wrote a simple shell routine to create 100K rows in an ORC table. Divided into 256 buckets. I am running Hive on Spark engine CREATE TABLE txtest ( ID string , DESCRIPTION string ) CLUSTERED BY (ID) INTO 256 BUCKETS STORED AS ORC TBLPROPERTIES ( "orc.create.index"="true", "orc.compress"="SNAPPY", "orc.stripe.size"="16777216", "orc.row.index.stride"="10000" ) ; INFO : Loading data to table test.txtest from hdfs://rhes564:9000/user/hive/warehouse/test.db/txtest/.hive-staging_hive_2016-01-29_16-10-04_765_4205127232246216560-13/-ext-10000 INFO : Table test.txtest stats: [numFiles=256, numRows=100000, totalSize=5653369, rawDataSize=22200000] OK let us just do a simple point query as you did 0: jdbc:hive2://rhes564:10010/default> use test; No rows affected (0.02 seconds) 0: jdbc:hive2://rhes564:10010/default> select * from txtest where id = '1234'; +------------+-----------------------------------------------------+--+ | txtest.id | txtest.description | +------------+-----------------------------------------------------+--+ | 1234 | R_MaH9oKm_OfLbe8LumdSXzBvDFJFrUIkvUoRm_iDPdeegPEWf | +------------+-----------------------------------------------------+--+ 1 row selected (0.887 seconds) HTH Dr Mich Talebzadeh LinkedIn <https://www.linkedin.com/profile/view?id=AAEAAAAWh2gBxianrbJd6zP6AcPCCdOABUrV8Pw> https://www.linkedin.com/profile/view?id=AAEAAAAWh2gBxianrbJd6zP6AcPCCdOABUrV8Pw Sybase ASE 15 Gold Medal Award 2008 A Winning Strategy: Running the most Critical Financial Data on ASE 15 <http://login.sybase.com/files/Product_Overviews/ASE-Winning-Strategy-091908.pdf> http://login.sybase.com/files/Product_Overviews/ASE-Winning-Strategy-091908.pdf Author of the books "A Practitioner’s Guide to Upgrading to Sybase ASE 15", ISBN 978-0-9563693-0-7. co-author "Sybase Transact SQL Guidelines Best Practices", ISBN 978-0-9759693-0-4 Publications due shortly: Complex Event Processing in Heterogeneous Environments, ISBN: 978-0-9563693-3-8 Oracle and Sybase, Concepts and Contrasts, ISBN: 978-0-9563693-1-4, volume one out shortly <http://talebzadehmich.wordpress.com/> http://talebzadehmich.wordpress.com NOTE: The information in this email is proprietary and confidential. This message is for the designated recipient only, if you are not the intended recipient, you should destroy it immediately. Any information in this message shall not be understood as given or endorsed by Peridale Technology Ltd, its subsidiaries or their employees, unless expressly so stated. It is the responsibility of the recipient to ensure that this email is virus free, therefore neither Peridale Technology Ltd, its subsidiaries nor their employees accept any responsibility. From: Frank Luo [mailto:j...@merkleinc.com] Sent: 29 January 2016 00:47 To: user@hive.apache.org Subject: bloom filter used in 0.14? All, I have a huge table that I periodically want to do select on some particular value. For example, supposing I have a table for the entire world population. Then I know the id of “1234” is criminal, hence I want to pull out his information from the table. Without any optimization, I have to use thousands of mappers to find just one id. So not ideal. I tried to enable bloom-filter on the column that I want to search on. But a simple query shows that the amount of data read is the same as that without a bloom-filter. So I am questioning whether it is enabled on the version I am on, which is 0.14. Does anyone know? If bloom-filter is not the way to go, does anyone have suggestions? Here is the hql: create table test ( col1 STRING, col2 STRING ) STORED AS ORC tblproperties ("orc.bloom.filter.columns"="col1"); select * from test where col1 = ‘1234’; Thx Frank <http://www2.merkleinc.com/janfooter> This email and any attachments transmitted with it are intended for use by the intended recipient(s) only. If you have received this email in error, please notify the sender immediately and then delete it. If you are not the intended recipient, you must not keep, use, disclose, copy or distribute this email without the author’s prior permission. We take precautions to minimize the risk of transmitting software viruses, but we advise you to perform your own virus checks on any attachment to this message. We cannot accept liability for any loss or damage caused by software viruses. The information contained in this communication may be confidential and may be subject to the attorney-client privilege.