Documentos de Académico
Documentos de Profesional
Documentos de Cultura
0
DESARROLLO
Inducción
Se incorpora una breve descripción de cómo está estructurada la unidad que tiene
una duración de 12 horas de trabajo acompañamiento docente, 6 horas de
componente práctico y 18 horas de aprendizaje autónomo semanal durante 4
semanas.
Recuerde:
1
Enfoque epistemológico del conocimiento de la asignatura
Recuerde:
2
NOMBRE DE LA UNIDAD
Introducción al diseño y captura de los datos masivos
Resultados de Aprendizajes:
Diseñar modelos de captura, almacenamiento orientado al procesamiento para BI y
analítica de datos masivos con apoyo de herramientas tics especializadas.
Objetivos de aprendizajes:
Introducir al diseño y captura de los datos masivos.
Temas y Subtemas
Tema 1: Origen y calidad de los datos
Tema 2: Organización de los datos
Tema 3: Métodos de captura de información Extracción, Transformación y Carga
Tema 4: Diferencias entre ELT y ET
Estrategias de aprendizajes
Lectura comprensiva
Taller
© Universidad Estatal de Milagro – UNEMI
3
DESARROLLO DE LA UNIDAD 1
4
Sin embargo, estas tecnologías tienen un gran impacto en la práctica de la
gestión de datos en la actualidad. Especialmente, con la revolución de Big Data
y el uso generalizado de métodos de ciencia de datos para el soporte de
decisiones, las bases de datos relacionales y el uso de SQL para el análisis de
datos se están volviendo realmente más importantes. Aunque las estadísticas
sofisticadas y el aprendizaje automático están mejorando las posibilidades de
extracción de conocimientos de los datos, muchos, si no la mayoría, de los análisis
de datos para el apoyo a la toma de decisiones se basan en estadísticas
descriptivas que utilizan SQL para la agregación agrupada. En ese sentido,
aunque la tecnología de bases de datos SQL está bastante madura, hoy es más
relevante que nunca.
Sin embargo, muchas cosas han cambiado en el área de los sistemas de bases
de datos últimamente a lo largo de los años. Especialmente los desarrollos en el
ecosistema de Big Data trajeron nuevas tecnologías al mundo de las bases de
datos, a las que prestamos suficiente atención. Las tecnologías de bases de datos
no relacionales, que encuentran cada vez más campos de aplicación bajo el
término genérico NoSQL, difieren no solo superficialmente de las bases de datos
relacionales clásicas, sino también en los principios subyacentes. Las bases de
datos relacionales se desarrollaron en el siglo XX con el propósito de permitir
formas operativas de gestión de datos estrechamente organizadas, lo que
proporcionaba estabilidad, pero una flexibilidad limitada. Por el contrario, el
movimiento de bases de datos NoSQL surgió a principios del siglo actual,
centrándose en la partición horizontal y la flexibilidad del esquema, y con el
© Universidad Estatal de Milagro – UNEMI
5
La evolución de una sociedad industrial a una sociedad de la información y el
conocimiento está representada por la valoración de la información como factor
de producción. Las siguientes características distinguen la información de los
bienes materiales:
6
• Grado de integración: Los campos y los titulares de funciones dentro de
cualquier organización están conectados por relaciones informativas, por
lo que el cumplimiento de dichas funciones depende en gran medida del
grado de integración de los datos.
7
- Jerárquico: los datos jerárquicos almacenan las relaciones entre otros
datos. Puede almacenarse como parte de un sistema de contabilidad o por
separado como descripciones de relaciones del mundo real, como las
estructuras organizativas de la empresa o las líneas de productos. Los
datos jerárquicos a veces se consideran un dominio super MDM, porque
son fundamentales para comprender y, a veces, descubrir las relaciones
entre los datos maestros.
8
Para admitir OLAP, organizaría los datos en su almacén de datos de acuerdo con
las medidas (comúnmente conocidas como hechos) y las diversas dimensiones
que se aplican a cada medida. Si estuviera usando una base de datos relacional,
construiría un esquema en estrella o tal vez un esquema de copo de nieve.
© Universidad Estatal de Milagro – UNEMI
9
La idea original detrás de un almacén de datos era "una ventanilla única" para
los datos analíticos, y este concepto estaba respaldado por una única base de
datos relacional centralizada. Con el tiempo, el almacenamiento de datos
evolucionó hacia un enfoque más basado en componentes, con múltiples
mercados de datos subyacentes vinculados e intercambiando datos de una
manera diseñada.
Con el tiempo, a medida que las bases de datos relacionales se volvieran más
poderosas, "volvería al futuro" y construiría un almacén de datos de última
generación de manera centralizada, utilizando una única base de datos relacional
en lugar de una serie de mercados de datos integrados.
10
2.2. Data Lake
En un lago de datos, es posible que aún tenga algunos de sus datos organizados
dimensionalmente. Pero la mayoría de sus datos, especialmente los datos
semiestructurados y no estructurados, se almacenarán utilizando algún otro
modelo.
11
Los lagos de datos, sin embargo, están intrínsecamente descentralizados y
distribuidos. Esta descentralización se debe en gran parte a las plataformas en la
nube subyacentes. Incluso los componentes que pueden parecer lógicamente
centralizados tienen sus datos distribuidos en decenas o cientos o incluso miles
de servidores.
3.1. ETL
12
Por lo general, ejecuta su ETL para su almacén de datos en algún tipo de modo
por lotes: todos los días, cada dos horas, cada 20 minutos o en algún otro
intervalo de tiempo. En cada punto de actualización, traerá datos nuevos y
modificados desde la actualización anterior del almacén de datos.
Con un almacén de datos, primero debe comprender los datos que desea agregar
para poder configurar las tablas de la base de datos relacional donde se
almacenarán y accederán a los datos. ¿Por qué? Por el modelo ETL que utiliza el
almacén de datos. No puede simplemente "cargar y listo" con un almacén de
datos.
3.2. ELT
Carga y actualiza un lago de datos mediante extracción, carga y transformación
(ELT). Con el modelo ELT, transfiere tantos datos al lago de datos tan rápido
como puede, sin tener que preocuparse por el análisis inicial y la configuración
de los campos de su base de datos. Aún tendrá que hacer ese análisis
eventualmente como parte del paso T (transformación), pero puede esperar
hasta más tarde y hacerlo cuando los datos ya estén almacenados en su lago de
datos.
El modelo ELT de lagos de datos le permite transmitir, o enviar, datos tan rápido
como se crean en algún sistema de origen. Con los lagos de datos, normalmente
tiene menos latencia (retraso de tiempo) que con un almacén de datos, lo que
significa que los datos están disponibles más rápidamente para el análisis, la
© Universidad Estatal de Milagro – UNEMI
13
Tema 4: Diferencias entre ELT y ETL
14
Resumen y conclusiones
15
Siguiendo la metodología de copo de nieve, determine las tablas. Use una
herramienta CASE de diseño de base de datos.
Avance al Proyecto final del módulo a partir del proyecto Pronóstico de ventas de
comestibles de Corporación Favorita, que se encuentra en Kaggle:
https://www.kaggle.com/c/favorita-grocery-sales-forecasting.
Identifique:
© Universidad Estatal de Milagro – UNEMI
16
Bibliografía
Meier, Andreas; · Kaufmann, Michael (2019) SQL & NoSQL Databases Models,
Languages, Consistency Options and Architectures for Big Data Management,
Springer.
Chodorow, Kristina; (2019) MongoDB: The Definitive Guide; O’Reilly
© Universidad Estatal de Milagro – UNEMI
17
© Universidad Estatal de Milagro – UNEMI
18
NOMBRE DE LA UNIDAD
Resultados de Aprendizajes:
Objetivos de aprendizajes:
Temas y Subtemas
Estrategias de aprendizajes
Lectura comprensiva
© Universidad Estatal de Milagro – UNEMI
Taller
19
DESARROLLO DE LA UNIDAD 2
Las bases de datos relacionales han sido una tecnología predominante durante
décadas. Son maduros, probados y ampliamente implementados. Abundan los
productos, las herramientas y la experiencia de bases de datos de la
competencia. Las bases de datos relacionales proporcionan un almacén de tablas
de datos relacionados. Estas tablas tienen un esquema fijo, utilizan SQL (lenguaje
de consulta estructurado) para administrar los datos y son compatibles con las
garantías ACID.
menudo en pares clave-valor o documentos JSON. Las bases de datos sin SQL
generalmente no brindan garantías ACID más allá del alcance de una sola
partición de base de datos. Los servicios de gran volumen que requieren un
tiempo de respuesta inferior a un segundo favorecen los almacenes de datos
NoSQL.
20
El teorema de CAP
Como una forma de entender las diferencias entre estos tipos de bases de datos,
considere el teorema CAP, un conjunto de principios aplicados a sistemas
distribuidos que almacenan estado.
● Consistencia. Todos los nodos del clúster responden con los datos más
recientes, incluso si el sistema debe bloquear la solicitud hasta que se
actualicen todas las réplicas. Si consulta un "sistema coherente" para un
elemento que se está actualizando actualmente, esperará esa respuesta
hasta que todas las réplicas se actualicen correctamente. Sin embargo,
recibirá los datos más actualizados.
21
● Disponibilidad. Cada nodo devuelve una respuesta inmediata, incluso si
esa respuesta no es la información más reciente. Si consulta un "sistema
disponible" para un elemento que se está actualizando, obtendrá la mejor
respuesta posible que el servicio puede proporcionar en ese momento.
Los datos también se pueden dividir horizontalmente en varios nodos, como con
la fragmentación. Pero la fragmentación aumenta drásticamente la sobrecarga
operativa al escupir datos en muchas partes que no se pueden comunicar
fácilmente. Puede ser costoso y lento de administrar. Las características
relacionales que incluyen combinaciones de tablas, transacciones e integridad
referencial requieren fuertes penalizaciones de rendimiento en implementaciones
fragmentadas.
22
La coherencia de la replicación y los objetivos del punto de recuperación se
pueden ajustar configurando si la replicación se produce de forma sincrónica o
asincrónica. Si las réplicas de datos perdieran la conectividad de red en un clúster
de base de datos relacional "altamente consistente" o sincrónico, no podría
escribir en la base de datos. El sistema rechazará la operación de escritura ya
que no puede replicar ese cambio en la otra réplica de datos. Cada réplica de
datos debe actualizarse antes de que se complete la transacción.
23
Las bases de datos NoSQL modernas generalmente implementan capacidades de
partición como una característica del diseño de su sistema. La administración de
particiones a menudo está integrada en la base de datos y el enrutamiento se
logra a través de sugerencias de ubicación, a menudo llamadas claves de
partición. Un modelo de datos flexible permite que las bases de datos NoSQL
reduzcan la carga de la administración de esquemas y mejoren la disponibilidad
al implementar actualizaciones de aplicaciones que requieren cambios en el
modelo de datos.
24
Tipos de Bases de Datos NoSQL
25
Tema 3: Estructura de Datos usando SQL
26
Tema 4: Estructura de Datos usando noSQL
Documentos
La mayoría de los documentos serán más complejos que este simple contendrán
múltiples pares clave / valor:
Colecciones
Una colección es un grupo de documentos. Si un documento es el análogo
MongoDB de una fila en una base de datos relacional, entonces una colección se
© Universidad Estatal de Milagro – UNEMI
Las colecciones tienen esquemas dinámicos. Esto significa que los documentos
de una sola colección pueden tener cualquier número de "formas" diferentes. Por
ejemplo, los dos documentos siguientes podrían almacenarse en una sola
colección:
27
Bases de datos
Además de agrupar documentos por colección, MongoDB agrupa colecciones en
bases de datos. Una sola instancia de MongoDB puede albergar varias bases de
datos, cada una de las cuales agrupa cero o más colecciones. Una buena regla
general es almacenar todos los datos de una sola aplicación en la misma base de
datos. Las bases de datos independientes son útiles al almacenar datos para
varias aplicaciones o usuarios en el mismo servidor MongoDB.
28
Caso A: Dirección de usuario:
29
Caso B: Modelo de región, país, estado y ciudad - Enfoque I:
30
Esquema: A frente a B: mejor rendimiento de las consultas:
● La recopilación de ciudades proporciona una gama más amplia de
opciones para consultar datos de la recopilación de regiones de manera
eficiente y rápida, en función de "region_id", "country_id" y "state_id".
● Las ciudades se pueden agrupar fácilmente en función de "region_id",
"country_id" o "state_id" de manera más eficiente.
31
Usuarios, productos y pedidos de Case Online:
Las referencias de país y ciudad se omiten en el siguiente esquema de direcciones
por motivos de simplicidad, centrándose en la relación M: M:
32
Resumen y conclusiones
Las bases de datos noSQL han conseguido ampliar el alcance de las aplicaciones,
permitiendo que la estructura de los datos no sean obligados a ser almacenados
en bases de datos relacionales.
Al momento de escribir este compendio, el top ten del ranking de bases de datos
https://db-engines.com/en/ranking, se encuentra:
Las posiciones del ranking 5,6,7,8 y 10, pertenecen a los modelos de bases de
datos noSQL, estudiados en esta unidad.
Actividad asincrónica
Actividad 1.- Creación de un Data Mart usando una base de datos relacional
1. Utilice una base de datos relacional
2. Cree las tablas dimensionales del datamart de ventas
3. Cree las tablas de hechos del datamart de ventas
33
Actividad 2.- Creación de un Data Mart usando una base de datos
noSQL(MongoDB).
1. Utilice una base de datos relacional
2. Cree las tablas dimensionales en colecciones del datamart de
ventas.
3. Cree las tablas de hechos en colecciones del datamart de ventas
Actividad sincrónica
Bibliografía
© Universidad Estatal de Milagro – UNEMI
Meier, Andreas; · Kaufmann, Michael (2019) SQL & NoSQL Databases Models,
Languages, Consistency Options and Architectures for Big Data Management,
Springer.
Chodorow, Kristina; (2019) MongoDB: The Definitive Guide; O’Reilly
34
© Universidad Estatal de Milagro – UNEMI
35
NOMBRE DE LA UNIDAD
Resultados de Aprendizajes:
Objetivos de aprendizajes:
Temas y Subtemas
Estrategias de aprendizajes
Lectura comprensiva
Taller
© Universidad Estatal de Milagro – UNEMI
36
DESARROLLO DE LA UNIDAD 3
db.collection.insertOne()
db.collection.insertOne(
<document>,
{
writeConcern: <document>
}
)
db.collection.insertMany()
© Universidad Estatal de Milagro – UNEMI
db.collection.insertMany(
[ <document 1> , <document 2>, ... ],
{
writeConcern: <document>,
ordered: <boolean>
}
)
37
En MongoDB, las operaciones de inserción tienen como objetivo una sola
colección. Todas las operaciones de escritura en MongoDB son atómicas al nivel
de un solo documento.
db.collection.find()
Puede especificar filtros de consulta o criterios que identifiquen los documentos
a devolver.
© Universidad Estatal de Milagro – UNEMI
38
Comparación de SQL y NoSql
SELECT * db.people.find()
FROM people
user_id, { },
FROM people )
FROM people { },
)
© Universidad Estatal de Milagro – UNEMI
SELECT * db.people.find(
39
SELECT * db.people.find(
AND age = 50 )
SELECT * db.people.find(
OR age = 50
SELECT * db.people.find(
SELECT * db.people.find(
40
WHERE age < 25 )
SELECT * db.people.find(
FROM people
FROM people
FROM people
FROM people
41
SELECT COUNT(*) db.people.count()
FROM people
FROM people
FROM people
FROM people
SELECT * db.people.find().limit(1)
FROM people
LIMIT 1
SELECT * db.people.find().limit(5).skip(10)
FROM people
LIMIT 5
SKIP 10
FROM people
42
Tema 3: MongoDB Update
Actualizar operaciones
db.collection.updateOne()
db.collection.updateMany()
db.collection.updateMany(
<filter>,
<update>,
{
upsert: <boolean>,
writeConcern: <document>,
collation: <document>,
arrayFilters: [ <filterdocument1>, ... ],
hint: <document|string> // Available starting in MongoDB 4.2.1
}
)
db.collection.replaceOne()
© Universidad Estatal de Milagro – UNEMI
43
Puede especificar criterios o filtros que identifican los documentos a actualizar.
Estos filtros utilizan la misma sintaxis que las operaciones de lectura.
Eliminar operaciones
Las operaciones de eliminación eliminan documentos de una colección. MongoDB
proporciona los siguientes métodos para eliminar documentos de una colección:
db.collection.deleteOne()
db.collection.deleteMany()
44
Resumen y conclusiones
Actividad asincrónica
45
Actividad sincrónica
Bibliografía
Meier, Andreas; · Kaufmann, Michael (2019) SQL & NoSQL Databases Models,
Languages, Consistency Options and Architectures for Big Data Management,
Springer
Chodorow, Kristina; (2019) MongoDB: The Definitive Guide; O’Reilly
© Universidad Estatal de Milagro – UNEMI
46
© Universidad Estatal de Milagro – UNEMI
47
NOMBRE DE LA UNIDAD
Resultados de Aprendizajes:
Objetivos de aprendizajes:
Temas y Subtemas
Estrategias de aprendizajes
Lectura comprensiva
Taller
© Universidad Estatal de Milagro – UNEMI
48
DESARROLLO DE LA UNIDAD 4
Conexiones
La aplicación debe conectarse a las implementaciones de MongoDB utilizando el
formato de URI de cadena de conexión estándar. La aplicación debe admitir la
capacidad de conectarse a (i) un proceso mongod individual, (ii) un conjunto de
réplicas de MongoDB (mediante el descubrimiento automático) o (iii) un mongos
como interfaz para un clúster fragmentado.
Extraer, transformar
© Universidad Estatal de Milagro – UNEMI
49
La aplicación debe permitir a los usuarios agregar campos al modelo de datos
descubierto que pueden no haber estado presentes dentro del subconjunto de
documentos usados para la inferencia de esquemas.
La aplicación debe inferir información sobre los índices existentes para las
colecciones que se van a consultar.
Carga
La aplicación debe admitir la capacidad de escribir datos en cualquier
implementación de MongoDB, ya sea un solo nodo, un conjunto de réplicas o un
clúster fragmentado.
50
Para las escrituras en un clúster fragmentado de MongoDB, la aplicación debe
informar y / o mostrar un mensaje de error al usuario si los documentos no
contienen una clave fragmentada.
51
Tema 2: Aggregation Framework
52
Las operaciones de agregación procesan registros de datos y devuelven
resultados calculados. Las operaciones de agregación agrupan valores de varios
documentos y pueden realizar una variedad de operaciones en los datos
agrupados para devolver un único resultado. MongoDB proporciona tres formas
de realizar la agregación: la canalización de agregación, la función de reducción
de mapa y los métodos de agregación de propósito único.
Canalización de agregación
El marco de agregación de MongoDB se basa en el concepto de canalizaciones
de procesamiento de datos. Los documentos ingresan a una tubería de múltiples
etapas que transforma los documentos en un resultado agregado. Por ejemplo:
db.orders.aggregate([
{ $match: { status: "A" } },
{ $group: { _id: "$cust_id", total: { $sum: "$amount" } } }
])
53
Map-reduce es un paradigma de procesamiento de datos para condensar grandes
volúmenes de datos en resultados agregados útiles. Para realizar operaciones de
reducción de mapas, MongoDB proporciona el mapReduce comando de la base
de datos.
54
Tema 3: Gestión de MongoDB, Seguridad, Respaldo y
Rendimiento.
Seguridad:
cree credenciales de inicio de sesión para cada usuario o proceso que acceda a
MongoDB.
55
2. Utilice el control de acceso basado en roles: En lugar de otorgar autorizaciones
a usuarios individuales, asocie las autorizaciones con roles como servidor de
aplicaciones, administrador de base de datos, desarrollador, herramienta de BI y
más. Los roles predefinidos están disponibles de fábrica, como dbAdmin,
dbOwner, clusterAdmin y más. Esos roles se pueden personalizar aún más para
satisfacer las necesidades de equipos y áreas funcionales particulares, al tiempo
que se garantizan políticas coherentes en toda la organización.
3. Limite las conexiones a la base de datos: Una forma en que ocurren las
filtraciones de datos es que un intruso obtiene acceso remoto a la base de datos.
Al limitar las conexiones remotas a la base de datos, reduce este riesgo. La mejor
práctica es permitir conexiones sólo desde direcciones IP específicas, una práctica
conocida como lista blanca.
4. Cifre sus datos: En la mayoría de las filtraciones de datos, los datos son legibles
por usuarios no autorizados. Cifrar datos los hace ilegibles para quienes no tienen
las claves para descifrarlos.
La mayor parte del cifrado se aplica en el servidor. Esto significa que, si alguien
tiene acceso al servidor, es posible que pueda leer esos datos. El cifrado a nivel
de campo del lado del cliente garantiza que solo las partes relevantes puedan
leer sus propios datos en el lado del cliente utilizando su clave de descifrado
© Universidad Estatal de Milagro – UNEMI
única.
6. Auditoría y registros
Las pistas de auditoría deben rastrear quién realizó cambios en la configuración
de la base de datos, cuáles fueron esos cambios y cuándo se realizaron.
56
7. ¿Community Edition o Enterprise Server?
MongoDB Community Edition es la versión abierta y gratuita de MongoDB.
MongoDB Enterprise Server ofrece funciones adicionales de seguridad y
rendimiento para casos de uso empresarial a escala. Una comparación de las dos
ediciones está disponible aquí, junto con instrucciones para actualizar de
Community Edition a Enterprise Server.
Respaldo
© Universidad Estatal de Milagro – UNEMI
57
Importar herramienta mongoimport
La herramienta mongoimport en Mongodb puede importar el contenido de un
archivo de formato específico a la colección especificada. La herramienta puede
importar datos en formato JSON o en formato CSV.
58
Elementos del Sharded Cluster
● Shards: Cada una de las máquinas del cluster
● Almacena un subconjunto de los datos de la colección.
● Cada shard es una instancia de mongod o un conjunto de
réplicas.
● Servidor de configuración: Instancia de mongodb que almacena
metadatos sobre el cluster.
● Mapean los trozos con los shards, definiendo qué rangos de
datos definen un trozo (chunk) de la colección, y qué trozos se
encuentran en un determinado shard.
● Enrutador: Instancia mongos que enruta las lecturas y
© Universidad Estatal de Milagro – UNEMI
59
Hay dos métodos para abordar el crecimiento del sistema: escalamiento vertical
y horizontal.
60
Resumen y conclusiones
Actividad asincrónica
61
Evaluación
Bibliografía
Meier, Andreas; · Kaufmann, Michael (2019) SQL & NoSQL Databases Models,
Languages, Consistency Options and Architectures for Big Data Management,
Springer.
Chodorow, Kristina; (2019) MongoDB: The Definitive Guide; O’Reilly
62