Uploaded image for project: 'Teiid'
  1. Teiid
  2. TEIID-3678

Unable to import native metada from HBase

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 8.12
    • 8.10, 8.7.1.6_2
    • JDBC Connector
    • None
    • Hide

      For example, this one works:

      <vdb name="hbase_test_vdb" version="1">
          <model name="Source" type="PHYSICAL" visible="true">
              <property name="importer.importIndexes" value="true"/>
              <property name="importer.importKeys" value="false"/>
              <source name="Source" translator-name="hbase" connection-jndi-name="localHBase"/>
              <metadata type="NATIVE"/>
          </model>
      </vdb>
      
      Show
      For example, this one works: <vdb name= "hbase_test_vdb" version= "1" > <model name= "Source" type= "PHYSICAL" visible= "true" > <property name= "importer.importIndexes" value= "true" /> <property name= "importer.importKeys" value= "false" /> <source name= "Source" translator-name= "hbase" connection-jndi-name= "localHBase" /> <metadata type= "NATIVE" /> </model> </vdb>

      Native metadata cloud not be imported if default values of import properties are used:

      <vdb name="hbase_test_vdb" version="1">
          <model name="Source" type="PHYSICAL" visible="true">
              <source name="Source" translator-name="hbase" connection-jndi-name="localHBase"/>
              <metadata type="NATIVE"/>
          </model>
      </vdb>
      

      Exception:
      09:08:06,722 DEBUG [org.teiid.CONNECTOR] (teiid-async-threads - 2) JDBCMetadataProcessor - Importing tables
      09:08:06,747 DEBUG [org.teiid.CONNECTOR] (teiid-async-threads - 2) JDBCMetadataProcessor - Importing columns
      09:08:06,748 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015865: Replaced deployment "test-vdb.xml" with deployment "test-vdb.xml"
      09:08:06,782 DEBUG [org.teiid.CONNECTOR] (teiid-async-threads - 2) JDBCMetadataProcessor - Importing primary keys
      09:08:06,905 DEBUG [org.teiid.CONNECTOR] (teiid-async-threads - 2) JDBCMetadataProcessor - Importing index info
      09:08:06,906 WARN [org.teiid.RUNTIME] (teiid-async-threads - 2) TEIID50036 VDB hbase_test_vdb.1 model "Source" metadata failed to load. Reason:TEIID11010 java.sql.SQLException: ERROR 1101 (XCL01): ResultSet is closed.

      Phoenix driver seems does not support unique indexes (https://github.com/apache/phoenix/blob/master/phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java#L690) and returns every time the same ResultSet. After first table, Teiid closes it and next loop fails (https://github.com/teiid/teiid/blob/790e0da722de6f49685ce761302e54772843b917/connectors/translator-jdbc/src/main/java/org/teiid/translator/jdbc/JDBCMetdataProcessor.java#L666).

      The empty ResultSet is being used across all the PhoenixDatabaseMetaData class:
      getProcedures(...), getIndexes(...), getImportedKeys(...), getFunctions(...), ...

            rhn-engineering-shawkins Steven Hawkins
            jdurani Juraj DurĂ¡ni (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: