Revisión de Proyectos de Educación en Línea en Big Data Education Data Warehouse

Revisión de Proyectos de Educación en Línea en Big Data Education Data Warehouse

01: Requisitos del proyecto de educación en línea

  • Objetivo : dominar las necesidades de los programas de educación en línea

  • implementar

    • Requerimientos de rutina : A través del análisis y procesamiento de datos, se obtienen algunos indicadores para reflejar algunos hechos y apoyar decisiones operativas.
    • Industria : Industria de la educación en línea
    • Producto: Curso
    • Demanda : Mejorar la tasa de conversión del registro de estudiantes y lograr un desarrollo operativo sostenible
      • Requisito 1: Analizar la tasa de retención y tasa de pérdida de estudiantes en cada enlace desde la visita hasta el registro, averiguar los problemas existentes en cada enlace, resolverlos y aumentar la tasa de registro
        • Análisis de acceso
        • Análisis de consultoría
        • análisis de intenciones
        • Análisis de registro
        • A través del análisis de cada enlace, podemos descubrir las razones de la pérdida de cada enlace, resolver el problema y mejorar la tasa de conversión de cada paso.
      • Requisito 2: El desarrollo sostenible necesita construir una buena reputación de producto y controlar la calidad del aprendizaje de los estudiantes: a través de la gestión y control de exámenes, asistencia y tareas
        • Análisis de asistencia
  • resumen

    • Requisitos del programa maestro de educación en línea
  • Entrevista: Introducción al proyecto

02: División de temas de demanda

  • Objetivo : dominar la división de temas solicitados en la educación en línea
  • implementar
    • División de gestión de datos del almacén de datos
      • Data warehouse [DW]: almacena todos los datos de toda la empresa
        • Data mart/dominio de asunto [DM]: dividido según ciertos requisitos comerciales: departamento, negocio, demanda
          • Tema: cada tema está orientado hacia el requisito final de análisis comercial
    • Temas en demanda en la educación en línea
      • Almacén de datos: datos del sistema comercial [sistema de servicio al cliente, sistema CRM, sistema de gestión de estudiantes]
        • Business Data Warehouse: datos estructurados
      • Data Mart/Dominio de asunto
        • Bazar de gestión de operaciones/Dominio de operaciones
        • Bazar de Gestión de Ventas/Dominio de Ventas
        • Bazar de administración de estudiantes/Dominio de usuario
        • Bazar de gestión de productos/Dominio de productos
        • dominio publicitario
        • ……
      • sujeto de datos
        • Tema de análisis de origen, tema de análisis de acceso, tema de análisis de consultoría
        • Tema de análisis de ventas, tema de análisis de clientes potenciales, tema de análisis de intención, tema de análisis de registro
        • Tema de análisis de asistencia, Tema de análisis de examen, Tema de análisis de tarea
        • Tema de acceso a productos, tema de ventas de productos, tema de pago de productos
        • Nombre de la tabla: tabla layer_[domain]_subject_dimension
  • resumen
    • Domine la delimitación de temas en demanda en la educación en línea
    • Entrevista: ¿Qué dominios temáticos se dividen en el proyecto y cuáles son los temas?

03: Fuentes de datos

  • Objetivo : dominar las fuentes de datos de las plataformas de educación en línea
  • implementar
    • Temas de análisis de acceso, Temas de análisis de consultoría
      • sistema de servicio al cliente: base de datos del sistema de servicio al cliente
      • Requisitos: Cuente el número de usuarios visitantes y usuarios de consulta en diferentes dimensiones
        • Indicadores: UV, PV, IP, sesión, tasa de rebote, tasa de doble rebote
        • Dimensiones: hora, región, canal de origen, fuente de búsqueda, página de origen
      • web_chat_ems
      • web_chat_text_ems
    • Tema de análisis de clientes potenciales, tema de análisis de intención, tema de análisis de inscripción
      • sistema CRM: base de datos del sistema de marketing
      • Requisitos: cuente la cantidad de usuarios previstos, usuarios registrados y clientes potenciales válidos en diferentes dimensiones
        • Dimensiones: tiempo, región, canal de origen, en línea y fuera de línea, estudiantes nuevos y antiguos, campus, disciplina, departamento de ventas
      • relación_cliente: formulario de información de intención y registro
      • customer_clue: tabla de información de pistas
      • cliente: formulario de información del estudiante
      • itcast_school: formulario de información del distrito escolar
      • itcast_subject: tabla de información del tema
      • empleado: formulario de información del empleado
      • scrm_deparment: tabla de información del departamento
      • itcast_clazz: formulario de información de clase de registro
    • Temas de análisis de asistencia
      • Fuentes de datos:sistema de gestión de estudiantes
      • Requisitos: Estadísticas de indicadores de asistencia estudiantil en diferentes dimensiones: número de asistencia, tasa de asistencia, tardanza, licencia, ausentismo
      • tbh_student_signin_record: formulario de información de inicio de sesión del estudiante
      • student_leave_apply: formulario de información de licencia de estudiante
      • tbh_class_time_table: horario de clases
      • Course_table_upload_detail: horario de clases
      • class_studying_student_count: tabla del número total de estudiantes en la clase
  • resumen
    • Recuerde las tablas y campos principales
    • Entrevista: ¿Cuáles son las fuentes de datos?

