Nuevas opciones para crear tablas externas en Huemul
Closed this issue · 1 comments
Agregar nuevas opciones para indicar la forma de crear las tablas externas en hive. Se deben entregar las siguientes opciones:
- Crear tabla Externa usando Spark (sesión de Spark)
- Crear tabla Externa usando Hive (JDBC)
Se debe agregar estas opciones para cada tipo de tabla:
- Parquet
- ORC
- HBase
En total se deben crear 6 variables adicionales en GlobalSettings con los siguientes valores (para mantener compatibilidad con versiones anteriores).
PARQUET_createExternalTableUsingSpark: Boolean = true
PARQUET_createExternalTableUsingHive: Boolean = false
ORC_createExternalTableUsingSpark: Boolean = true
ORC_createExternalTableUsingHive: Boolean = false
HBASE_createExternalTableUsingSpark: Boolean = false
HBASE_createExternalTableUsingHive: Boolean = true
Adicionalmente, se deben agregar opciones para crear las tablas externas en huemul_Tables, para ello se deben agregar las siguientes variables (con los valores por default para mantener compatibilidad):
- createExternalTable: Boolean = true
- createExternalTable_DQ: Boolean = true
- createExternalTable_OVT: Boolean = true
Finalmente, para determinar como crear las tablas externas, se debe seguir el siguiente criterio:
if (createExternalTable == true) {
if (PARQUET_createExternalTableUsingSpark == true) {
//crear tabla usando spark.sql
}
if (PARQUET_createExternalTableUsingHive == true) {
//crear tabla usando HIVE JDBC (HIVE_Setting de GlobalSettings)
}
}
Se simplifica y generaliza los parámetros para el desarrollador.
La nueva opción en globalSettings permite indicar un conector JDBC de HIVE para crear metadata.
Esta funcionalidad permite realizar las siguientes acciones:
- En caso de utilizar versiones Hortonworks 3.0.0 hasta 3.1.4, la metadata de spark está separada de Hive, por tanto las tablas creadas desde spark no son visibles en Hive.
- En caso de usar HBase: spark no permite crear tablas externas usando el SerDe de HBase.
Para usar esta nueva funcionalidad, se deben agregar las siguientes líneas al código de globalSettings:
//Agregar variable con opciones de conexió JDBC para HIVE
val HIVE_Setting = new ArrayBuffer[huemul_KeyValuePath]()
HIVE_Setting.append(new huemul_KeyValuePath("production",getKeyFromFile(s"${localPath}prod-demo-setting-hive-connection.set")))
HIVE_Setting.append(new huemul_KeyValuePath("experimental",getKeyFromFile(s"${localPath}prod-demo-setting-hive-connection.set")))
//Para indicar el uso adicional de HIVE mediante JDBC para crear la metadata.
Global.externalBBDD_conf.Using_HIVE.setActive(true).setActiveForHBASE(true).setConnectionStrings(HIVE_Setting)
Cuando se activa esta opción, también se mantiene activa la creación de metadata usando Spark.