Directorio de artículos
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
- 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
-
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
- Data mart/dominio de asunto [DM]: dividido según ciertos requisitos comerciales: departamento, negocio, demanda
- Data warehouse [DW]: almacena todos los datos de toda la empresa
- 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
- Almacén de datos: datos del sistema comercial [sistema de servicio al cliente, sistema CRM, sistema de gestión de estudiantes]
- División de gestión de datos del almacén de datos
- 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
- Temas de análisis de acceso, Temas de análisis de consultoría
- 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
-
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
- 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
-
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%
-
-
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
-
-
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;
-
-
-
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
-