04: Diseño de almacén de datos

  • Objetivo : dominar el proceso de implementación de cada almacén de datos temático en el tema de análisis empresarial

  • implementar

    imagen-20210518162724906

    • Temas de análisis de acceso

      • ODS: web_chat_ems, web_chat_text_ems
      • DWD: combine dos tablas e implemente ETL
      • DWS: cuente la cantidad de usuarios, sesiones e IP de todos los datos de acceso en función de diferentes dimensiones
    • Temas de análisis de consultoría

      • ODS: web_chat_ems, web_chat_text_ems
      • DWD: DWD que reutiliza directamente el análisis de acceso
      • DWS: cuente la cantidad de usuarios, sesiones e IP de todos los datos de consulta [msg_count> 0] en función de diferentes dimensiones
    • tema de análisis de intención

      • ODS: relación_cliente, pista_cliente
      • DIM:cliente, empleado, scrm_department, itcast_shcool, itcast_subject
      • DWD: implementar ETL para relación_cliente
      • DWM: realice la asociación de todas las tablas, coloque todas las dimensiones y campos de hechos en una tabla
      • DWS: agregue en función de diferentes dimensiones para obtener el número de personas interesadas
    • Regístrese para temas de análisis

      • ODS:relación_cliente
      • DIM: cliente, empleado, departamento_scrm, itcast_clazz
      • DWD: implementar ETL para relación_cliente y filtrar datos de registro
      • DWM: realice la asociación de cuatro tablas y coloque todas las dimensiones y campos de hechos en una tabla
      • DWS: agregue otras dimensiones combinadas en función de la dimensión de la hora para obtener indicadores
      • APP: Acumula los resultados en base a horas para obtener los resultados de hechos en las dimensiones de día, mes y año
    • tema de gestión de asistencia

      • ODS:tbh_student_signin_record、student_leave_apply
      • DIM:tbh_class_time_table、course_table_upload_detail、class_studying_student_count
      • DWD: no
      • DWM
        • Tabla de estado de asistencia del estudiante: basada en la tabla de información de la tarjeta perforada del estudiante
        • Tabla de estado de asistencia a clases: basada en la tabla de estado de asistencia de los estudiantes
        • Formulario de información de licencia de clase: obtenido en base al formulario de información de licencia
        • Formulario de información de ausentismo escolar: número total - número de asistencia - número de licencia
      • DWS: Basado en la construcción día a día de los indicadores de asistencia bajo la dimensión día + clase: 24
      • APLICACIÓN: recalcular los indicadores de asistencia mensual y anual en función de la acumulación de la suma en función del número de personas
  • resumen

    • Dominar el proceso de implementación de cada almacén de datos temático en el tema de análisis empresarial
    • Entrevista: ¿Cómo se diseñan las capas?
      • ODS: capa de datos sin procesar: almacenar datos sin procesar
      • DWD: capa de datos detallados: datos detallados después de ETL
      • DWM: capa de resumen ligero: construye los hechos de transacción del tema, asocia todas las tablas de hechos para obtener los hechos del tema y construye algunos indicadores básicos
      • DWS: capa de datos de resumen: construya tablas anchas de hechos y dimensiones para todo el dominio del tema
      • APP: Dividir sub-tablas con diferentes dimensiones para cada tema
      • DIM: capa de datos de dimensión: todas las tablas de dimensión

05: Arquitectura Técnica

  • Objetivo : Dominar la arquitectura técnica de todo el proyecto

  • implementar

    imagen-20210518162810459

    • Fuente de datos: base de datos MySQL
    • Recopilación de datos: Sqoop
    • Almacenamiento de datos: Hive: Almacén de datos fuera de línea
    • Procesamiento de datos: HiveSQL [MapReduce] = "En el futuro, el currículum se cambiará a SparkSQL y otras herramientas para lograr
    • Resultado de datos: MySQL
    • Informe de datos: FineBI
    • Servicio de coordinación: Zookeeper
    • Interacción visual: Matiz
    • Programación del flujo de tareas: Oozie
    • Supervisión de la gestión de clústeres: Cloudera Manager
    • Gestión de versiones del proyecto: Git
  • resumen

    • Dominar la arquitectura técnica de todo el proyecto
    • Entrevista: ¿Introducción al proyecto o arquitectura técnica del proyecto?

06: Optimización de proyectos

  • Objetivo : dominar las optimizaciones comunes de Hive

  • implementar

    • optimización de propiedades

      • modo local

        hive.exec.mode.local.auto=true;
        
      • reutilización de JVM

        mapreduce.job.jvm.numtasks=10
        
      • ejecución especulativa

        mapreduce.map.speculative=true
        mapreduce.reduce.speculative=true
        hive.mapred.reduce.tasks.speculative.execution=true
        
      • FetchCrawl

        hive.fetch.task.conversion=more
        
      • ejecución paralela

        hive.exec.parallel=true
        hive.exec.parallel.thread.number=16
        
      • compresión

        hive.exec.compress.intermediate=true
        hive.exec.orc.compression.strategy=COMPRESSION
        mapreduce.map.output.compress=true
        mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.DefaultCodec
        
      • consulta vectorizada

        hive.vectorized.execution.enabled = true;
        hive.vectorized.execution.reduce.enabled = true;
        
      • copia cero

        hive.exec.orc.zerocopy=true;
        
      • Optimización de correlación

        hive.optimize.correlation=true;
        
      • optimizador CBO

        hive.cbo.enable=true;
        hive.compute.query.using.stats=true;
        hive.stats.fetch.column.stats=true;
        hive.stats.fetch.partition.stats=true;
        
      • procesamiento de archivos pequeños

        #设置Hive中底层MapReduce读取数据的输入类:将所有文件合并为一个大文件作为输入
        hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
        #如果hive的程序,只有maptask,将MapTask产生的所有小文件进行合并
        hive.merge.mapfiles=true;
        hive.merge.mapredfiles=true;
        hive.merge.size.per.task=256000000;
        hive.merge.smallfiles.avgsize=16000000;
        
      • optimización de índice

        hive.optimize.index.filter=true
        
      • Predicado Pushdown PPD

        hive.optimize.ppd=true;
        

        [Error en la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo de enlace antirrobo, se recomienda guardar la imagen y cargarla directamente (img-4UGgQtXE-1690355726417) (J:/baidudownload/09-the noventh stage spark project -Fabricación integral/Día 5 _Construcción de la capa DWB de la capa de datos del almacén de datos/02_Notas de clase/Día 5_Construcción de la capa DWB de la capa de datos del almacén de datos.assets/image-20210518184328346.png)]

        • Unión interna y unión externa completa, la condición se escribe después de o después de donde, no hay diferencia en el rendimiento
        • En Left outside Join, la tabla de la derecha se escribe después de on y la tabla de la izquierda se escribe después de where, lo que mejora el rendimiento.
        • En la unión exterior derecha, la tabla de la izquierda se escribe después de on y la tabla de la derecha se escribe después de where, lo que mejora el rendimiento.
        • Si aparece una función con un resultado incierto en la instrucción SQL, no se puede implementar el pushdown
      • Mapa Unirse

        hive.auto.convert.join=true
        hive.auto.convert.join.noconditionaltask.size=512000000
        
      • Unión de cubeta

        hive.optimize.bucketmapjoin = true;
        hive.auto.convert.sortmerge.join=true;
        hive.optimize.bucketmapjoin.sortedmerge = true;
        hive.auto.convert.sortmerge.join.noconditionaltask=true;
        
      • Memoria de tareas

        mapreduce.map.java.opts=-Xmx6000m;
        mapreduce.map.memory.mb=6096;
        mapreduce.reduce.java.opts=-Xmx6000m;
        mapreduce.reduce.memory.mb=6096;
        
      • tamaño del búfer

        mapreduce.task.io.sort.mb=100
        
      • Umbral de derrame

        mapreduce.map.sort.spill.percent=0.8
        
      • Combinar hilo

        mapreduce.task.io.sort.factor=10
        
      • Reducir el paralelismo de tiro

        mapreduce.reduce.shuffle.parallelcopies=8
        mapreduce.reduce.shuffle.read.timeout=180000
        
    • optimización SQL

      • Idea central: filtrar primero y luego procesar

        • donde y teniendo uso
        • El uso de on y where en join
        • Filtre la mesa grande en una mesa pequeña y luego únase
    • Optimización del diseño

      • Tablas particionadas: entrada reducida de MapReduce, evitando filtraciones innecesarias

      • Tabla de cubos: reduzca el número de comparaciones, realice la clasificación de datos, divida big data y cree Map Join

      • Almacenamiento de archivos: se prefiere el almacenamiento en columnas: parquet, orc

  • resumen

    • Competencia en optimización en Hive
    • Entrevista: ¿Qué optimizaciones se han realizado en el proyecto? ¿Qué optimizaciones ha realizado Hive?

07: Preguntas sobre el proyecto

  • Objetivo : dominar las optimizaciones comunes de Hive

  • implementar

    • Problema de memoria : el programa de síntomas no se ejecuta

      • OOM: sin memoria

      imagen-20210518190318728

      • Memoria de montón insuficiente: asigne más memoria al proceso de tareas

        mapreduce.map.java.opts=-Xmx6000m;
        mapreduce.map.memory.mb=6096;
        mapreduce.reduce.java.opts=-Xmx6000m;
        mapreduce.reduce.memory.mb=6096;
        
      • Memoria física insuficiente

        • Permitir que NodeManager use más memoria
        • Los recursos de hardware se pueden ampliar: ampliar la memoria física
        • Ajuste el código: basado en el procesamiento de particiones, evite Map Join
      • Memoria virtual insuficiente: ajuste la proporción de memoria virtual, el valor predeterminado es 2.1

    • Problema de sesgo de datos : el programa se ejecuta durante mucho tiempo y se bloquea en 99% o 100%

      imagen-20210518190703801

      imagen

  • Fenómeno

    • Ejecute un programa, una determinada tarea de este programa se ha estado ejecutando y otras tareas han terminado de ejecutarse, y el progreso se detiene en 99% o 100%
  • razón básica

    • Razón básica: la carga de este ReduceTask es mayor que la de otras tareas

      • La distribución de datos de ReduceTask está desequilibrada

    imagen-20210518203414345

  • Causa raíz : Reglas para la partición

    • Partición predeterminada: obtenga el número de reducción restante de acuerdo con el valor Hash de K2

      • Ventaja: el mismo K2 será procesado por la misma reducción
      • Desventaja: puede conducir a datos sesgados
  • Escenarios con datos sesgados

    • agrupar por / contar (distinto)
    • unirse
  • solución

    • agrupar por / contar (distinto)

      • Combinador abierto

        hive.map.aggr=true
        
      • partición aleatoria

        • Método 1: Habilitar parámetros

          hive.groupby.skewindata=true
          
          • Después de habilitar este parámetro, la capa inferior ejecutará automáticamente dos MapReduce

          • El primer MapReduce implementa automáticamente la partición aleatoria

          • El segundo MapReduce hace la agregación final.

        • Método 2: especificar manualmente

          distribute by rand():将数据写入随机的分区中
          
          distribute by 1 :将数据都写入一个分区
          
    • unirse

      • Solución 1: evite usar Reduce Join tanto como sea posible

        • Map Join: intente filtrar los datos que no necesitan participar en Join y convierta la tabla grande en una tabla pequeña
        • Construir mapa de cubeta Unirse
      • Solución 2: skewjoin: reduzca el proceso de combinación para evitar el sesgo de datos

            --开启运行过程中skewjoin
            set hive.optimize.skewjoin=true;
            --如果这个key的出现的次数超过这个范围
            set hive.skewjoin.key=100000;
            --在编译时判断是否会产生数据倾斜
            set hive.optimize.skewjoin.compiletime=true;
            --不合并,提升性能
            set hive.optimize.union.remove=true;
            --如果Hive的底层走的是MapReduce,必须开启这个属性,才能实现不合并
            set mapreduce.input.fileinputformat.input.dir.recursive=true;
        

        imagen-20210518203545803

  • resumen

    • Domine los problemas comunes de desbordamiento de memoria y sesgo de datos en Hive
    • Entrevista: ¿Cómo resolver el sesgo de datos?
      • Aumentar el número de particiones: repartición
      • Al unirse, se pueden transmitir datos pequeños
      • Reglas de partición personalizadas: cinco características de RDD: para RDD de tipo binario, puede especificar un particionador
        • reduceByKey(partitionClass = HashPartition)
  • Entrevista técnica: basada en la teoría

    • Hadoop: principio de lectura y escritura de HDFS, proceso de ejecución del programa, número de puerto, qué procesos, proceso de ejecución de MapReduce en YARN

    • Hive: instrucción SQL, aplicación de función

      • Funciones de cadena, funciones de fecha, funciones de juicio, funciones de ventana

Supongo que te gusta

Origin blog.csdn.net/xianyu120/article/details/131940017
Recomendado
Clasificación