[ 
https://issues.apache.org/jira/browse/LENS-910?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15093417#comment-15093417
 ] 

Hadoop QA commented on LENS-910:
--------------------------------

Applied patch: 
[LENS-910-5.patch|https://issues.apache.org/jira/secure/attachment/12781745/LENS-910-5.patch]
 and ran command: mvn clean install -fae. Result: Success. Build Job: 
https://builds.apache.org/job/PreCommit-Lens-Build/248/

> Add session config to skip filtering cube related tables from all the tables 
> in a database
> ------------------------------------------------------------------------------------------
>
>                 Key: LENS-910
>                 URL: https://issues.apache.org/jira/browse/LENS-910
>             Project: Apache Lens
>          Issue Type: Improvement
>            Reporter: Deepak Barr
>            Assignee: Deepak Barr
>            Priority: Minor
>         Attachments: LENS-910-5.patch
>
>
> {code:title=CubeMetastoreServiceImpl.java|borderStyle=solid}
>   private List<String> getNativeTablesFromDB(LensSessionHandle sessionid, 
> String dbName, boolean prependDbName)
>     throws LensException {
>     IMetaStoreClient msc = null;
>     try {
>       msc = getSession(sessionid).getMetaStoreClient();
>       List<String> tables = msc.getAllTables(
>         dbName);
>       List<String> result = new ArrayList<String>();
>       if (tables != null && !tables.isEmpty()) {
>         List<org.apache.hadoop.hive.metastore.api.Table> tblObjects =
>           msc.getTableObjectsByName(dbName, tables);
>         Iterator<org.apache.hadoop.hive.metastore.api.Table> it = 
> tblObjects.iterator();
>         while (it.hasNext()) {
>           org.apache.hadoop.hive.metastore.api.Table tbl = it.next();
>           if (tbl.getParameters().get(MetastoreConstants.TABLE_TYPE_KEY) == 
> null) {
>             if (prependDbName) {
>               result.add(dbName + "." + tbl.getTableName());
>             } else {
>               result.add(tbl.getTableName());
>             }
>           }
>         }
>       }
>       return result;
>     } catch (Exception e) {
>       throw new LensException("Error getting native tables from DB", e);
>     }
>   }
> {code}
> We have approx. 18K tables in one of our hive databases. When fetching native 
> tables, the getNativeTablesFromDB() filters out the cube related tables from 
> the superset using table property(cube.table.type). This filtering is taking 
> a long time for our heavy databases. The call to metastore API 
> [msc.getTableObjectsByName()] is taking most of the time. Since, the cube 
> related tables may not be present in some/most databases, the filtering is 
> not necessary for them. I think we can add a session property, so that a user 
> can skip filtering if he wants to. Thoughts ?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to