Search in sources :

Example 1 with DerbyMetadataStorage

use of org.apache.druid.metadata.storage.derby.DerbyMetadataStorage in project hive by apache.

the class DruidStorageHandler method buildConnector.

private SQLMetadataConnector buildConnector() {
    if (connector != null) {
        return connector;
    }
    final String dbType = HiveConf.getVar(getConf(), HiveConf.ConfVars.DRUID_METADATA_DB_TYPE);
    final String username = HiveConf.getVar(getConf(), HiveConf.ConfVars.DRUID_METADATA_DB_USERNAME);
    final String password = getPassword(getConf(), HiveConf.ConfVars.DRUID_METADATA_DB_PASSWORD);
    final String uri = HiveConf.getVar(getConf(), HiveConf.ConfVars.DRUID_METADATA_DB_URI);
    LOG.debug("Supplying SQL Connector with DB type {}, URI {}, User {}", dbType, uri, username);
    @SuppressWarnings("Guava") final Supplier<MetadataStorageConnectorConfig> storageConnectorConfigSupplier = Suppliers.ofInstance(new MetadataStorageConnectorConfig() {

        @Override
        public String getConnectURI() {
            return uri;
        }

        @Override
        public String getUser() {
            return Strings.emptyToNull(username);
        }

        @Override
        public String getPassword() {
            return Strings.emptyToNull(password);
        }
    });
    switch(dbType) {
        case "mysql":
            connector = new MySQLConnector(storageConnectorConfigSupplier, Suppliers.ofInstance(getDruidMetadataStorageTablesConfig()), new MySQLConnectorConfig());
            break;
        case "postgresql":
            connector = new PostgreSQLConnector(storageConnectorConfigSupplier, Suppliers.ofInstance(getDruidMetadataStorageTablesConfig()), new PostgreSQLConnectorConfig(), new PostgreSQLTablesConfig());
            break;
        case "derby":
            connector = new DerbyConnector(new DerbyMetadataStorage(storageConnectorConfigSupplier.get()), storageConnectorConfigSupplier, Suppliers.ofInstance(getDruidMetadataStorageTablesConfig()));
            break;
        default:
            throw new IllegalStateException(String.format("Unknown metadata storage type [%s]", dbType));
    }
    return connector;
}
Also used : DerbyConnector(org.apache.druid.metadata.storage.derby.DerbyConnector) MetadataStorageConnectorConfig(org.apache.druid.metadata.MetadataStorageConnectorConfig) PostgreSQLConnectorConfig(org.apache.druid.metadata.storage.postgresql.PostgreSQLConnectorConfig) PostgreSQLTablesConfig(org.apache.druid.metadata.storage.postgresql.PostgreSQLTablesConfig) PostgreSQLConnector(org.apache.druid.metadata.storage.postgresql.PostgreSQLConnector) MySQLConnectorConfig(org.apache.druid.metadata.storage.mysql.MySQLConnectorConfig) MySQLConnector(org.apache.druid.metadata.storage.mysql.MySQLConnector) DerbyMetadataStorage(org.apache.druid.metadata.storage.derby.DerbyMetadataStorage)

Aggregations

MetadataStorageConnectorConfig (org.apache.druid.metadata.MetadataStorageConnectorConfig)1 DerbyConnector (org.apache.druid.metadata.storage.derby.DerbyConnector)1 DerbyMetadataStorage (org.apache.druid.metadata.storage.derby.DerbyMetadataStorage)1 MySQLConnector (org.apache.druid.metadata.storage.mysql.MySQLConnector)1 MySQLConnectorConfig (org.apache.druid.metadata.storage.mysql.MySQLConnectorConfig)1 PostgreSQLConnector (org.apache.druid.metadata.storage.postgresql.PostgreSQLConnector)1 PostgreSQLConnectorConfig (org.apache.druid.metadata.storage.postgresql.PostgreSQLConnectorConfig)1 PostgreSQLTablesConfig (org.apache.druid.metadata.storage.postgresql.PostgreSQLTablesConfig)1