HuemulSolutions / huemul-bigdatagovernance

Huemul BigDataGovernance, es una framework que trabaja sobre Spark, Hive y HDFS. Permite la implementación de una estrategia corporativa de dato único, basada en buenas prácticas de Gobierno de Datos. Permite implementar tablas con control de Primary Key y Foreing Key al insertar y actualizar datos utilizando la librería, Validación de nulos, largos de textos, máximos/mínimos de números y fechas, valores únicos y valores por default. También permite clasificar los campos en aplicabilidad de derechos ARCO para facilitar la implementación de leyes de protección de datos tipo GDPR, identificar los niveles de seguridad y si se está aplicando algún tipo de encriptación. Adicionalmente permite agregar reglas de validación más complejas sobre la misma tabla.
Apache License 2.0
11 stars 7 forks source link

Integración con HBase para MDM #65

Closed sebasrod closed 4 years ago

sebasrod commented 5 years ago

Agregar opción de guardar datos de MDM en tablas de HBase

sebasrod commented 5 years ago

Se crea método setHBase_available en globalSettings. Por default está con valor false (compatibilidad con versiones anteriores).

sebasrod commented 5 years ago

agrega HBASE a huemulType_StorageType

sebasrod commented 5 years ago

Agrega función setHBaseCatalogMapping(df: String, col: String = null): huemul_Columns, permite hacer el mapping entre las columnas del DF y las columnas de Hbase

Ejemplo

   val tu_columna = new huemul_Columns (StringType, true, "descripción de la columna", false).setHBaseCatalogMapping("nombre_familia","nombre_campo_en_hbase")
sebasrod commented 4 years ago

Para guardar una tabla en HBase, se debe considerar lo siguiente:

El siguiente ejemplo muestra la configuración para tabla de tipo HBase:

class tbl_demo_HBASE(huemulBigDataGov: huemul_BigDataGovernance, Control: huemul_Control) extends huemul_Table(huemulBigDataGov, Control) with Serializable {
  /**********   C O N F I G U R A C I O N   D E   L A   T A B L A   ****************************************/
  //Tipo de tabla, Master y Reference son catalogos sin particiones de periodo
  this.setTableType(huemulType_Tables.Master)
  //Tipo de archivo que sera almacenado en HDFS
  this.setStorageType(huemulType_StorageType.HBASE)
  ...

Debido a la naturaleza de HBase, se debe tener presente lo siguiente:

Finalmente, para poder utilizar el almacenamiento de HBase desde Spark, se deben incluir las librerías necesarias para tales efectos, algunas recomendaciones son las siguientes:

A continuación se dan como ejemplo las rutas para la ejecución sobre un ambiente HortonWorks.

* /usr/hdp/current/hbase-client/lib/hbase-server.jar
* /usr/hdp/current/hbase-client/lib/hbase-spark.jar
* /usr/hdp/current/hbase-client/lib/hbase-common.jar
* /usr/hdp/current/hbase-client/lib/hbase-client.jar
* /usr/hdp/current/hbase-client/lib/hbase-protocol.jar
* /usr/hdp/current/hbase-client/lib/hbase-annotations.jar
* /usr/hdp/current/hbase-client/lib/hbase-hadoop-compat.jar
* /usr/hdp/current/hbase-client/lib/hbase-hadoop2-compat.jar
* /usr/hdp/current/hive-client/lib/hive-hbase-handler.jar
* /usr/hdp/current/hbase-client/lib/metrics-core-2.2.0.jar